【BBED】BBED基礎知識
一、 BBED 介紹
BBED(Block Browerand EDitor Tool) ,用來直接檢視和修改資料檔案資料的一個工具,是 Oracle 一款內部工具,可以直接修改 Oracle 資料檔案塊的內容,在一些極端恢復場景下比較有用。該工具不受 Oracle 支援,所以預設是沒有生成可執行檔案的,在使用前需要重新 連結 。
二、 BBED 安裝
10g 和 11g oracle bbed 的安裝方式有所不同的是 , 編譯 11g 下 BBED 的時候,會報出庫 obj 檔案缺失的錯誤。解決的思路也很簡單,就是從 Oracle10g 下對應的 bbedus.msb 、 sbbdpt.o 、 ssbbded.o 檔案複製出 。其中,將 sbbdpt.o 、 ssbbded.o 放在 $ORACLE_HOME/rdbms/lib 目錄下; bbedus.msb 放在 $ORACLE_HOME/rdbms/mesg 目錄下。
$ mv ssbbded.o sbbdpt.o /u01/app/oracle/product/11.2.0/db_1/rdbms/lib/
$ mv bbedus.msb /u01/app/oracle/product/11.2.0/db_1/rdbms/mesg/
執行以下命令進行編譯
$ cd $ORACLE_HOME/rdbms/lib
$ make -f ins_rdbms.mk BBED=$ORACLE_HOME/bin/bbed $ORACLE_HOME/bin/bbed
rm -f /u01/app/oracle/product/ 11.2.0 /db_1/rdbms/lib/bbed gcc -o/u01/app/oracle/product/ 11.2.0 /db_1/rdbms/lib/bbed-L/u01/app/oracle/product/ 11.2.0 /db_1/rdbms/lib/-L/u01/app/oracle/product/ 11.2.0 /db_1/lib/-L/u01/app/oracle/product/ 11.2.0 /db_1/lib/stubs/ -L/usr/lib -lirc /u01/app/oracle/product/ 11.2.0 /db_1/lib/s0main.o/u01/app/oracle/product/ 11.2.0 /db_1/rdbms/lib/ssbbded.o/u01/app/oracle/product/ 11.2.0 /db_1/rdbms/lib/sbbdpt.o cat/u01/app/oracle/product/ 11.2.0 /db_1/lib/ldflags -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10-lnnz10 -lnl10 /u01/app/oracle/product/ 11.2.0 /db_1/rdbms/lib/defopt.o-ldbtools10 -lclntsh cat/u01/app/oracle/product/ 11.2.0 /db_1/lib/ldflags -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10-ln10 -lnnz10 -lnl10 -lnro10 cat /u01/app/oracle/product/ 11.2.0 /db_1/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/u01/app/oracle/product/ 11.2.0 /db_1/lib/ldflags -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10-ln10 -lnnz10 -lnl10 -lnro10 cat/u01/app/oracle/product/ 11.2.0 /db_1/lib/ldflags -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10-ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10-lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10-lnls10 -lcore10 -lnls10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10-lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 cat/u01/app/oracle/product/ 11.2.0 /db_1/lib/sysliblist-Wl,-rpath,/u01/app/oracle/product/ 11.2.0 /db_1/lib -lm cat /u01/app/oracle/product/ 11.2.0 /db_1/lib/sysliblist-ldl -lm -L/u01/app/oracle/product/ 11.2.0 /db_1/lib “`
三、進入bbed
1. 檢視相關引數
相關的引數可以透過help 檢視:
$ bbed help=y
PASSWORD - Required parameter
FILENAME - Database file name
BLOCKSIZE - Database block size
LISTFILE - List file name
MODE - [browse/edit]
SPOOL - Spool to logfile [no/yes]
CMDFILE - BBED command file name
LOGFILE - BBED log file name
PARFILE - Parameter file name
BIFILE - BBED before-image file name
REVERT - Rollback changes from BIFILE[no/yes]
SILENT - Hide banner [no/yes]
HELP - Show all valid parameters [no/yes]
2.BBED 的通常用法
一般使用bbed ,都是將一些配置資訊寫入到一個引數文字里,在呼叫 bbed 時,指定該引數檔案。如:
$ bbedparfile=bbed.par
這裡我們先演示一個示例。
1) 先獲取datafile 的資訊
將datafile 的資訊寫入一個檔案,格式為:檔案編號 檔名字 檔案大小。可以透過如下 SQL 獲取:
SQL> set pages 200
SQL> select file#||' '||name||' '||bytes from v$datafile ;
FILE#||''||NAME||''||BYTES
---------------------------------------------------------
1 /u01/app/oracle/oradata/orcl/system01.dbf 786432000
2 /u01/app/oracle/oradata/orcl/sysaux01.dbf 576716800
3 /u01/app/oracle/oradata/orcl/undotbs01.dbf 94371840
4 /u01/app/oracle/oradata/orcl/users01.dbf 5242880
5 /u01/app/oracle/oradata/orcl/example01.dbf 328335360
6 /u01/app/oracle/oradata/orcl/test01.dbf 52428800
7 /u01/app/oracle/oradata/orcl/test02.dbf 62914560
2 ) 將上面查詢出來的datafile 資訊儲存到文字里。
$ vi / home/oracle /filelist.txt
1 /u01/app/oracle/oradata/orcl/system01.dbf 786432000
2 /u01/app/oracle/oradata/orcl/sysaux01.dbf 576716800
3 /u01/app/oracle/oradata/orcl/undotbs01.dbf 94371840
4 /u01/app/oracle/oradata/orcl/users01.dbf 5242880
5 /u01/app/oracle/oradata/orcl/example01.dbf 328335360
6 /u01/app/oracle/oradata/orcl/test01.dbf 52428800
7 /u01/app/oracle/oradata/orcl/test02.dbf 62914560
3 ) 建立parameter file :
$ vi / home/oracle /bbed.par
blocksize=8192
listfile=/ home/oracle /filelist.txt
mode=edit
4 ) 使用parameter file 連線 bbed
$ bbed parfile=/ home/oracle /bbed.par
Password: 預設密碼 blockedit
BBED: Release 2.0.0.0.0 - Limited Production on Mon Nov 9 19:53:48 2020
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
************* !!! For Oracle Internal Use only !!! ***************
BBED> show
FILE# 1
BLOCK# 1
OFFSET 0
DBA 0x00400001(4194305 1,1)
FILENAME /u01/app/oracle/oradata/dave2/system01.dbf
BIFILE bifile.bbd
LISTFILE /u01/filelist.txt
BLOCKSIZE 8192
MODE Edit
EDIT Unrecoverable
IBASE Dec
OBASE Dec
WIDTH 80
COUNT 512
LOGFILE log.bbd
SPOOL No
3.BBED 常用命令
$ bbed
Password: 預設密碼 blockedit
BBED: Release 2.0.0.0.0 - Limited Production on Mon Nov 9 18:44:54 2020
Copyright (c) 1982, 2011, 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 [ <SET parameter> | 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 | <target spec options> ]
SUM [ DBA | FILE | FILENAME | BLOCK ] [ APPLY ]
PUSH [ DBA | FILE | FILENAME | BLOCK | OFFSET ]
POP [ALL]
REVERT [ DBA | FILE | FILENAME | BLOCK ]
UNDO
HELP [ <bbed command> | ALL ]
VERIFY [ DBA | FILE | FILENAME | BLOCK ]
CORRUPT [ DBA | FILE | FILENAME | BLOCK ]
常用引數解釋:
Ø info 檢視 list 檔案內容(可以進行操作的資料檔案)
Ø set 設定當前的環境
Ø show 檢視當前的環境引數,跟 sqlplus 的同名命令類似。
Ø dump 列出指定 block 的內容
Ø find 在指定的 block 中查詢指定的字串,結果是顯示出字串,及
偏移量–offset ,偏移量就是在 block 中的位元組數
Ø modify 修改指定 block 的指定偏移量的值,可以線上修改。
Ø copy 把一個 block 的內容 copy 到另一個 block 中
Ø verify 檢查當前環境是否有壞塊
Ø sum 計算 block 的 checksum
Ø undo 回滾當前的修改操作,如果手誤做錯了, undo 一下就 ok 了,回到原來的狀態。
Ø revert 回滾所有之前的修改操作
---- end ----
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31529886/viewspace-2736967/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【BBED】Oracle bbed常用命令參考Oracle
- [20210906]bbed讀取資料塊(bbed-wrap.sh).txt
- BBED 的安裝
- 基礎知識
- [20181204]bbed修改問題.txt
- [20180619]bbed verify問題.txt
- [20231008]bbed探究lob段.txt
- oracle之 11.2.0.4 bbed安裝Oracle
- [20220223]bbed ktbbh.ktbbhict.txt
- [20210920]bbed的assign命令.txt
- bbed修改undo段狀態
- [20210304]bbed的assign命令.txt
- [20190107]生成bbed執行指令碼:指令碼
- DBA手記-BBED 的說明
- 11_Oracle bbed工具介紹Oracle
- [20190104]bbed手工插入資料.txt
- [20181227]bbed的使用問題.txt
- [20210901]cygwin下使用bbed.txt
- [20230224]bbed設定偏移技巧.txt
- [20210303]bbed使用小問題.txt
- [20210223]bbed itl ktbitflg 2.txt
- Envoy基礎知識
- DockerFile基礎知識Docker
- Webpack 基礎知識Web
- js基礎知識JS
- React基礎知識React
- 程式基礎知識
- Docker基礎知識Docker
- qml基礎知識
- Mybatis基礎知識MyBatis
- python基礎知識Python
- Hadoop基礎知識Hadoop
- webpack基礎知識Web
- AI 基礎知識AI
- JSP基礎知識JS
- Dart基礎知識Dart
- RabbitMQ基礎知識MQ
- Android基礎知識Android