資料塊損壞ORA-1578(發現損壞塊)
資料塊損壞一多都發生在硬體故障上,例如記憶體,換頁區,IO子系統,以及磁碟驅動器等發生問題時,引發資料在寫和讀的時候破壞了資料塊的結構.如何可以發現自己的資料塊是否發生損壞呢?
1.檢視ALERT LOG 如果發生損壞一般都會在ALERT LOG裡有記錄.
如:
Corrupt block relative dba: 0x0180024c (file 6, block 588)
Bad check value found during buffer read
Data in bad block:
type: 6 format: 2 rdba: 0x0180024c
last change scn: 0x0000.000d4ded seq: 0x9a flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x4ded069a
check value in block header: 0xaab
computed block checksum: 0x303d
2.使用DBV工具來檢查(可以在資料檔案使用的時候使用此工具,但是建議不這樣用).
頁 588 標記為損壞
Corrupt block relative dba: 0x0180024c (file 6, block 588)
Bad check value found during dbv:
Data in bad block:
type: 6 format: 2 rdba: 0x0180024c
last change scn: 0x0000.000d4ded seq: 0x9a flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x4ded069a
check value in block header: 0xaab
computed block checksum: 0x303d
3.使用ANALYZE 命令.
scott@ORA10> analyze table test validate structure;
analyze table test validate structure
*
第 1 行出現錯誤:
ORA-01578: ORACLE 資料塊損壞 (檔案號 6, 塊號 588)
ORA-01110: 資料檔案 6: 'C:ORACLEPRODUCT10.2.0ORADATAORA10TEST01.DBF'
4.使用ALTER SYSTEM DUMP DATAFILE 6 BLOCK 588;(來檢視SCN 的SEQ 如果為0XFF 塊被標記為損壞)
如:sys@ORA10> oradebug setmypid
已處理的語句
sys@ORA10> oradebug tracefile_name
c:oracleproduct10.2.0adminora10udumpora10_ora_5768.trc
scn: 0x0000.00000000 seq: 0xff flg: 0x00 tail: 0x000006ff(SCN 為0 說明是MEDIA 損壞,SEQ 0XFF 說明是SOFT 損壞)
5.使用EVENT 10232 在PFILE裡指定EVENT='10232 TRACE NAME CONTEXT FOREVER,LEVEL 10'
這樣會在發現BLOCK CORRUPTION 的時候DUMP 出TRACE 資訊
如:
Corrupt block relative dba: 0x01800086 (file 6, block 134)
Bad check value found during buffer read
Data in bad block:
type: 6 format: 2 rdba: 0x01800086
last change scn: 0x0000.000bd90f seq: 0x1e flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0xd90f061e
check value in block header: 0x395f
computed block checksum: 0x2d30
Reread of rdba: 0x01800086 (file 6, block 134) found same corrupted data
table scan: segment: file# 6 block# 11
skipping corrupt block file# 6 block# 134
*** 2008-08-28 16:39:11.453
*** 2008-08-28 16:39:11.453 60680 kcrr.c
ARCH: Archival disabled due to shutdown: 1089
*** 2008-08-28 16:39:12.468 60680 kcrr.c
ARCH: Archival disabled due to shutdown: 1089
6.使用EXP工具(此方法SYSTEM表空間的CORRUPTION 可能不能發現)
如: EXP SYSTEM/ADMIN FULL=Y FILE=/dev/null
. . 正在匯出表 TEST
EXP-00056: 遇到 ORACLE 錯誤 1578
ORA-01578: ORACLE 資料塊損壞 (檔案號 6, 塊號 588)
ORA-01110: 資料檔案 6: 'C:ORACLEPRODUCT10.2.0ORADATAORA10TEST01.DBF'
7.使用RMAN 工具(只有此方法能發現HWM 以上的資料塊損壞)
如:
通道 ORA_DISK_1: 正在啟動段 1 於 28-8月 -08
ORA-19566:超出塊損壞限制:0
............................
1.檢視ALERT LOG 如果發生損壞一般都會在ALERT LOG裡有記錄.
如:
Corrupt block relative dba: 0x0180024c (file 6, block 588)
Bad check value found during buffer read
Data in bad block:
type: 6 format: 2 rdba: 0x0180024c
last change scn: 0x0000.000d4ded seq: 0x9a flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x4ded069a
check value in block header: 0xaab
computed block checksum: 0x303d
2.使用DBV工具來檢查(可以在資料檔案使用的時候使用此工具,但是建議不這樣用).
頁 588 標記為損壞
Corrupt block relative dba: 0x0180024c (file 6, block 588)
Bad check value found during dbv:
Data in bad block:
type: 6 format: 2 rdba: 0x0180024c
last change scn: 0x0000.000d4ded seq: 0x9a flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x4ded069a
check value in block header: 0xaab
computed block checksum: 0x303d
3.使用ANALYZE 命令.
scott@ORA10> analyze table test validate structure;
analyze table test validate structure
*
第 1 行出現錯誤:
ORA-01578: ORACLE 資料塊損壞 (檔案號 6, 塊號 588)
ORA-01110: 資料檔案 6: 'C:ORACLEPRODUCT10.2.0ORADATAORA10TEST01.DBF'
4.使用ALTER SYSTEM DUMP DATAFILE 6 BLOCK 588;(來檢視SCN 的SEQ 如果為0XFF 塊被標記為損壞)
如:sys@ORA10> oradebug setmypid
已處理的語句
sys@ORA10> oradebug tracefile_name
c:oracleproduct10.2.0adminora10udumpora10_ora_5768.trc
scn: 0x0000.00000000 seq: 0xff flg: 0x00 tail: 0x000006ff(SCN 為0 說明是MEDIA 損壞,SEQ 0XFF 說明是SOFT 損壞)
5.使用EVENT 10232 在PFILE裡指定EVENT='10232 TRACE NAME CONTEXT FOREVER,LEVEL 10'
這樣會在發現BLOCK CORRUPTION 的時候DUMP 出TRACE 資訊
如:
Corrupt block relative dba: 0x01800086 (file 6, block 134)
Bad check value found during buffer read
Data in bad block:
type: 6 format: 2 rdba: 0x01800086
last change scn: 0x0000.000bd90f seq: 0x1e flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0xd90f061e
check value in block header: 0x395f
computed block checksum: 0x2d30
Reread of rdba: 0x01800086 (file 6, block 134) found same corrupted data
table scan: segment: file# 6 block# 11
skipping corrupt block file# 6 block# 134
*** 2008-08-28 16:39:11.453
*** 2008-08-28 16:39:11.453 60680 kcrr.c
ARCH: Archival disabled due to shutdown: 1089
*** 2008-08-28 16:39:12.468 60680 kcrr.c
ARCH: Archival disabled due to shutdown: 1089
6.使用EXP工具(此方法SYSTEM表空間的CORRUPTION 可能不能發現)
如: EXP SYSTEM/ADMIN FULL=Y FILE=/dev/null
. . 正在匯出表 TEST
EXP-00056: 遇到 ORACLE 錯誤 1578
ORA-01578: ORACLE 資料塊損壞 (檔案號 6, 塊號 588)
ORA-01110: 資料檔案 6: 'C:ORACLEPRODUCT10.2.0ORADATAORA10TEST01.DBF'
7.使用RMAN 工具(只有此方法能發現HWM 以上的資料塊損壞)
如:
通道 ORA_DISK_1: 正在啟動段 1 於 28-8月 -08
ORA-19566:超出塊損壞限制:0
............................
8.使用SELECT * FROM TABLENAME;做FULL TABLE SCAN 同樣也會標記出損壞的塊。
[@more@]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8188536/viewspace-1027582/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle資料庫塊的物理損壞與邏輯損壞Oracle資料庫
- 修復損壞的資料塊
- ORA-01578(資料塊損壞)跳過壞塊
- 處理塊損壞
- ORACLE中修復資料塊損壞Oracle
- 檢查資料塊損壞(Block Corruption)BloC
- 如何查詢損壞塊
- ORA-01578(資料塊損壞)跳過壞塊處理辦法
- Oracle中匯出修復資料塊損壞Oracle
- Oracle中模擬修復資料塊損壞Oracle
- 第7章 處理塊損壞
- 轉載:Oracle資料塊損壞恢復總結Oracle
- 使用dbms_repair修復塊損壞AI
- 【故障分析】通過壞塊提示資訊確定損壞的資料庫物件資訊資料庫物件
- Oracle塊損壞恢復(有rman備份)Oracle
- pg 檔案塊損壞的修復措施。
- 資料庫檔案壞塊損壞導致開啟時報錯的恢復方法資料庫
- Oracle資料庫壞塊(corruption)-物理壞塊Oracle資料庫
- RAID5的硬碟損壞,會發生什麼?多少塊磁碟損壞會導致RAID5資料丟失AI硬碟
- 資料庫損壞解決:資料庫已損壞,無法分配空間資料庫
- 陣列櫃故障造成控制檔案損壞,資料檔案損壞陣列
- 磁碟損壞造成RMAN備份檔案有壞塊的恢復案例
- 無備份的資料塊損壞恢復辦法 dbms_repairAI
- 深入解析:段頭塊損壞bbed異常恢復
- 資料檔案損壞、丟失
- 處理 Oracle 塊損壞 (文件 ID 1526911.1)Oracle
- Oracle REDO損壞Oracle Redo
- EXP匯出ORA-01578(資料塊損壞)錯誤解決方法
- SQL Server 資料頁損壞修復SQLServer
- RMAN學習-資料檔案損壞
- u盤檔案損壞怎麼恢復資料 u盤恢復損壞資料的有效方法
- 學習這篇Oracle資料庫檔案壞塊損壞的恢復方法,擴充你的知識面Oracle資料庫
- 資料庫壞塊處理資料庫
- redo日誌損壞
- index損壞恢復Index
- undo 檔案損壞
- 線上日誌損壞
- 11g資料庫出現壞塊資料庫