oracle中ORA

56次阅读
没有评论

共计 1617 个字符,预计需要花费 5 分钟才能阅读完成。

行业资讯    
数据库    
关系型数据库    
oracle 中 ORA-01578 和 ORA-01110 数据文件出现坏块时跳过损坏的块怎么办

丸趣 TV 小编给大家分享一下 oracle 中 ORA-01578 和 ORA-01110 数据文件出现坏块时跳过损坏的块怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

ORA-01578: ORACLE  数据块损坏  (文件号  4,  块号  293465) ORA-01110:  数据文件  4:  D:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF

使用命令检查损坏的是否为普通数据。

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 数据文件出现坏块时跳过损坏的块怎么办”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-24发表,共计1617字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)