内容简介:本站文章除注明转载外,均为本站原创:转载自本文链接地址:前不久某省GA的由于存储掉电导致多套数据库无法启动,其中恢复某套大库时遇到了一些新的问题,之前从来没有遇到过。经过一番抢救之后,数据库终于打开了,但是无法进行任何DDL操作,创建测试表报错:
本站文章除注明转载外,均为本站原创:转载自 love wife & love life —Roger的Oracle&MySQL技术博客
本文链接地址: 某省GA 30TB数据库恢复记录
前不久某省GA的由于存储掉电导致多套数据库无法启动,其中恢复某套大库时遇到了一些新的问题,之前从来没有遇到过。经过一番抢救之后,数据库终于打开了,但是无法进行任何DDL操作,创建测试表报错:
SQL> create table test110 as select * from dba_objects where rownum <10; create table test110 as select * from dba_objects where rownum <10 * ERROR at line 1: ORA-00600: internal error code, arguments: [kqd-objerror$], [U], [2], [107], [PG_TJBB_DTZH], [], [], [], [], [], [], []
这个错误之前很少见到。我们跑一下Oracle 官方提供的hcheck脚本,检查了一下数据库中的数据字典情况,发现确实存在一些不一致的问题,如下:
Catalog Fixed Procedure Name Version Vs Release Timestamp Result ------------------------------ ... ---------- -- ---------- -------------- ------ .- LobNotInObj ... 1102000400 <= *All Rel* 06/06 08:05:19 PASS .- MissingOIDOnObjCol ... 1102000400 <= *All Rel* 06/06 08:05:19 PASS .- SourceNotInObj ... 1102000400 <= *All Rel* 06/06 08:05:19 PASS .- OversizedFiles ... 1102000400 <= *All Rel* 06/06 08:05:41 PASS .- PoorDefaultStorage ... 1102000400 <= *All Rel* 06/06 08:05:42 PASS .- PoorStorage ... 1102000400 <= *All Rel* 06/06 08:05:42 PASS .- TabPartCountMismatch ... 1102000400 <= *All Rel* 06/06 08:05:42 PASS .- OrphanedTabComPart ... 1102000400 <= *All Rel* 06/06 08:05:42 PASS .- MissingSum$ ... 1102000400 <= *All Rel* 06/06 08:05:42 PASS .- MissingDir$ ... 1102000400 <= *All Rel* 06/06 08:05:42 PASS .- DuplicateDataobj ... 1102000400 <= *All Rel* 06/06 08:05:42 FAIL HCKE-0014: Duplicate dataobj# (Doc ID 1360519.1) DATAOBJ#=378264 Tablespace=TBSCRJ_DATA_2 Name=CRJBKU.D_MH_DWXXGLB_190603 Type=TABLE DATAOBJ#=378264 Tablespace=TBSCRJ_DATA_2 Name=CRJBKU.D_MH_DWXXGLB_190603 Type=TABLE DATAOBJ#=378265 Tablespace=TBSCRJ_DATA_2 Name=CRJBKU.D_MH_STYSB_190603 Type=TABLE DATAOBJ#=378265 Tablespace=TBSCRJ_DATA_2 Name=CRJBKU.D_MH_STYSB_190603 Type=TABLE DATAOBJ#=378266 Tablespace=TBSCRJ_DATA_2 Name=CRJBKU.D_SAVECOLUMNINFO_190603 Type=TABLE DATAOBJ#=378266 Tablespace=TBSCRJ_DATA_2 Name=CRJBKU.D_SAVECOLUMNINFO_190603 Type=TABLE DATAOBJ#=378283 Tablespace=TBSCRJ_DATA_2 Name=CRJBKU.D_YH_DWXX_190603 Type=TABLE DATAOBJ#=378283 Tablespace=TBSCRJ_DATA_2 Name=CRJBKU.D_YH_DWXX_190603 Type=TABLE .- ObjSynMissing ... 1102000400 <= *All Rel* 06/06 08:05:44 PASS .- ObjSeqMissing ... 1102000400 <= *All Rel* 06/06 08:05:46 PASS .- OrphanedUndo ... 1102000400 <= *All Rel* 06/06 08:05:46 PASS .- OrphanedIndex ... 1102000400 <= *All Rel* 06/06 08:05:46 FAIL HCKE-0016: Orphaned IND$ (no SEG$) (Doc ID 1360531.1) ORPHAN IND$: OBJ=378298 DOBJ=378298 TS=59 RFILE/BLOCK=59/3827354 INDEX=CRJBKU.SYS_IL0000378296C00004$$ OF TABLE=CRJBKU.D_YH_XP_190603 BO#=378296 ORPHAN IND$: OBJ=378301 DOBJ=378301 TS=59 RFILE/BLOCK=236/1244970 INDEX=CRJBKU.SYS_IL0000378299C00009$$ OF TABLE=CRJBKU.D_YH_ZW_190603 BO#=378299 ORPHAN IND$: OBJ=378303 DOBJ=378303 TS=59 RFILE/BLOCK=236/1244986 INDEX=CRJBKU.SYS_IL0000378299C00010$$ OF TABLE=CRJBKU.D_YH_ZW_190603 BO#=378299 ORPHAN IND$: OBJ=378305 DOBJ=378305 TS=59 RFILE/BLOCK=236/1245002 INDEX=CRJBKU.SYS_IL0000378299C00013$$ OF TABLE=CRJBKU.D_YH_ZW_190603 BO#=378299 ORPHAN IND$: OBJ=378307 DOBJ=378307 TS=59 RFILE/BLOCK=236/1245018 INDEX=CRJBKU.SYS_IL0000378299C00023$$ OF TABLE=CRJBKU.D_YH_ZW_190603 BO#=378299 ORPHAN IND$: OBJ=378309 DOBJ=378309 TS=59 RFILE/BLOCK=236/1245034 INDEX=CRJBKU.SYS_IL0000378299C00024$$ OF TABLE=CRJBKU.D_YH_ZW_190603 BO#=378299 ORPHAN IND$: OBJ=378311 DOBJ=378311 TS=59 RFILE/BLOCK=236/1245050 INDEX=CRJBKU.SYS_IL0000378299C00025$$ OF TABLE=CRJBKU.D_YH_ZW_190603 BO#=378299 ORPHAN IND$: OBJ=378313 DOBJ=378313 TS=59 RFILE/BLOCK=236/1249290 INDEX=CRJBKU.SYS_IL0000378299C00031$$ OF TABLE=CRJBKU.D_YH_ZW_190603 BO#=378299 ORPHAN IND$: OBJ=378315 DOBJ=378315 TS=59 RFILE/BLOCK=236/1249306 INDEX=CRJBKU.SYS_IL0000378299C00032$$ OF TABLE=CRJBKU.D_YH_ZW_190603 BO#=378299 .- OrphanedIndexPartition ... 1102000400 <= *All Rel* 06/06 08:05:46 PASS .- OrphanedIndexSubPartition ... 1102000400 <= *All Rel* 06/06 08:05:46 PASS .- OrphanedTable ... 1102000400 <= *All Rel* 06/06 08:05:46 PASS .- OrphanedTablePartition ... 1102000400 <= *All Rel* 06/06 08:05:46 PASS .- OrphanedTableSubPartition ... 1102000400 <= *All Rel* 06/06 08:05:46 PASS .- MissingPartCol ... 1102000400 <= *All Rel* 06/06 08:05:46 PASS .- OrphanedSeg$ ... 1102000400 <= *All Rel* 06/06 08:05:46 FAIL HCKE-0023: Orphaned SEG$ Entry (Doc ID 1360934.1) ORPHAN SEG$: SegType=TYPE2 UNDO TS=2 RFILE/BLOCK=109/352 ORPHAN SEG$: SegType=TYPE2 UNDO TS=2 RFILE/BLOCK=109/304 .- OrphanedIndPartObj# ... 1102000400 <= *All Rel* 06/06 08:05:46 PASS .- DuplicateBlockUse ... 1102000400 <= *All Rel* 06/06 08:05:46 PASS .- FetUet ... 1102000400 <= *All Rel* 06/06 08:05:46 PASS .- Uet0Check ... 1102000400 <= *All Rel* 06/06 08:05:46 PASS .- SeglessUET ... 1102000400 <= *All Rel* 06/06 08:05:46 PASS .- BadInd$ ... 1102000400 <= *All Rel* 06/06 08:05:46 PASS .- BadTab$ ... 1102000400 <= *All Rel* 06/06 08:05:46 PASS .- BadIcolDepCnt ... 1102000400 <= *All Rel* 06/06 08:05:46 PASS .- ObjIndDobj ... 1102000400 <= *All Rel* 06/06 08:05:46 PASS .- TrgAfterUpgrade ... 1102000400 <= *All Rel* 06/06 08:05:46 PASS .- ObjType0 ... 1102000400 <= *All Rel* 06/06 08:05:47 PASS .- BadOwner ... 1102000400 <= *All Rel* 06/06 08:05:47 PASS .- StmtAuditOnCommit ... 1102000400 <= *All Rel* 06/06 08:05:47 PASS .- BadPublicObjects ... 1102000400 <= *All Rel* 06/06 08:05:47 PASS .- BadSegFreelist ... 1102000400 <= *All Rel* 06/06 08:05:47 PASS .- BadDepends ... 1102000400 <= *All Rel* 06/06 08:05:47 PASS .- CheckDual ... 1102000400 <= *All Rel* 06/06 08:05:48 PASS .- ObjectNames ... 1102000400 <= *All Rel* 06/06 08:05:48 PASS .- BadCboHiLo ... 1102000400 <= *All Rel* 06/06 08:05:49 PASS .- ChkIotTs ... 1102000400 <= *All Rel* 06/06 08:05:52 PASS .- NoSegmentIndex ... 1102000400 <= *All Rel* 06/06 08:05:52 PASS .- BadNextObject ... 1102000400 <= *All Rel* 06/06 08:05:53 PASS .- DroppedROTS ... 1102000400 <= *All Rel* 06/06 08:05:53 PASS .- FilBlkZero ... 1102000400 <= *All Rel* 06/06 08:05:53 PASS .- DbmsSchemaCopy ... 1102000400 <= *All Rel* 06/06 08:05:53 PASS .- OrphanedObjError ... 1102000400 > 1102000000 06/06 08:05:53 PASS .- ObjNotLob ... 1102000400 <= *All Rel* 06/06 08:05:53 PASS .- MaxControlfSeq ... 1102000400 <= *All Rel* 06/06 08:05:53 PASS .- SegNotInDeferredStg ... 1102000400 > 1102000000 06/06 08:05:55 PASS .- SystemNotRfile1 ... 1102000400 > 902000000 06/06 08:05:56 PASS .- DictOwnNonDefaultSYSTEM ... 1102000400 <= *All Rel* 06/06 08:05:56 PASS .- OrphanTrigger ... 1102000400 <= *All Rel* 06/06 08:05:56 PASS .- ObjNotTrigger ... 1102000400 <= *All Rel* 06/06 08:05:56 PASS --------------------------------------- 06-JUN-2019 08:05:56 Elapsed: 38 secs --------------------------------------- Found 19 potential problem(s) and 0 warning(s) Contact Oracle Support with the output and trace file to check if the above needs attention or not
我们可以看到数据字典确实有问题,比如ind$。针对这个问题有2种基本处理方式,可以参考官方的文档,分别时补充sys.objerror$的记录和删除记录(当然是针对不同的情况)。
我这里通过类似的方法处理后,可以顺利删除上述异常的一些对象(经客户确认数据可以丢弃,我们备份表结构后删除即可)。
整个恢复其实不复制,主要是前期无法远程,导致进展很慢,简单记录一下。
以上所述就是小编给大家介绍的《某省GA 30TB数据库恢复记录》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- SQL恢复master数据库方法 只有mdf文件的数据库如何恢复
- Oracle数据库逻辑备份与恢复
- 数据库故障恢复机制的前世今生
- Oracle数据库备份和恢复配置详解
- 怎么对MySQL数据库进行备份与恢复
- xtrabackup全量、增量备份恢复mysql数据库
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
实战Linux编程精髓
罗宾斯 / 中国电力出版社 / 2005-7 / 59.80元
编写应用软件,特别是那些比较重要的软件,毫无疑问要涉及到系统调用。在UNIX/Linux环境下编程更是如此。要想编写优秀的软件,就必须熟悉这些系统调用的方方面面。通过阅读这本书,你能够快速地掌握这些重要技术,以构建严谨的Linux软件。全书主要分为三大部分:第一部分讨论了基本的编程问题,包括Linux编程环境、基本的文件和进程管理与操作、内存操作,还介绍了一些基本的库接口。第二部分比较深入地讨论了......一起来看看 《实战Linux编程精髓》 这本书的介绍吧!