一次使用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資料庫undo壞塊處理Oracle資料庫
- 【BLOCK】Oracle壞塊處理命令參考BloCOracle
- 深入解析:段頭塊損壞bbed異常恢復
- [20190718]12c壞塊處理一例.txt
- 一個簡單易用的資料庫壞塊處理方案資料庫
- Oracle資料庫處理壞塊問題常用命令Oracle資料庫
- 如何處理Oracle資料庫中的壞塊問題(轉)Oracle資料庫
- 控制檔案損壞處理
- Oracle資料庫出現ORA-19566 LOB壞塊的處理記錄Oracle資料庫
- [20210906]bbed讀取資料塊(bbed-wrap.sh).txt
- RAC磁碟頭損壞問題處理
- jwt 多使用者認證,一次簡單處理。JWT
- [20210318]bbed讀取資料塊.txt
- MySQL資料庫InnoDB壞頁處理修復MySql資料庫
- oracle壞塊(二)Oracle
- [20210401]使用bbed讀取資料塊恢復注意6.txt
- RMAN修復壞塊
- [20210831]bbed讀取資料塊6.txt
- [20210323]bbed讀取資料塊5.txt
- [20210318]bbed讀取資料塊2.txt
- [20210319]bbed讀取資料塊3.txt
- 「日常開發」記一次因使用Date引起的線上BUG處理
- redis的好處和壞處Redis
- 一次烏龍的SSH攻擊處理
- 記一次ceph pg unfound處理過程
- Oracle 無備份情況下undo檔案損壞處理Oracle
- 鍵盤沒壞,忽然不能用瞭如何處理 為什麼鍵盤沒壞就是打不了字
- 一次併發處理過程, 基於 RedisRedis
- 一次在docker中處理kdevtmpfsi的經歷Dockerdev
- 一次ceph心跳機制異常的處理
- 記一次PMML檔案的處理過程
- 記一次處理達夢慢SQL問題SQL
- 一次詭異的MySQL問題處理故事MySql
- Oracle 記一次ORA-00001問題處理Oracle
- oracle redo各種狀態(inactive、active、current)損壞的處理方式Oracle Redo
- MySQL資料庫INNODB表損壞修復處理過程分享MySql資料庫