小编给大家分享一下oracle中ORA-01578和ORA-01110数据文件出现坏块时跳过损坏的块怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
使用命令检查损坏的是否为普通数据。
SELECT tablespace_name, segment_type, owner, segment_name
FROM dba_extents
WHERE file_id = 4
and293465 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
FeaturesNote 32969.1
– Handling Oracle Block Corruptions in
Oracle7/8/8i/9iNote 28814.1
– Handling Rollback Segment Corruptions in Oracle7.3 to 8.1.7Note 106638.1
– Extracting Data from a Corrupt Table using
SKIP_CORRUPT_BLOCKS or Event 10231Note 33405.1
– ORA-1578 ORACLE data block corrupted (file # %s, block #
%s)Note 18976.1
– Parameter DIRECT: Conventional Path Export Versus Direct
Path
免费主机域名
Export No免费主机域名te 155477.1以上是“oracle中ORA-01578和ORA-01110数据文件出现坏块时跳过损坏的块怎么办”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注云技术行业资讯频道!
相关推荐: mysql innodb double write概念是什么
小编给大家分享一下mysql innodb double write概念是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!double write原理图如下:通过引入doublewrite buffer的方案,每次innodb在准备写出一个…