[20161111]資料檔案的第0塊2.txt
[20161111]資料檔案的第0塊2.txt
--如果資料檔案的第0塊是OS塊資訊,以前的測試如果rman做備份集都不會備份。
--如果這塊損壞,裡面講問題不大,你甚至可以不修復,如果線上resize就ok了,當然重建控制檔案就出現問題。
--而且解決也很簡單,就是建立一樣大小的資料檔案,然後copy回去。做一個測試例子:
1.環境:
SCOTT@book> @ &r/ver1
PORT_STRING VERSION BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
CREATE TABLESPACE SUGAR DATAFILE
'/mnt/ramdisk/book/sugar01.dbf' SIZE 40M AUTOEXTEND ON NEXT 16M MAXSIZE UNLIMITED
LOGGING
ONLINE
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;
create table t1 tablespace sugar as select rownum id ,lpad('A',32,'A') name from dual connect by level<=1e5;
alter system checkpoint;
CREATE TABLESPACE TEA DATAFILE
'/mnt/ramdisk/book/tea01.dbf' SIZE 40M AUTOEXTEND ON NEXT 16M MAXSIZE UNLIMITED
LOGGING
ONLINE
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;
--昨天的測試無法在bbed下使用copy file 7 block 0 to file 6 block 0,實際上無法識別資料檔案6的os頭。這樣變成了block=1.
2.重新測試:
SCOTT@book> alter tablespace sugar offline ;
Tablespace altered.
SCOTT@book> alter tablespace tea offline ;
Tablespace altered.
--設定資料檔案6 sugar01.dbf的第0塊全為0.
3.使用bbed修復:
BBED> copy file 7 block 0 to file 6 block 0
BBED-00309: out of range block number (0)
--實際上晚上在回家的路上才想起來問題在那裡。我以前在windows下使用bbed,也遇到修改11g的資料檔案,訪問block必須加1,實際上
--就是無法識別11g資料檔案的塊頭。
BBED> dump /v file 7 block 0 count 256 offset 0
File: /mnt/ramdisk/book/tea01.dbf (7)
Block: 0 Offsets: 0 to 255 Dba:0x01c00000
-----------------------------------------------------------------------------------------------------------
00a20000 0000c0ff 00000000 00000000 66ee0000 00200000 00140000 7d7c7b7a l ................f.... ......}|{z
a0810000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l ................................
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l ................................
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l ................................
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l ................................
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l ................................
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l ................................
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l ................................
<32 bytes per line>
BBED> dump /v file 6 block 1 count 256 offset 0
BBED-00309: out of range block number (0)
BBED> dump /v file 6 block 1 count 256 offset 0
File: /mnt/ramdisk/book/sugar01.dbf (6)
Block: 1 Offsets: 0 to 255 Dba:0x01800001
-----------------------------------------------------------------------------------------------------------
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l ................................
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l ................................
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l ................................
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l ................................
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l ................................
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l ................................
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l ................................
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 l ................................
<32 bytes per line>
-- 這樣要在bbed下執行應該是(不過還是要小心,至少仔細看一下里面的內容,避免錯誤)。
-- 而且我遇到奇怪的問題每次按照如下順序執行:
dump /v file 7 block 0 count 256 offset 0
dump /v file 6 block 1 count 256 offset 0
dump /v file 6 block 1 count 256 offset 0
--第2步總是報錯BBED-00309: out of range block number (0),但是我反過來就沒有問題。
dump /v file 6 block 1 count 256 offset 0
dump /v file 7 block 0 count 256 offset 0
-- 注意一定要在執行copy前看一下里面的內容,避免寫入錯誤的位置,還是不推薦這種操作模式。
copy file 7 block 0 to file 6 block 1
BBED> copy file 7 block 0 to file 6 block 1
Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y
File: /mnt/ramdisk/book/sugar01.dbf (6)
Block: 1 Offsets: 0 to 255 Dba:0x01800001
------------------------------------------------------------------------------------------------------------------------------------------------
00a20000 0000c0ff 00000000 00000000 66ee0000 00200000 00140000 7d7c7b7a a0810000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
<64 bytes per line>
--補充如果這樣順序執行,到copy是第1次出錯,第2次ok:
dump /v file 6 block 1 count 256 offset 0
dump /v file 7 block 0 count 256 offset 0
BBED> copy file 7 block 0 to file 6 block 1
BBED-00309: out of range block number (0)
BBED> copy file 7 block 0 to file 6 block 1
Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y
File: /mnt/ramdisk/book/sugar01.dbf (6)
Block: 1 Offsets: 0 to 255 Dba:0x01800001
------------------------------------------------------------------------------------------------------------------------------------------------
00a20000 0000c0ff 00000000 00000000 66ee0000 00200000 00140000 7d7c7b7a a0810000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
<64 bytes per line>
--完成後退出bbed,再看一下,步驟略。
4.檢查是否正常:
SCOTT@book> alter tablespace sugar online ;
Tablespace altered.
SCOTT@book> select count(*) from t1;
COUNT(*)
----------
100000
總結:
還是不推薦這樣操作,僅僅為了瞭解學習的必要。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2128281/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20161110]資料檔案的第0塊.txt
- 用bbed檢視資料檔案的資料塊block 0及block 1BloC
- [20171114]恢復資料檔案塊頭2.txt
- [20161111]資料庫檔案頭的修復.txt資料庫
- [20121115]關於oracle資料檔案的第1塊.txtOracle
- 注意資料檔案最大塊數限制
- 資料檔案的SCN和資料塊的SCN有何區別
- 轉換RDBA的檔案和資料塊地址(轉)
- 利用RMAN修復資料檔案中的壞塊
- 資料檔案壞塊的製造和恢復
- rman恢復資料檔案-----塊折斷
- LMT & ASSM資料檔案塊分配圖示SSM
- 【exp】快速檢測資料檔案壞塊
- 資料檔案頭塊保留大小、ROWID、資料檔案最大大小等資料庫限制的說明資料庫
- 檢視Windows檔案系統資料塊大小的方法Windows
- oracle 普通表空間資料檔案壞塊Oracle
- oracle資料塊dump檔案中ITL詳解Oracle
- 根據rowid查詢資料檔案號,資料塊號
- 使用dbv和RMAN檢查資料檔案中的壞塊
- [20161031]rman備份與資料檔案變化2.txt
- [20210318]bbed讀取資料塊2.txt
- [20150527]bbed與資料塊檢查和2.txt
- 資料庫資料恢復-SQL SERVER資料庫檔案大小變為“0”的資料恢復方案資料庫資料恢復SQLServer
- Ext2檔案系統佈局,檔案資料塊定址,VFS虛擬檔案系統
- 觸發DBWR程式寫髒資料塊到資料檔案的幾個條件
- 使用blockrecover 對有壞塊的資料檔案進行恢復BloC
- [20180306]資料塊檢查和2.txt
- 【資料庫資料恢復】Oracle資料庫檔案出現壞塊報錯的資料恢復案例資料庫資料恢復Oracle
- Oracle 之利用BBED修改資料塊SCN----沒有備份資料檔案的資料恢復Oracle資料恢復
- 資料庫引數檔案控制檔案日誌檔案資料檔案跟蹤檔案等8大檔案的字典資料庫
- 資料檔案誤刪--但有資料檔案的copy恢復
- mysql的資料檔案MySql
- 建立資料庫檔案-日誌檔案-次要資料庫檔案資料庫
- 資料檔案
- 資料庫收縮資料檔案的嘗試(三)(r11筆記第22天)資料庫筆記
- 【dbv】使用dbv工具檢驗資料檔案是否有壞塊
- 小工具檢視MYSQL資料檔案塊和型別MySql型別
- MSSQL資料庫資料恢復案例:ndf檔案大小變為0KB恢復資料SQL資料庫資料恢復