【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命令
- 【BBED】Oracle bbed常用命令參考Oracle
- 【BBED】使用bbed修改數字型別資料型別
- 【BBED】使用bbed修改字元型別資料字元型別
- oracle bbed使用Oracle
- BBED簡介
- BBED學習
- bbed二(命令)
- bbed安裝
- [BBED]Oracle 11.2.0.4 Centos6.5下編譯bbedOracleCentOS編譯
- 【BBED】使用bbed 修改日期型別的資料型別
- 【BBED】使用bbed解決 the amount of space used is not equal to block sizeBloC
- BBED 的安裝
- BBED安裝使用
- bbed一(安裝)
- 【BBED】使用bbed恢復已經刪除的行資料
- 基礎知識
- Oracle BBED 工具介紹Oracle
- Oracle BBED 工具 說明Oracle
- Oracle bbed工具的使用Oracle
- BBED學習之一
- oracle bbed的連線Oracle
- Oracle BBED(block browse and editor)OracleBloC
- Oracle BBED 工具說明Oracle
- AI 基礎知識AI
- Webpack 基礎知識Web
- Dart基礎知識Dart
- RabbitMQ基礎知識MQ
- webpack基礎知識Web
- javascript基礎知識JavaScript
- ThinkPHP基礎知識PHP
- Laravel基礎知識Laravel
- Redis基礎知識Redis
- Docker基礎知識Docker
- 程式基礎知識
- Envoy基礎知識
- DockerFile基礎知識Docker
- Nginx基礎知識Nginx