免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2804 | 回复: 0
打印 上一主题 下一主题

[数据库] Oracle BBED 小小手术刀的小手术---修改数据内容 [复制链接]

论坛徽章:
17
天蝎座
日期:2014-03-10 14:35:04数据库技术版块每日发帖之星
日期:2015-12-13 06:20:00IT运维版块每日发帖之星
日期:2015-12-13 06:20:00数据库技术版块每日发帖之星
日期:2015-10-20 06:20:00数据库技术版块每日发帖之星
日期:2015-08-21 06:20:00数据库技术版块每日发帖之星
日期:2015-06-17 22:20:002015年迎新春徽章
日期:2015-03-04 09:57:092015年辞旧岁徽章
日期:2015-03-03 16:54:15技术图书徽章
日期:2015-01-12 17:05:35亥猪
日期:2014-11-09 13:05:04金牛座
日期:2014-09-25 11:28:54处女座
日期:2014-09-15 19:58:36
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-02-28 09:20 |只看该作者 |倒序浏览
博客彩色标注生动版原文:Oracle BBED 小小手术刀的小手术---修改数据内容

官方简介:

  The name bbed is an acronym for Block Browser and EDitor and it is shipped with thedatabase. It is intended for Oracle internal use only and the company neverpublishes any details about it. It is a very powerful tool but also extremelydangerous since it can change and/or corrupt data blocks of any Oracledatabase.

   If you use this tool, you do so at your own risk. Any modifications made with thistool render the database unsupported by Oracle.

   BBED是Oracle的内部工具,不受Oracle技术支持,该工具像一把锋利的手术刀,可以切入数据块内部进行修修改改,因此非常危险,操作需特别谨慎!


实验目的:
使用BBED修改数据文件内的数据信息。



操作过程:


1.获取数据文件的文件号、文件绝对路径名和大小:
SQL> select file#||' '||name||' '||bytes from v$datafile ;
FILE#||''||NAME||''||BYTES
--------------------------------------------------------------------------------
1 /oracle/app/oradata/ORCL/datafile/o1_mf_system_8xm4839m_.dbf 859832320
2 /oracle/app/oradata/ORCL/datafile/o1_mf_sysaux_8xm483f7_.dbf 555745280
3 /oracle/app/oradata/ORCL/datafile/o1_mf_undotbs1_8xm483gd_.dbf 89128960
4 /oracle/app/oradata/ORCL/datafile/o1_mf_users_8xm483jk_.dbf 70778880
5 /oracle/app/oradata/ORCL/datafile/o1_mf_example_8xm4gzck_.dbf 108134400
6 /oracle/app/oradata/catalog_rman/rmantbs01.dbf 52428800
7 /oracle/app/oradata/ORCL/datafile/gaoqiang.dbf 5242880
8 /oracle/app/oradata/ORCL/datafile/gao.dbf 5242880
9 /oracle/app/oradata/ORCL/datafile/lee.dbf 10485760
10 /oracle/app/oradata/ORCL/datafile/jon.dbf 10485760


10 rows selected.



2.创建文件清单:
[oracle@dbserver oracle]$ vi filelist.txt
加入如下内容:
1 /oracle/app/oradata/ORCL/datafile/o1_mf_system_8xm4839m_.dbf 859832320
2 /oracle/app/oradata/ORCL/datafile/o1_mf_sysaux_8xm483f7_.dbf 555745280
3 /oracle/app/oradata/ORCL/datafile/o1_mf_undotbs1_8xm483gd_.dbf 89128960
4 /oracle/app/oradata/ORCL/datafile/o1_mf_users_8xm483jk_.dbf 70778880
5 /oracle/app/oradata/ORCL/datafile/o1_mf_example_8xm4gzck_.dbf 108134400
6 /oracle/app/oradata/catalog_rman/rmantbs01.dbf 52428800
7 /oracle/app/oradata/ORCL/datafile/gaoqiang.dbf 5242880
8 /oracle/app/oradata/ORCL/datafile/gao.dbf 5242880
9 /oracle/app/oradata/ORCL/datafile/lee.dbf 10485760
10 /oracle/app/oradata/ORCL/datafile/jon.dbf 10485760




[oracle@dbserver oracle]$ cat filelist.txt
1 /oracle/app/oradata/ORCL/datafile/o1_mf_system_8xm4839m_.dbf 859832320
2 /oracle/app/oradata/ORCL/datafile/o1_mf_sysaux_8xm483f7_.dbf 555745280
3 /oracle/app/oradata/ORCL/datafile/o1_mf_undotbs1_8xm483gd_.dbf 89128960
4 /oracle/app/oradata/ORCL/datafile/o1_mf_users_8xm483jk_.dbf 70778880
5 /oracle/app/oradata/ORCL/datafile/o1_mf_example_8xm4gzck_.dbf 108134400
6 /oracle/app/oradata/catalog_rman/rmantbs01.dbf 52428800
7 /oracle/app/oradata/ORCL/datafile/gaoqiang.dbf 5242880
8 /oracle/app/oradata/ORCL/datafile/gao.dbf 5242880
9 /oracle/app/oradata/ORCL/datafile/lee.dbf 10485760
10 /oracle/app/oradata/ORCL/datafile/jon.dbf 10485760



