資料塊損壞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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 深入解析:段頭塊損壞bbed異常恢復
- SQL Server 資料頁損壞修復SQLServer
- u盤檔案損壞怎麼恢復資料 u盤恢復損壞資料的有效方法
- 學習這篇Oracle資料庫檔案壞塊損壞的恢復方法,擴充你的知識面Oracle資料庫
- 某公司伺服器raid陣列2塊硬碟損壞資料恢復成功案例伺服器AI陣列硬碟資料恢復
- system資料檔案頭損壞修復
- PostgreSQL資料庫toast表損壞解決SQL資料庫AST
- SQLite資料庫損壞及其修復探究SQLite資料庫
- RMAN備份中發現壞塊
- WPS文件損壞如何修復?WPS文件損壞的修復方法
- u盤檔案損壞怎麼恢復資料 u盤損壞無法讀取怎麼恢復資料
- 伺服器Oracle資料庫損壞修復伺服器Oracle資料庫
- 隨身碟顆粒損壞資料恢復資料恢復
- Ceph 磁碟損壞現象和解決方法
- Oracle資料庫壞塊典型案例分析Oracle資料庫
- oracle壞塊(二)Oracle
- InterBase資料庫檔案損壞的修復方法資料庫
- 伺服器資料庫損壞能修復嘛伺服器資料庫
- redo損壞修復啟動資料庫辦法資料庫
- 【LINUX】Oracle資料庫 linux磁碟頭資料損壞修復LinuxOracle資料庫
- linux下修復磁碟損壞Linux
- 控制檔案損壞處理
- Oracle資料庫壞塊典型案例擴充Oracle資料庫
- 伺服器資料損壞有辦法修復嗎?伺服器
- 電腦進水導致硬碟損壞資料恢復硬碟資料恢復
- Oracle壞塊處理Oracle
- RMAN修復壞塊
- 當前日誌損壞的案例(轉)
- 資料底層損壞的恢復方法—拼碎片恢復資料
- 執行在容器中Postgres資料庫資料損壞後如何恢復?資料庫
- oracle 普通表空間資料檔案壞塊Oracle
- Oracle資料庫不同損壞級別的恢復詳解Oracle資料庫
- 微軟發現一個 ChromeOS 遠端記憶體損壞漏洞微軟Chrome記憶體
- Oracle 控制檔案損壞解決方案Oracle
- RAC磁碟頭損壞問題處理
- Oracle asm磁碟損壞異常恢復OracleASM
- windows10應用商店損壞怎麼修復_win10應用商店損壞處理方法WindowsWin10
- ASM磁碟頭資訊損壞和修復(kfed/dd)ASM
- PostgreSQL DBA(30) - Backup&Recovery#3(資料檔案損壞恢復)SQL