您好,登錄后才能下訂單哦!
小編給大家分享一下oracle中ORA-01578和ORA-01110數(shù)據(jù)文件出現(xiàn)壞塊時跳過損壞的塊怎么辦,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
使用命令檢查損壞的是否為普通數(shù)據(jù)。
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該命令設(shè)置全表掃描時跳過壞塊。
ALTER SYSTEM SET EVENTS='10231 trace name context forever,level 10';
也可以alter session在session級中使用,然后通過
create table as select的方式來拯救數(shù)據(jù)(當(dāng)然會有數(shù)據(jù)損失)。
比對問題表和新表數(shù)據(jù)條數(shù),查看丟失數(shù)據(jù)條數(shù)
exp 導(dǎo)出新表數(shù)據(jù)
drop table t1 purge; 徹底刪除問題表
imp導(dǎo)入新表數(shù)據(jù),然后將其改名為問題表同名即可。
也可不創(chuàng)建新表,直接10231跳過壞塊后exp導(dǎo)出問題表數(shù)據(jù)。
方法3:
另外一種方法是使用SKIP_CORRUPT_BLOCKS標(biāo)記,方法為使用命令
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 ; 收集剩下的信息。
最后清除這個標(biāo)記。
SQL> execute DBMS_REPAIR.SKIP_CORRUPT_BLOCKS('NEWDOCHNZZ','T_PATIENT_DOC_COLB',flags=>dbms_repair.noskip_flag);
關(guān)于壞塊的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數(shù)據(jù)文件出現(xiàn)壞塊時跳過損壞的塊怎么辦”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。