您好,登錄后才能下訂單哦!
小編給大家分享一下oracle中ORA-01578和ORA-01110數據文件出現壞塊時跳過損壞的塊怎么辦,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
使用命令檢查損壞的是否為普通數據。
SELECT tablespace_name, segment_type, owner, segment_name
FROM dba_extents
WHERE file_id = 4
and 293465 between block_id AND block_id + blocks - 1
方法2:
然后用10231該命令設置全表掃描時跳過壞塊。
ALTER SYSTEM SET EVENTS='10231 trace name context forever,level 10';
也可以alter session在session級中使用,然后通過
create table as select的方式來拯救數據(當然會有數據損失)。
比對問題表和新表數據條數,查看丟失數據條數
exp 導出新表數據
drop table t1 purge; 徹底刪除問題表
imp導入新表數據,然后將其改名為問題表同名即可。
也可不創建新表,直接10231跳過壞塊后exp導出問題表數據。
方法3:
另外一種方法是使用SKIP_CORRUPT_BLOCKS標記,方法為使用命令
SQL> alter session set db_file_multiblock_read_count=1;
SQL> execute DBMS_REPAIR.SKIP_CORRUPT_BLOCKS('NEWDOCHNZZ','T_PATIENT_DOC_COLB');
SQL> create table abak as select * from T_PATIENT_DOC_COLB ; 收集剩下的信息。
最后清除這個標記。
SQL> execute DBMS_REPAIR.SKIP_CORRUPT_BLOCKS('NEWDOCHNZZ','T_PATIENT_DOC_COLB',flags=>dbms_repair.noskip_flag);
關于壞塊的metalink文檔如下:
RELATED DOCUMENTS
-----------------
- TECH: Database Block Checking
Features Note 32969.1
- Handling Oracle Block Corruptions in
Oracle7/8/8i/9i Note 28814.1
- Handling Rollback Segment Corruptions in Oracle7.3 to 8.1.7 Note 106638.1
- Extracting Data from a Corrupt Table using
SKIP_CORRUPT_BLOCKS or Event 10231 Note 33405.1
- ORA-1578 ORACLE data block corrupted (file # %s, block #
%s) Note 18976.1
- Parameter DIRECT: Conventional Path Export Versus Direct
Path
Export Note 155477.1
以上是“oracle中ORA-01578和ORA-01110數據文件出現壞塊時跳過損壞的塊怎么辦”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。