Installing Oracle Block Browser and Editor tool (bbed),installingbbed
BBED是ORACLE的內部工具,通常使用BBED都是恢複一些故障的資料庫,比如斷電或異常關閉作業系統導致的資料檔案頭不一致、SYSTEM資料表空間損壞等故障就可以使用BBED工具進行恢複。在11G中編譯通常會報如下錯誤:[oracle@ogg1 lib]$ make -f ins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbed
Linking BBED utility (bbed)
rm -f /opt/oracle/products/11.2.0/rdbms/lib/bbed
gcc -o /opt/oracle/products/11.2.0/rdbms/lib/bbed -m64 -L/opt/oracle/products/11.2.0/rdbms/lib/ -L/opt/oracle/products/11.2.0/lib/ -L/opt/oracle/products/11.2.0/lib/stubs/ /opt/oracle/products/11.2.0/lib/s0main.o /opt/oracle/products/11.2.0/rdbms/lib/ssbbded.o /opt/oracle/products/11.2.0/rdbms/lib/sbbdpt.o `cat /opt/oracle/products/11.2.0/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -ldbtools11 -lclntsh `cat /opt/oracle/products/11.2.0/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /opt/oracle/products/11.2.0/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnnz11 -lzt11 -lztkg11 -lztkg11 -lclient11 -lnnetd11 -lvsn11 -lcommon11 -lgeneric11 -lmm -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 `cat /opt/oracle/products/11.2.0/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /opt/oracle/products/11.2.0/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lclient11 -lnnetd11 -lvsn11 -lcommon11 -lgeneric11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lclient11 -lnnetd11 -lvsn11 -lcommon11 -lgeneric11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 `cat /opt/oracle/products/11.2.0/lib/sysliblist` -Wl,-rpath,/opt/oracle/products/11.2.0/lib -lm `cat /opt/oracle/products/11.2.0/lib/sysliblist` -ldl -lm -L/opt/oracle/products/11.2.0/lib
gcc: /opt/oracle/products/11.2.0/rdbms/lib/ssbbded.o: No such file or directory
gcc: /opt/oracle/products/11.2.0/rdbms/lib/sbbdpt.o: No such file or directory
make: *** [/opt/oracle/products/11.2.0/rdbms/lib/bbed] Error 1
是因為缺少對應的庫檔案,不過我們可以從10G當中拷過來:
[oracle@zbdba3 lib]$ ls *sbb*
sbbdpt.o ssbbded.o
[oracle@zbdba3 lib]$ scp *sbb* 192.168.56.12:`pwd`
The authenticity of host '192.168.56.12 (192.168.56.12)' can't be established.
RSA key fingerprint is de:78:11:e4:45:be:48:83:50:5f:c8:6e:08:ad:ae:7e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.56.12' (RSA) to the list of known hosts.
oracle@192.168.56.12's password:
scp: /u01/app/oracle/product/10.2.0/db_1/rdbms/lib: No such file or directory
[oracle@zbdba3 lib]$ scp *sbb* 192.168.56.12:/opt/oracle/products/11.2.0/rdbms/lib
oracle@192.168.56.12's password:
sbbdpt.o 100% 1863 1.8KB/s 00:00
ssbbded.o 100% 1191 1.2KB/s 00:00
[oracle@zbdba3 mesg]$ scp *bbed* 192.168.56.12:/opt/oracle/products/11.2.0/rdbms/mesg
oracle@192.168.56.12's password:
bbedus.msb 100% 8704 8.5KB/s 00:00
bbedus.msg 100% 10KB 10.0KB/s 00:00
重新編譯:
[oracle@ogg1 lib]$ make -f ins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbed
Linking BBED utility (bbed)
rm -f /opt/oracle/products/11.2.0/rdbms/lib/bbed
gcc -o /opt/oracle/products/11.2.0/rdbms/lib/bbed -m64 -L/opt/oracle/products/11.2.0/rdbms/lib/ -L/opt/oracle/products/11.2.0/lib/ -L/opt/oracle/products/11.2.0/lib/stubs/ /opt/oracle/products/11.2.0/lib/s0main.o /opt/oracle/products/11.2.0/rdbms/lib/ssbbded.o /opt/oracle/products/11.2.0/rdbms/lib/sbbdpt.o `cat /opt/oracle/products/11.2.0/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -ldbtools11 -lclntsh `cat /opt/oracle/products/11.2.0/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /opt/oracle/products/11.2.0/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnnz11 -lzt11 -lztkg11 -lztkg11 -lclient11 -lnnetd11 -lvsn11 -lcommon11 -lgeneric11 -lmm -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 `cat /opt/oracle/products/11.2.0/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /opt/oracle/products/11.2.0/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lclient11 -lnnetd11 -lvsn11 -lcommon11 -lgeneric11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lclient11 -lnnetd11 -lvsn11 -lcommon11 -lgeneric11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 `cat /opt/oracle/products/11.2.0/lib/sysliblist` -Wl,-rpath,/opt/oracle/products/11.2.0/lib -lm `cat /opt/oracle/products/11.2.0/lib/sysliblist` -ldl -lm -L/opt/oracle/products/11.2.0/lib
[oracle@ogg1 lib]$ ls -l bbed
-rwxr-xr-x 1 oracle oinstall 262144 Sep 4 03:46 bbed
[oracle@ogg1 mesg]$ bbed
Password: blockedit
BBED: Release 2.0.0.0.0 - Limited Production on Thu Sep 4 03:54:08 2014
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
************* !!! For Oracle Internal Use only !!! ***************
BBED> help all
SET DBA [ dba | file#, block# ]
SET FILENAME 'filename'
SET FILE file#
SET BLOCK [+/-]block#
SET OFFSET [ [+/-]byte offset | symbol | *symbol ]
SET BLOCKSIZE bytes
SET LIST[FILE] 'filename'
SET WIDTH character_count
SET COUNT bytes_to_display
SET IBASE [ HEX | OCT | DEC ]
SET OBASE [ HEX | OCT | DEC ]
SET MODE [ BROWSE | EDIT ]
SET SPOOL [ Y | N ]
SHOW [ | ALL ]
INFO
MAP[/v] [ DBA | FILENAME | FILE | BLOCK ]
DUMP[/v] [ DBA | FILENAME | FILE | BLOCK | OFFSET | COUNT ]
PRINT[/x|d|u|o|c] [ DBA | FILE | FILENAME | BLOCK | OFFSET | symbol | *symbol ]
EXAMINE[/Nuf] [ DBA | FILE | FILENAME | BLOCK | OFFSET | symbol | *symbol ]
</Nuf>:
N - a number which specifies a repeat count.
u - a letter which specifies a unit size:
b - b1, ub1 (byte)
h - b2, ub2 (half-word)
w - b4, ub4(word)
r - Oracle table/index row
f - a letter which specifies a display format:
x - hexadecimal
d - decimal
u - unsigned decimal
o - octal
c - character (native)
n - Oracle number
t - Oracle date
i - Oracle rowid
FIND[/x|d|u|o|c] numeric/character string [ TOP | CURR ]
COPY [ DBA | FILE | FILENAME | BLOCK ] TO [ DBA | FILE | FILENAME | BLOCK ]
MODIFY[/x|d|u|o|c] numeric/character string
[ DBA | FILE | FILENAME | BLOCK | OFFSET | symbol | *symbol ]
ASSIGN[/x|d|u|o] <target spec>=<source spec>
<target spec> : [ DBA | FILE | FILENAME | BLOCK | OFFSET | symbol | *symbol ]
<source spec> : [ value | ]
SUM [ DBA | FILE | FILENAME | BLOCK ] [ APPLY ]
PUSH [ DBA | FILE | FILENAME | BLOCK | OFFSET ]
POP [ALL]
REVERT [ DBA | FILE | FILENAME | BLOCK ]
UNDO
HELP [ | ALL ]
VERIFY [ DBA | FILE | FILENAME | BLOCK ]
CORRUPT [ DBA | FILE | FILENAME | BLOCK ]
BBED>
for more information:
bbed工具是幹什的?聽說oracle資料庫有個bbed工具很厲害的,介紹
“BBED(Oracle Block Brower and EDitor Tool),用來直接查看和修改資料檔案資料的一個工具,是Oracle一款內部工具,可以直接修改Oracle資料檔案塊的內容,簡單來說就是一個針對 Oracle的二進位編輯工具。該工具不受Oracle支援,所以預設是沒有產生可執行檔的,在使用前需要重新編譯。”
在10g中編譯該工具顯得較簡單:
[maclean@rh2 ~]$ cd $ORACLE_HOME/rdbms/lib
[maclean@rh2 lib]$ make -f ins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbed
make: `/s01/10gdb/rdbms/lib/bbed' is up to date.
[maclean@rh2 lib]$ rm bbed
[maclean@rh2 lib]$ make -f ins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbed
Linking BBED utility (bbed)
rm -f /s01/10gdb/rdbms/lib/bbed
gcc -o /s01/10gdb/rdbms/lib/bbed -L/s01/10gdb/rdbms/lib/ -L/s01/10gdb/lib/ -L/s01/10gdb/lib/stubs/ /s01/10gdb/lib/s0main.o /s01/10gdb/rdbms/lib/ssbbded.o /s01/10gdb/rdbms/lib/sbbdpt.o `cat /s01/10gdb/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 /s01/10gdb/rdbms/lib/defopt.o -ldbtools10 -lclntsh `cat /s01/10gdb/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /s01/10gdb/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lmm -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat &#......餘下全文>>
ORACLE 資料檔案有壞塊,報錯:ORA-01578:ORACLE data block corrupted(file# 6,block#143589)ORA-01110:
那備份來恢複,可以只恢複這個資料區塊,很快的
基本步驟:
1. 進入rman
rman target /
2.執行塊介質恢複
blockrecover datafile 6 block 143589;