一次使用BBED處理壞塊
ORA-06502: PL/SQL: numeric or value error ORA-06512: at "SEPDBA.PF_BACKUP_ZPXXJL_UPD", line 116 ORA-01578: ORACLE 資料塊損壞(檔案號45,塊號436285) ORA-01110: 資料檔案 45: 'U:\DZJCDB2\SEP_PIC26.DBF' ORA-02063: preceding 2 lines from LINK_DZJC ORA-06512 |
找客戶確認下了,這是連線到B庫報出來的錯,其通過DBLINK向A庫插入了條資料,但是準備使用的塊有壞塊
由於這個庫本來有備份,但是客戶一直未檢查備份,最新的一次備份時間點是2007年,而且中間客戶由於歸檔目錄滿,就手工刪除了很多日誌,根本無法進行塊恢復。
還好這是個歷史庫,客戶確認丟點資料無所謂,那就把這個塊給隔離下下
一查,這個塊屬於一個LOB段,DBMS_REPAIR無法隔離LOB塊
嘗試了10231,但是無用,估計DBMS_REPAIR對插入時報告的壞塊也無用(已測試,確實無用)
既然是LOB段,就是說,這個將要被插入資料的塊,實際是無用的,只是一個前版本,DUMP了下這個資料塊,確認這個塊就存在一條資料的物件。
那麼如果把這個表的資料CTAS重建一個,就可以正常的處理該問題,但是客戶無那麼多空間,而且,這個表有4T,無分割槽,911W條記錄。而且又是WIN系統,不知道怎麼EXP到一個NULL檔案,算了,不管了
看來最後的辦法只有BBED
DBV檢查這個塊的結果,是CHECKSUM錯誤,於是打算先嚐試下重新計算CHECKSUM
SUM APPLY後,還是不對
BBED> set dba 1,436285 DBA 0x0046a83d (4630589 1,436285)
BBED> verify DBVERIFY - 驗證正在啟動 FILE =U:\DZJCDB2\SEP_PIC26.DBF BLOCK = 436285
塊436285已毀壞 *** Corrupt block relative dba: 0x0b46a83d (file 0, block 436285) Fractured block found during verification Data in bad block - type: 40 format: 2 rdba: 0x0b46a83d last change scn: 0x0742.9dd0ea63 seq: 0x2 flg: 0x04 consistency value in tail: 0xfc752802 check value in block header: 0xfe5e, computed block checksum: 0x0 spare1: 0x0, spare2: 0x0, spare3: 0x0 ***
DBVERIFY - 驗證完成
檢查的總塊數:1 已處理的總塊數(資料):0 無法處理的總塊數(資料):0 已處理的總塊數(索引):0 無法處理的總塊數(索引):0 空的總塊數:0 標記為損壞的總數塊:1 匯入的塊總數:2
BBED> sum Check value for File 1, Block 436285: current = 0xfe5e, required = 0xfe5e |
這時已經報告了一個本質的錯誤:consistency value in tail
但是當時一直想著CHECKSUM,竟然忽略了本質!幸得熊哥提醒,才看到
原來就是頭部的SCNBASE+TYPE+SEQ和尾部的TAIL不等
頭部的值:ea632802
尾部的值:fc752802
那下來就簡單了
alter session set events 'immediate trace name flush_cache';
|
set dba 1, 436285
dump count 16384
find /x 0228fc75
modify /x 022863ea
dump
sum apply
verify
|
驗證無問題
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8242091/viewspace-665672/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE資料庫壞塊的處理 (一次壞快處理過程)Oracle資料庫
- 一次壞塊的處理過程(一)
- 一次壞塊的處理過程(二)
- 一次壞塊的處理過程 [轉]
- Oracle壞塊處理Oracle
- rootvg壞塊處理
- ORACLE 壞塊處理Oracle
- 處理塊損壞
- 一次ORACLE資料庫undo壞塊處理Oracle資料庫
- DBA實踐---壞塊處理
- 資料庫壞塊處理資料庫
- Oracle壞塊處理相關Oracle
- Oracle壞塊問題處理Oracle
- oracle corrupt block壞塊處理OracleBloC
- 第7章 處理塊損壞
- BAD Block 壞塊的處理BloC
- ORACLE資料庫壞塊的處理 (處理無物件壞快的方法)Oracle資料庫物件
- 【BLOCK】Oracle壞塊處理命令參考BloCOracle
- oracle壞塊模擬處理(筆記)Oracle筆記
- Oracle 壞塊處理三板斧Oracle
- Oracle壞塊修復處理實驗Oracle
- 一次不完全恢復中途Kill rman後的問題處理+壞塊處理過程
- 壞塊的處理思維(用程式製作壞塊不如用系統)
- bad block表上壞塊的處理BloC
- ORA-01578(資料塊損壞)跳過壞塊處理辦法
- Oracle_UNDO壞塊測試和修復(BBED)Oracle
- 資料庫壞塊Corrupt block的處理方法資料庫BloC
- 對oracle中出現的壞塊的處理方法Oracle
- ORACLE壞塊(ORA-01578)處理方法Oracle
- ReiserFS檔案系統壞塊的處理(轉)
- rman備份後發現壞塊的處理
- 發生壞塊後的處理及確認
- 深入解析:段頭塊損壞bbed異常恢復
- ORACLE壞塊(ORA-01578)處理方法(zt)Oracle
- 教你如何處理Oracle資料庫中的壞塊Oracle資料庫
- RMAN備份時候檔案壞塊的處理
- 是用bbed工具模擬對塊的破壞,並使用rman bock recover進行塊恢復
- 處理 Oracle 塊損壞 (文件 ID 1526911.1)Oracle