您好,登錄后才能下訂單哦!
ORA-01578是 數(shù)據(jù)塊物理壞塊/損壞的一種,不同于邏輯損壞/壞塊,一般 會(huì)伴隨ORA-1110出現(xiàn),一旦ORACLE讀取到存在損壞的塊就會(huì)報(bào)出Caused by: java.sql.SQLException: ORA-01578: ORACLE 數(shù)據(jù)塊損壞 (文件號(hào) 4, 塊號(hào) 840339)
ORA-01110: 數(shù)據(jù)文件 4: 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF'
解決方法如下:
1、使用DBV檢查數(shù)據(jù)文件,在cmd目錄下直接輸入dbv file='E:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF' blocksize=8192;然后等待檢測(cè)結(jié)果
2、檢查損壞相關(guān)的表
SELECT tablespace_name, segment_type, owner, segment_name FROM dba_extents WHERE file_id = 4 and 840339 between block_id AND block_id + blocks - 1;
查到相關(guān)的表名
3、內(nèi)部事件,設(shè)置在全表掃描時(shí)跳過損壞的數(shù)據(jù)塊:ALTER SYSTEM SET EVENTS='10231 trace name context forever,level 10';
4、導(dǎo)出上邊相關(guān)的表沒有損壞的數(shù)據(jù)exp test/test file=t.dmp tables=t
5、刪除損壞相關(guān)的表 drop table t;
再將數(shù)據(jù)做導(dǎo)入imp test/test file=t.dmp tables=t
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。