BBED是oracle内部使用的工具,9i,10g默认是自带的,只要编译一下就可以使用了。
下面我就来编译一下BBED并且用它来修改下数据:
[oracle@Srv02 ~]$ cd $ORACLE_HOME/rdbms/lib
[oracle@Srv02 lib]$ make -f ins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbed
[oracle@Srv02 lib]$ cp $ORACLE_HOME/rdbms/lib/bbed /u01/app/oracle/product/db_1/bin/
做如上操作后我们就可以直接在任何路径下面使用BBED了。
下面我使用BBED来修改数据:
1.首先创建个表并插入两条数据,并查看它的ROWID:
SQL> create table t1(id number,name varchar2(10));
Table created.
SQL> insert into t1 values(1,'xuwu');
1 row created.
SQL> insert into t1 values(2,'xmj');
1 row created.
SQL> insert into t1 values(3,'xnk');
1 row created.
SQL> commit;
Commit complete.
SQL> select * from t1;
ID NAME
---------- ----------
1 xuwu
2 xmj
3 xnk
SQL> select rowid,dbms_rowid.rowid_relative_fno(rowid) rel_fno,dbms_rowid.rowid_block_number(rowid) blockno,
2 dbms_rowid.rowid_row_number(rowid) rowno from t1;
ROWID REL_FNO BLOCKNO ROWNO
------------------ ---------- ---------- ----------
AAAW9mAABAAAOYiAAA 1 58914 0
AAAW9mAABAAAOYiAAB 1 58914 1
AAAW9mAABAAAOYiAAC 1 58914 2
SQL>
查出listfile
SQL> select file#||' '||name||' '||bytes from v$datafile;
FILE#||''||NAME||''||BYTES
--------------------------------------------------------------------------------
1 /u01/app/oracle/oradata/qxptfh01/system01.dbf 503316480
2 /u01/app/oracle/oradata/qxptfh01/undotbs01.dbf 1289748480
3 /u01/app/oracle/oradata/qxptfh01/sysaux01.dbf 429916160
4 /u01/app/oracle/oradata/qxptfh01/users01.dbf 5242880
5 /u01/app/oracle/oradata/qxptfh01/QXDATA01.dbf 524288000
6 /u01/app/oracle/oradata/qxptfh01/QXDATA02.dbf 11639193600
7 /backup/xuwu_tbs.dbf 10737418240
7 rows selected.
把上面查出来的内容放到listfile.txt文件中:
[oracle@Srv02 ~]$ cat listfile.txt
1 /u01/app/oracle/oradata/qxptfh01/system01.dbf 503316480
2 /u01/app/oracle/oradata/qxptfh01/undotbs01.dbf 1289748480
3 /u01/app/oracle/oradata/qxptfh01/sysaux01.dbf 429916160
4 /u01/app/oracle/oradata/qxptfh01/users01.dbf 5242880
5 /u01/app/oracle/oradata/qxptfh01/QXDATA01.dbf 524288000
6 /u01/app/oracle/oradata/qxptfh01/QXDATA02.dbf 11639193600
7 /backup/xuwu_tbs.dbf 10737418240
[oracle@Srv02 ~]$ pwd
/home/oracle
[oracle@Srv02 ~]$
现在就可以登录BBED了:
[oracle@Srv02 ~]$ bbed password=blockedit blocksize=8192 listfile=/home/oracle/listfile.txt mode=edit
BBED: Release 2.0.0.0.0 - Limited Production on Thu Nov 27 15:05:11 2014
Copyright (c) 1982, 2007, Oracle. All rights reserved.
************* !!! For Oracle Internal Use only !!! ***************
BBED>
BBED>
BBED>
下面开始修改数据:
BBED> set dba 1,58914
DBA 0x0040e622 (4253218 1,58914)
BBED> find /c xuwu
File: /u01/app/oracle/oradata/qxptfh01/system01.dbf (1)
Block: 58914 Offsets: 8184 to 8191 Dba:0x0040e622
------------------------------------------------------------------------
78757775 070670b4
<32 bytes per line>
BBED> dump /v dba 1,58914 offset 8184 count 4
File: /u01/app/oracle/oradata/qxptfh01/system01.dbf (1)
Block: 58914 Offsets: 8184 to 8187 Dba:0x0040e622
-------------------------------------------------------
78757775 l xuwu
<16 bytes per line>
BBED> modify /c 'hehe' dba 1,58914 offset 8184
File: /u01/app/oracle/oradata/qxptfh01/system01.dbf (1)
Block: 58914 Offsets: 8184 to 8187 Dba:0x0040e622
------------------------------------------------------------------------
68656865
<32 bytes per line>
BBED> dump /v dba 1,58914 offset 8184 count 4
File: /u01/app/oracle/oradata/qxptfh01/system01.dbf (1)
Block: 58914 Offsets: 8184 to 8187 Dba:0x0040e622
-------------------------------------------------------
68656865 l hehe
<16 bytes per line>
BBED> sum apply
Check value for File 1, Block 58914:
current = 0x153c, required = 0x153c
BBED> verify
DBVERIFY - Verification starting
FILE = /u01/app/oracle/oradata/qxptfh01/system01.dbf
BLOCK = 58914
DBVERIFY - Verification complete
Total Blocks Examined : 1
Total Blocks Processed (Data) : 1
Total Blocks Failing (Data) : 0
Total Blocks Processed (Index): 0
Total Blocks Failing (Index): 0
Total Blocks Empty : 0
Total Blocks Marked Corrupt : 0
Total Blocks Influx : 0
BBED> exit
[oracle@Srv02 ~]$ sqlplus / as sysdba
[uniread] Loaded history (799 lines)
SQL*Plus: Release 10.2.0.5.0 - Production on Thu Nov 27 15:09:25 2014
Copyright (c) 1982, 2010, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select * from t1;
ID NAME
---------- ----------
1 xuwu
2 xmj
3 xnk
SQL> alter system flush buffer_cache;
System altered.
SQL> select * from t1;
ID NAME
---------- ----------
1 hehe
2 xmj
3 xnk
SQL>
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。