3.创建bbed参数文件:
[oracle@dbserver oracle]$ cat bbed.par
blocksize=8192
listfile=/oracle/filelist.txt
mode=edit



4.登陆BBED:
[oracle@dbserver oracle]$ bbed parfile=/oracle/bbed.par
Password:


BBED: Release 2.0.0.0.0 - Limited Production on Tue Jan 27 05:56:31 2015


Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.


************* !!! For Oracle Internal Use only !!! ***************                   ----谨慎使用,No Zuo No Die~~~












5.查看未修改的表状态:
SQL> select * from summary;


ID INFO
---------- ----------------------------
1 Eric Gao is a Oracle DBA
1 Eric Gao is a PostgreSQL DBA
1 Eric Gao is a AIX SA
1 Eric Gao is a Linux SA


6.查看物理信息:
SQL> select rowid,dbms_rowid.rowid_relative_fno(rowid) rel_fno,dbms_rowid.rowid_block_number(rowid) blockno,dbms_rowid.rowid_row_number(rowid) rowno from summary;


ROWID             REL_FNO        BLOCKNO      ROWNO
------------------ ---------- ---------- ----------
AAASmYAAEAAAAKNAAA           4            653         0
AAASmYAAEAAAAKNAAB           4            653         1
AAASmYAAEAAAAKNAAC           4            653         2
AAASmYAAEAAAAKNAAD           4            653         3

dbms_rowid.rowid_relative_fno(rowid)该函数返回输入参数rowid所对应的文件号,文件号是相对于表空间的。
其他的两个函数以此类推分别是:数据块号获取函数和行号获取函数。



7.在bbed中找相关的关键字:
BBED> set dba 4,653 offset 0
DBA                    0x0100028d (16777869 4,653)
OFFSET         0



BBED> find /c Oracle
File: /oracle/app/oradata/ORCL/datafile/o1_mf_users_8xm483jk_.dbf (4)
Block: 653              Offsets: 8178 to 8191           Dba:0x0100028d
------------------------------------------------------------------------
4f726163 6c652044 42410106 0385


<32 bytes per line>




8.查看该位置的信息:
BBED> dump /v dba 4,653 offset 8178 count 6
File: /oracle/app/oradata/ORCL/datafile/o1_mf_users_8xm483jk_.dbf (4)
Block: 653     Offsets: 8178 to 8183  Dba:0x0100028d
-------------------------------------------------------
4f726163 6c65                       l Oracle


<16 bytes per line>




9.修改数据块信息:
BBED> modify /c 'ORACLE' dba 4,653 offset 8178
File: /oracle/app/oradata/ORCL/datafile/o1_mf_users_8xm483jk_.dbf (4)
Block: 653              Offsets: 8178 to 8183           Dba:0x0100028d
------------------------------------------------------------------------
4f524143 4c45


<32 bytes per line>

10.输出修改后的内容:
BBED> dump /v dba 4,653 offset 8178 count 6
File: /oracle/app/oradata/ORCL/datafile/o1_mf_users_8xm483jk_.dbf (4)
Block: 653     Offsets: 8178 to 8183  Dba:0x0100028d
-------------------------------------------------------
4f524143 4c45                       l ORACLE


<16 bytes per line>

11.保存:
BBED> sum dba 4,653
Check value for File 4, Block 653:
current = 0x7bcf, required = 0x5bcf



BBED> sum dba 4,653 apply
Check value for File 4, Block 653:
current = 0x5bcf, required = 0x5bcf





12.验证修改成果
SQL> conn eric
SQL> alter system flush buffer_cache;
System altered.


SQL> select * from summary;
ID INFO
---------- ----------------------------
1 Eric Gao is a ORACLE DBA    -----可以看到该数据已经由原来的Oracle修改成了ORACLE。
1 Eric Gao is a PostgreSQL DBA
1 Eric Gao is a AIX SA
1 Eric Gao is a Linux SA



OK!修改完成!




PS:这是个非常2的测试,完全可以用语句: update summary set info='Eric Gao is a ORACLE DBA' where info='Eric Gao is a ORACLE DBA';  修改过来...

本次实验仅为了提供简单的BBED小小手术刀操作体验。




SQL>  update summary set info='Eric Gao is a Oracle DBA' where info='Eric Gao is a ORACLE DBA';


1 row updated.


SQL> select * from summary;


ID INFO
---------- ----------------------------
1 Eric Gao is a ORACLE DBA
1 Eric Gao is a PostgreSQL DBA
1 Eric Gao is a AIX SA
1 Eric Gao is a Linux SA
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP