BBED是oracle內(nèi)部使用的工具,9i,10g默認是自帶的,只要編譯一下就可以使用了。
創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的新會網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
下面我就來編譯一下BBED并且用它來修改下數(shù)據(jù):
[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來修改數(shù)據(jù):
1.首先創(chuàng)建個表并插入兩條數(shù)據(jù),并查看它的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.
把上面查出來的內(nèi)容放到listfile.txt文件中:
[oracle@Srv02 ~]$ cat listfile.txt1 /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 ~]$
現(xiàn)在就可以登錄BBED了:
[oracle@Srv02 ~]$ bbed password=blockedit blocksize=8192 listfile=/home/oracle/listfile.txt mode=edit BBED: Release2.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>
下面開始修改數(shù)據(jù):
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 applyCheck value for File 1, Block 58914:current = 0x153c, required = 0x153c BBED> verify DBVERIFY- Verification startingFILE = /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. Connectedto: OracleDatabase 10g Enterprise Edition Release 10.2.0.5.0 - 64bit ProductionWith 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>