[20150619]undo檔案損壞或者丟失的恢復3
[20150619]undo檔案損壞或者丟失的恢復3.txt
--實際上前面的測試是非常理想情況下的測試,真實的情況肯定比上面介紹的複雜。
--一般情況下,資料庫異常關機,最容易出現的是線上redo損壞,一般透過隱含引數_allow_resetlogs_corruption跳過。
SYS@test> @ &r/hide _allow_resetlogs_corruption
NAME DESCRIPTION DEFAULT_VALUE SESSION_VALUE SYSTEM_VALUE
---------------------------- ------------------------------------------------- -------------- -------------- -------------
_allow_resetlogs_corruption allow resetlogs even if it will cause corruption TRUE FALSE FALSE
--如果在出現回滾段錯誤,透過修改引數_corrupted_rollback_segments,_offline_rollback_segments跳過一些回滾段。
--10g下一般很好確定,命名格式是:
像_SYSSMU1$ 格式 _SYSSMU
--而11g下加入了時間戳,在無法開啟資料庫的情況下,可以透過bvi或者bbed來確定。
--另外一般位置相對固定,只要找一個資料塊大小一樣的資料塊查詢sys.undo$(資料庫版本要一致)的rowid基本可以是那些。
--
SCOTT@test> @ver1
PORT_STRING VERSION BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx 11.2.0.3.0 Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
SCOTT@test> select rowid,us#,name from sys.undo$ where rownum<=1;
ROWID US# NAME
------------------ ---------- ----------------------------------------
AAAAAPAABAAAADhAAA 0 SYSTEM
SCOTT@test> @ lookup_rowid AAAAAPAABAAAADhAAA
OBJECT FILE BLOCK ROW DBA TEXT
---------- ---------- ---------- ---------- -------------------- ----------------------------------------
15 1 225 0 1,225 alter system dump datafile 1 block 225 ;
BBED> set dba 1,225
DBA 0x004000e1 (4194529 1,225)
BBED> x /2rncnnnnnnnnnnnnnnnnncct rowdata
rowdata[0] @862
----------
flag@862: 0x2c (KDRHFL, KDRHFF, KDRHFH)
lock@863: 0x00
cols@864: 17
col 0[2] @865: 4
col 1[20] @868: _SYSSMU4_1665036189$
col 2[2] @889: 1
col 3[2] @892: 3
col 4[3] @895: 176
col 5[6] @899: 4103678170
col 6[2] @906: 2
col 7[4] @909: 34048
col 8[4] @914: 10126
col 9[1] @919: 0
col 10[2] @921: 3
col 11[2] @924: 2
col 12[0] @927: *NULL*
col 13[0] @928: *NULL*
col 14[0] @929: *NULL*
col 15[0] @930: *NULL*
col 16[2] @931: 2
rowdata[72] @934
-----------
flag@934: 0x2c (KDRHFL, KDRHFF, KDRHFH)
lock@935: 0x00
cols@936: 17
col 0[3] @937: 104
col 1[21] @941: _SYSSMU104_777408806$
col 2[2] @963: 1
col 3[2] @966: 10
col 4[3] @969: 176
col 5[6] @973: 3414864939
col 6[2] @980: 2
col 7[3] @983: 1024
col 8[3] @987: 657
col 9[1] @991: 0
col 10[2] @993: 2
col 11[2] @996: 5
col 12[0] @999: *NULL*
col 13[0] @1000: *NULL*
col 14[0] @1001: *NULL*
col 15[0] @1002: *NULL*
col 16[2] @1003: 2
....
--也可以使用bbvi編輯:
SCOTT@test> @bbvi 1 225
BVI_COMMAND
------------------------------------------------------------------------------------------
bvi -b 1843200 -s 8192 /u01/app/oracle11g/oradata/test/system01.dbf
--執行如下:
$ touch aa.txt
$ bvi -b 1843200 -s 81920 /u01/app/oracle11g/oradata/test/system01.dbf
:w aa.txt
--說明-s 長度加大一些,因為可能在許多資料塊中。
$ strings aa.txt | grep SYSSMU | uniq |head -10
_SYSSMU9_3043963034$
_SYSSMU3_2763804800$
_SYSSMU4_1665036189$
_SYSSMU104_777408806$
_SYSSMU103_9611014$
_SYSSMU102_1057122756$
_SYSSMU101_445156792$
_SYSSMU100_3478039479$
_SYSSMU99_2737214818$
_SYSSMU98_2332908142$
SYS@test> select rowid,us#,name from sys.undo$ where us#=3;
ROWID US# NAME
------------------ ---------- --------------------
AAAAAPAABAAAADhAAD 3 _SYSSMU3_2763804800$
SYS@test> select rowid,us#,name from sys.undo$ where us#=9;
ROWID US# NAME
------------------ ---------- --------------------
AAAAAPAABAAAADhAAJ 9 _SYSSMU9_3043963034$
--還是對上的。可以參考我以前寫的:
http://blog.itpub.net/267265/viewspace-1162543/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-1705101/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20150619]undo檔案損壞或者丟失的恢復1
- [20150619]undo檔案損壞或者丟失的恢復2
- REDO檔案丟失或者損壞的恢復
- INDEX表空間檔案丟失或者損壞的恢復Index
- RMAN_部分資料檔案丟失或者損壞的恢復
- undo檔案丟失或損壞
- 資料檔案丟失損壞的恢復--
- Oracle不同檔案丟失/損壞的恢復方法Oracle
- rman 恢復---歸檔丟失and資料檔案損壞
- 磁碟損壞導致資料檔案丟失的恢復
- coreldraw檔案丟失(損壞)的恢復處理辦法
- UNDO 表空間檔案損壞的恢復
- Recovery from missing or corrupted datafile(多個資料檔案丟失或者損壞的恢復)
- 備份與恢復--資料檔案損壞或丟失
- Oracle重做日誌檔案損壞或丟失後的恢復Oracle
- oracle控制檔案的損壞或完全丟失的恢復辦法Oracle
- TEMP表空間的檔案丟失或損壞後的恢復
- RMAN_資料庫的絕大部分資料檔案丟失或者損壞的恢復資料庫
- 資料檔案損壞、丟失
- 2.7.10 恢復丟失或損壞的伺服器引數檔案(SPFILE)伺服器
- undo 檔案損壞
- undo表空間檔案丟失恢復(3)--無備份無redo的情況下恢復
- win10安裝檔案丟失或者損壞怎麼解決Win10
- 損壞控制檔案的恢復方法
- 恢復丟失的控制檔案
- undo表空間檔案丟失恢復(1)--有備份
- 控制檔案丟失恢復
- 【控制檔案丟失恢復】
- 備份&恢復之五:歸檔模式下丟失或損壞一個資料檔案模式
- 資料檔案或者tablespace損壞基於rman恢復測試
- 【恢復】Redo日誌檔案丟失的恢復
- 單個控制檔案損壞的恢復
- 控制檔案損壞,丟失其中一個
- 資料檔案丟失的恢復
- 控制檔案全部丟失的恢復
- 控制檔案部分丟失的恢復
- Oracle Password檔案丟失的恢復Oracle
- 控制檔案丟失的RMAN恢復