标签云
asm恢复 bbed bootstrap$ dul In Memory kcbzib_kcrsds_1 kccpb_sanity_check_2 kfed MySQL恢复 ORA-00312 ORA-00607 ORA-00704 ORA-01110 ORA-01555 ORA-01578 ORA-08103 ORA-600 2131 ORA-600 2662 ORA-600 2663 ORA-600 3020 ORA-600 4000 ORA-600 4137 ORA-600 4193 ORA-600 4194 ORA-600 16703 ORA-600 kcbzib_kcrsds_1 ORA-600 KCLCHKBLK_4 ORA-15042 ORA-15196 ORACLE 12C oracle dul ORACLE PATCH Oracle Recovery Tools oracle加密恢复 oracle勒索 oracle勒索恢复 oracle异常恢复 Oracle 恢复 ORACLE恢复 ORACLE数据库恢复 oracle 比特币 OSD-04016 YOUR FILES ARE ENCRYPTED 勒索恢复 比特币加密文章分类
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (102)
- 数据库 (1,671)
- DB2 (22)
- MySQL (73)
- Oracle (1,533)
- Data Guard (52)
- EXADATA (8)
- GoldenGate (21)
- ORA-xxxxx (159)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (14)
- ORACLE 21C (3)
- Oracle 23ai (7)
- Oracle ASM (65)
- Oracle Bug (8)
- Oracle RAC (52)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (28)
- Oracle备份恢复 (560)
- Oracle安装升级 (92)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (78)
- PostgreSQL (18)
- PostgreSQL恢复 (6)
- SQL Server (27)
- SQL Server恢复 (8)
- TimesTen (7)
- 达梦数据库 (2)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (37)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (20)
-
最近发表
- Kylin Linux 安装19c
- ORA-600 krse_arc_complete.4
- Oracle 19c 202410补丁(RUs+OJVM)
- ntfs MFT损坏(ntfs文件系统故障)导致oracle异常恢复
- .mkp扩展名oracle数据文件加密恢复
- 清空redo,导致ORA-27048: skgfifi: file header information is invalid
- A_H_README_TO_RECOVER勒索恢复
- 通过alert日志分析客户自行对一个数据库恢复的来龙去脉和点评
- ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的SERVICE_NAME
- ORA-01092 ORA-00604 ORA-01558故障处理
- ORA-65088: database open should be retried
- Oracle 19c异常恢复—ORA-01209/ORA-65088
- ORA-600 16703故障再现
- 数据库启动报ORA-27102 OSD-00026 O/S-Error: (OS 1455)
- .[metro777@cock.li].Elbie勒索病毒加密数据库恢复
- 应用连接错误,初始化mysql数据库恢复
- RAC默认服务配置优先节点
- Oracle 19c RAC 替换私网操作
- 监听报TNS-12541 TNS-12560 TNS-00511错误
- drop tablespace xxx including contents恢复
标签归档:ORA-00316
ORA-00316 ORA-00312故障处理
数据库启动报ORA-00316,ORA-00312,无法正常启动
通过Oracle数据库异常恢复检查脚本(Oracle Database Recovery Check)分析,确认是当前redo损坏
对于这种情况,只能是屏蔽一致性,强制拉库,结果在拉库过程中报ORA-600 2662错误
这个错误相对比较简单,修改下相关scn即可,数据库open成功
SQL> startup nomount pfile='/tmp/pfile' ORACLE instance started. Total System Global Area 3.8482E+10 bytes Fixed Size 2261368 bytes Variable Size 8187285128 bytes Database Buffers 3.0199E+10 bytes Redo Buffers 93593600 bytes SQL> CREATE CONTROLFILE REUSE DATABASE "xifenfei" NORESETLOGS NOARCHIVELOG 2 MAXLOGFILES 50 3 MAXLOGMEMBERS 5 4 MAXDATAFILES 1000 5 MAXINSTANCES 8 6 MAXLOGHISTORY 2920 7 LOGFILE 8 group 1 '/u01/oracle/app/oradata/xifenfei/redo01.log' size 500M, 9 group 2 '/u01/oracle/app/oradata/xifenfei/redo02.log' size 500M, 10 group 6 '/u01/oracle/app/oradata/xifenfei/redo06.log' size 500M, 11 group 4 '/u01/oracle/app/oradata/xifenfei/redo04.log' size 500M, 12 group 5 '/u01/oracle/app/oradata/xifenfei/redo05.log' size 500M, 13 group 3 '/u01/oracle/app/oradata/xifenfei/redo03.log' size 500M 14 DATAFILE 15 '/u01/oracle/app/oradata/xifenfei/system01.dbf', 16 '/u01/oracle/app/oradata/xifenfei/sysaux01.dbf', 17 '/u01/oracle/app/oradata/xifenfei/undotbs01.dbf', 18 '/u01/oracle/app/oradata/xifenfei/users01.dbf', ……………… 49 '/u01/oracle/app/oradata/xifenfei/XIFENFEI.dbf' 50 CHARACTER SET ZHS16GBK ; Control file created. SQL> recover database; ORA-10877: error signaled in parallel recovery slave SQL> recover database until cancel; ORA-00279: change 2290050101 generated at 09/30/2022 23:18:22 needed for thread 1 ORA-00289: suggestion : /u02/oracle/arch/1_2_1116803861.dbf ORA-00280: change 2290050101 for thread 1 is in sequence #2 Specify log: {<RET>=suggested | filename | AUTO | CANCEL} cancel ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below ORA-01194: file 1 needs more recovery to be consistent ORA-01110: data file 1: '/u01/oracle/app/oradata/xifenfei/system01.dbf' ORA-01112: media recovery not started SQL> alter database open resetlogs; Database altered.
检查数据库字典一致性
SQL> @1 HCheck Version 07MAY18 on 01-OCT-2022 01:07:48 ---------------------------------------------- Catalog Version 11.2.0.4.0 (1102000400) db_name: XIFENFEI Catalog Fixed Procedure Name Version Vs Release Timestamp Result ------------------------------ ... ---------- -- ---------- -------------- ------ .- LobNotInObj ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS .- MissingOIDOnObjCol ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS .- SourceNotInObj ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS .- OversizedFiles ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS .- PoorDefaultStorage ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS .- PoorStorage ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS .- TabPartCountMismatch ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS .- OrphanedTabComPart ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS .- MissingSum$ ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS .- MissingDir$ ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS .- DuplicateDataobj ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS .- ObjSynMissing ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- ObjSeqMissing ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- OrphanedUndo ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- OrphanedIndex ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- OrphanedIndexPartition ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- OrphanedIndexSubPartition ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- OrphanedTable ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- OrphanedTablePartition ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- OrphanedTableSubPartition ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- MissingPartCol ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- OrphanedSeg$ ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- OrphanedIndPartObj# ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- DuplicateBlockUse ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- FetUet ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- Uet0Check ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- SeglessUET ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- BadInd$ ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- BadTab$ ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- BadIcolDepCnt ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- ObjIndDobj ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- TrgAfterUpgrade ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- ObjType0 ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- BadOwner ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- StmtAuditOnCommit ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- BadPublicObjects ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- BadSegFreelist ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- BadDepends ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- CheckDual ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS .- ObjectNames ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS .- BadCboHiLo ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS .- ChkIotTs ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS .- NoSegmentIndex ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS .- BadNextObject ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS .- DroppedROTS ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS .- FilBlkZero ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS .- DbmsSchemaCopy ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS .- OrphanedObjError ... 1102000400 > 1102000000 10/01 01:07:50 PASS .- ObjNotLob ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS .- MaxControlfSeq ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS .- SegNotInDeferredStg ... 1102000400 > 1102000000 10/01 01:07:50 PASS .- SystemNotRfile1 ... 1102000400 > 902000000 10/01 01:07:50 PASS .- DictOwnNonDefaultSYSTEM ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS .- OrphanTrigger ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS .- ObjNotTrigger ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS --------------------------------------- 01-OCT-2022 01:07:50 Elapsed: 2 secs --------------------------------------- Found 0 potential problem(s) and 0 warning(s) PL/SQL procedure successfully completed. Statement processed.
数据库字典本身没有大问题,但是为了排除潜在风险,建议逻辑迁移到新库
Oracle安全警示录:加错裸设备导致redo异常
最近一个朋友数据库异常了,咨询我,通过分析日志发现对方人员根本不懂aix中的裸设备和Oracle数据库然后就直接使用OEM创建新表空间,导致了数据库crash而且不能正常启动
Thread 1 advanced to log sequence 4395 Current log# 1 seq# 4395 mem# 0: /dev/rorcl_redo01 Thu Jun 12 19:28:38 2014 /* OracleOEM */ CREATE SMALLFILE TABLESPACE "XIFENFEI" LOGGING DATAFILE '/dev/orcl_redo04' SIZE 2000M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ORA-1119 signalled during: /* OracleOEM */ CREATE SMALLFILE TABLESPACE "XIFENFEI" LOGGING DATAFILE '/dev/orcl_redo04' SIZE 2000M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ... Thu Jun 12 19:36:23 2014 /* OracleOEM */ CREATE SMALLFILE TABLESPACE "XIFENFEI" LOGGING DATAFILE '/dev/orcl_redo03' SIZE 2000M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO Thu Jun 12 19:43:56 2014 ORA-604 signalled during: /* OracleOEM */ CREATE SMALLFILE TABLESPACE "XIFENFEI" LOGGING DATAFILE '/dev/orcl_redo03' SIZE 2000M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ... Thu Jun 12 19:48:11 2014 /* OracleOEM */ CREATE SMALLFILE TABLESPACE "XIFENFEI" LOGGING DATAFILE '/dev/rorcl_redo03' SIZE 2000M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO Thu Jun 12 19:48:11 2014 ORA-1537 signalled during: /* OracleOEM */ CREATE SMALLFILE TABLESPACE "XIFENFEI" LOGGING DATAFILE '/dev/rorcl_redo03' SIZE 2000M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ... Thu Jun 12 19:48:20 2014 /* OracleOEM */ CREATE SMALLFILE TABLESPACE "XIFENFEI" LOGGING DATAFILE '/dev/rorcl_redo04' SIZE 2000M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ORA-1537 signalled during: /* OracleOEM */ CREATE SMALLFILE TABLESPACE "XIFENFEI" LOGGING DATAFILE '/dev/rorcl_redo04' SIZE 2000M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ... Fri Jun 13 00:50:37 2014 Trace dumping is performing id=[cdmp_20140613005032] Fri Jun 13 00:50:40 2014 Reconfiguration started (old inc 4, new inc 6) List of nodes: 0 Global Resource Directory frozen * dead instance detected - domain 0 invalid = TRUE ………… Fri Jun 13 00:50:40 2014 Beginning instance recovery of 1 threads Reconfiguration complete Fri Jun 13 00:50:41 2014 parallel recovery started with 7 processes Fri Jun 13 00:50:43 2014 Started redo scan Fri Jun 13 00:50:43 2014 Errors in file /oracle/admin/orcl/bdump/orcl1_smon_213438.trc: ORA-00316: log 3 of thread 2, type 0 in header is not log file ORA-00312: online log 3 thread 2: '/dev/rorcl_redo03' Fri Jun 13 00:50:43 2014 Errors in file /oracle/admin/orcl/bdump/orcl1_smon_213438.trc: ORA-00316: log 3 of thread 2, type 0 in header is not log file ORA-00312: online log 3 thread 2: '/dev/rorcl_redo03' SMON: terminating instance due to error 316 Fri Jun 13 00:50:43 2014 Errors in file /oracle/admin/orcl/bdump/orcl1_lgwr_335980.trc: ORA-00316: log of thread , type in header is not log file Instance terminated by SMON, pid = 213438
从这里可以看出来,在使用OEM创建表空间的过程中犯了两个错误
1. 未分清楚aix的块设备和字符设备的命名方式
2. 对于2节点正在使用的current redo作为不适用设备当作未使用设备来创建新表空间
由于创建表空间的使用了错误的文件和错误的设备,导致2节点的当前redo(/dev/rorcl_redo03)被损坏(因为先读redo header,所以数据库中优先反馈出来的是ORA-00316: log of thread , type in header is not log file).从而导致数据库2节点先crash,然后节点1进行实例恢复,但是由于2节点的current redo已经损坏,导致实例恢复无法完成,从而两个节点都crash.因为是rac的一个节点的当前redo损坏,数据库无法正常.
如果有备份该数据库可以使用备份还原进行恢复,如果没有备份只能使用强制拉库的方法抢救数据.希望不要发生一个大的数据丢失悲剧
介绍这个案例希望给大家以警示:对数据库的裸设备操作请谨慎,不清楚切不可乱操作,否则后果严重
ORACLE REDO各种异常恢复
redo是oracle数据库比较核心文件,当redo异常之后,数据库无法正常启动,而且有丢失数据的风险,强烈建议条件允许redo多路镜像.redo文件异常的故障可以说是千奇百怪,但是总体上可以分为几类:
数据库归档/非归档模式下inactive redo异常
ORA-00316 ORA-00327
SQL> startup mount ORACLE instance started. Total System Global Area 260046848 bytes Fixed Size 1266896 bytes Variable Size 83888944 bytes Database Buffers 167772160 bytes Redo Buffers 7118848 bytes Database mounted. SQL> alter database open; alter database open * ERROR at line 1: ORA-00316: log 2 of thread 1, type in header is not log file ORA-00312: online log 2 thread 1: '/u01/oracle/oradata/XFF/redo02.log' SQL> col member for a40 SQL> set lines 120 SQL> SELECT thread#, 2 a.sequence#, 3 a.group#, 4 TO_CHAR (first_change#, '9999999999999999') "SCN", 5 a.status, 6 MEMBER 7 FROM v$log a, v$logfile b 8 WHERE a.group# = B.GROUP# 9 ORDER BY a.sequence# DESC; THREAD# SEQUENCE# GROUP# SCN STATUS MEMBER ---------- ---------- ---------- ----------------- ---------------- ----------------------------------- 1 15 3 665697 CURRENT /u01/oracle/oradata/XFF/redo03.log 1 14 2 645619 INACTIVE /u01/oracle/oradata/XFF/redo02.log 1 13 1 625540 INACTIVE /u01/oracle/oradata/XFF/redo01.log SQL> ALTER DATABASE CLEAR LOGFILE GROUP 2; Database altered. SQL> alter database open; alter database open * ERROR at line 1: ORA-00327: log 2 of thread 1, physical size less than needed ORA-00312: online log 2 thread 1: '/u01/oracle/oradata/XFF/redo02.log' SQL> alter database drop logfile group 2; Database altered. SQL> alter database open; Database altered. SQL> alter database add logfile group 2 ('/u01/oracle/oradata/XFF/redo02.log') size 50M reuse; Database altered.
正常关闭数据库current redo异常
ORA-00316 ORA-01623
SQL> alter database open; alter database open * ERROR at line 1: ORA-00316: log 1 of thread 1, type in header is not log file ORA-00312: online log 1 thread 1: '/u01/oracle/oradata/XFF/redo01.log' SQL> SELECT thread#, 2 a.sequence#, 3 a.group#, 4 TO_CHAR (first_change#, '9999999999999999') "SCN", 5 a.status, 6 MEMBER 7 FROM v$log a, v$logfile b 8 WHERE a.group# = B.GROUP# 9 ORDER BY a.sequence# DESC; THREAD# SEQUENCE# GROUP# SCN STATUS MEMBER ---------- ---------- ---------- ----------------- ---------------- ---------------------------------- 1 16 1 685918 CURRENT /u01/oracle/oradata/XFF/redo01.log 1 15 3 665697 INACTIVE /u01/oracle/oradata/XFF/redo03.log 1 0 2 0 UNUSED /u01/oracle/oradata/XFF/redo02.log SQL> ALTER DATABASE CLEAR LOGFILE GROUP 1; ALTER DATABASE CLEAR LOGFILE GROUP 1 * ERROR at line 1: ORA-00316: log 1 of thread 1, type 0 in header is not log file ORA-00312: online log 1 thread 1: '/u01/oracle/oradata/XFF/redo01.log' SQL> ALTER DATABASE drop logfile group 1; ALTER DATABASE drop logfile group 1 * ERROR at line 1: ORA-01623: log 1 is current log for instance XFF (thread 1) - cannot drop ORA-00312: online log 1 thread 1: '/u01/oracle/oradata/XFF/redo01.log' SQL> recover database until cancel; Media recovery complete. SQL> alter database open resetlogs; Database altered.
数据库异常关闭current/active redo异常
ORA-00316 ORA-01624 ORA-01194
SQL> alter database open; alter database open * ERROR at line 1: ORA-00316: log 1 of thread 1, type 0 in header is not log file ORA-00312: online log 1 thread 1: '/u01/oracle/oradata/XFF/redo01.log' SQL> SELECT thread#, 2 a.sequence#, 3 a.group#, 4 TO_CHAR (first_change#, '9999999999999999') "SCN", 5 a.status, 6 MEMBER 7 FROM v$log a, v$logfile b 8 WHERE a.group# = B.GROUP# 9 ORDER BY a.sequence# DESC; THREAD# SEQUENCE# GROUP# SCN STATUS MEMBER ---------- ---------- ---------- ----------------- ---------------- ----------------------------------- 1 8 2 686310 CURRENT /u01/oracle/oradata/XFF/redo02.log 1 7 1 686294 ACTIVE /u01/oracle/oradata/XFF/redo01.log 1 6 3 686289 INACTIVE /u01/oracle/oradata/XFF/redo03.log SQL> ALTER DATABASE CLEAR LOGFILE GROUP 1; ALTER DATABASE CLEAR LOGFILE GROUP 1 * ERROR at line 1: ORA-01624: log 1 needed for crash recovery of instance XFF (thread 1) ORA-00312: online log 1 thread 1: '/u01/oracle/oradata/XFF/redo01.log' SQL> ALTER DATABASE drop logfile group 1; ALTER DATABASE drop logfile group 1 * ERROR at line 1: ORA-01624: log 1 needed for crash recovery of instance XFF (thread 1) ORA-00312: online log 1 thread 1: '/u01/oracle/oradata/XFF/redo01.log' SQL> recover database until cancel ORA-00279: change 686294 generated at 04/20/2013 01:37:16 needed for thread 1 ORA-00289: suggestion : /u01/oracle/oracle/product/10.2.0/db_1/dbs/arch1_7_813202529.dbf ORA-00280: change 686294 for thread 1 is in sequence #7 Specify log: {<RET>=suggested | filename | AUTO | CANCEL} /u01/oracle/oradata/XFF/redo01.log ORA-00308: cannot open archived log '/u01/oracle/oradata/XFF/redo01.log' ORA-27047: unable to read the header block of file Additional information: 2 Specify log: {<RET>=suggested | filename | AUTO | CANCEL} cancel ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below ORA-01194: file 1 needs more recovery to be consistent ORA-01110: data file 1: '/u01/oracle/oradata/XFF/system01.dbf' ORA-01112: media recovery not started SQL> alter database open resetlogs; alter database open resetlogs * ERROR at line 1: ORA-01194: file 1 needs more recovery to be consistent ORA-01110: data file 1: '/u01/oracle/oradata/XFF/system01.dbf' SQL> alter system set "_allow_resetlogs_corruption"=true scope=spfile; System altered. SQL> shutdown immediate; ORA-01109: database not open Database dismounted. ORACLE instance shut down. SQL> startup mount; ORACLE instance started. Total System Global Area 260046848 bytes Fixed Size 1266896 bytes Variable Size 83888944 bytes Database Buffers 167772160 bytes Redo Buffers 7118848 bytes Database mounted. SQL> recover database until cancel ORA-00279: change 686294 generated at 04/20/2013 01:37:16 needed for thread 1 ORA-00289: suggestion : /u01/oracle/oracle/product/10.2.0/db_1/dbs/arch1_7_813202529.dbf ORA-00280: change 686294 for thread 1 is in sequence #7 Specify log: {<RET>=suggested | filename | AUTO | CANCEL} cancel ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below ORA-01194: file 1 needs more recovery to be consistent ORA-01110: data file 1: '/u01/oracle/oradata/XFF/system01.dbf' ORA-01112: media recovery not started SQL> alter database open resetlogs; Database altered.
在这样的情况下,数据库异常关闭,current/active redo异常,通过使用隐含参数可能可以侥幸的恢复数据库,但是也可能导致数据丢失.这里因为是模拟情况,无业务所以在很多较为繁忙的业务系统中,使用隐含参数resetlogs过程中可能还会遇到如下很多常见的错误,进一步增加了恢复难度
current/active redo异常后附带其他错误
ORA-600[2662]
Wed Dec 07 13:02:49 2011 SMON: enabling cache recovery Errors in file d:\app\administrator\diag\rdbms\hzyl\hzyl\trace\hzyl_ora_3388.trc (incident=216664): ORA-00600: 内部错误代码, 参数: [2662], [2], [1153862134], [2], [1153864845], [12582921], [], [] Incident details in: d:\app\administrator\diag\rdbms\hzyl\hzyl\incident\incdir_216664\hzyl_ora_3388_i216664.trc Errors in file d:\app\administrator\diag\rdbms\hzyl\hzyl\trace\hzyl_ora_3388.trc: ORA-00600: 内部错误代码, 参数: [2662], [2], [1153862134], [2], [1153864845], [12582921], [], [] Error 600 happened during db open, shutting down database USER (ospid: 3388): terminating the instance due to error 600
ORA-00600[4000]
Thu Feb 28 19:29:10 2013 SMON: enabling cache recovery Thu Feb 28 19:29:11 2013 Errors in file /u1/PROD/prodora/db/tech_st/10.2.0/admin/PROD_oracle/udump/prod_ora_20989.trc: ORA-00600: internal error code, arguments: [4000], [50], [], [], [], [], [], [] Thu Feb 28 19:29:13 2013 Incremental checkpoint up to RBA [0x1.3.0], current log tail at RBA [0x1.3.0] Thu Feb 28 19:29:13 2013 Errors in file /u1/PROD/prodora/db/tech_st/10.2.0/admin/PROD_oracle/udump/prod_ora_20989.trc: ORA-00704: bootstrap process failure ORA-00704: bootstrap process failure ORA-00600: internal error code, arguments: [4000], [50], [], [], [], [], [], []
ORA-00704 ORA-00604 ORA-01555
Fri May 4 21:04:21 2012 select ctime, mtime, stime from obj$ where obj# = :1 Fri May 4 21:04:21 2012 Errors in file /oracle/admin/standdb/udump/perfdb_ora_1286288.trc: ORA-00704: bootstrap process failure ORA-00704: bootstrap process failure ORA-00604: error occurred at recursive SQL level 1 ORA-01555: snapshot too old: rollback segment number 40 with name "_SYSSMU40$" too small Error 704 happened during db open, shutting down database USER: terminating instance due to error 704 Instance terminated by USER, pid = 1286288 ORA-1092 signalled during: alter database open resetlogs...
current/active redo异常还可能报如下错误
redo文件损坏报错
Started redo scan Errors in file d:\app\administrator\diag\rdbms\hzyl\hzyl\trace\hzyl_ora_2960.trc (incident=214262): ORA-00353: 日志损坏接近块 12014 更改 9743799889 时间 12/05/2011 09:21:11 ORA-00312: 联机日志 3 线程 1: 'R:\ORADATA\HZYL\REDO03.LOG' Incident details in: d:\app\administrator\diag\rdbms\hzyl\hzyl\incident\incdir_214262\hzyl_ora_2960_i214262.trc Aborting crash recovery due to error 368 Errors in file d:\app\administrator\diag\rdbms\hzyl\hzyl\trace\hzyl_ora_2960.trc: ORA-00368: 重做日志块中的校验和错误 ORA-00353: 日志损坏接近块 12014 更改 9743799889 时间 12/05/2011 09:21:11 ORA-00312: 联机日志 3 线程 1: 'R:\ORADATA\HZYL\REDO03.LOG' ORA-368 signalled during: ALTER DATABASE OPEN...
redo文件被其他实例占用报错
Wed May 16 17:03:11 2012 Started redo scan Wed May 16 17:03:11 2012 Errors in file /oracle/admin/odsdb/udump/odsdb1_ora_2040024.trc: ORA-00305: log 14 of thread 1 inconsistent; belongs to another database ORA-00312: online log 14 thread 1: '/dev/rods_redo1_2_2' ORA-00305: log 14 of thread 1 inconsistent; belongs to another database ORA-00312: online log 14 thread 1: '/dev/rods_redo1_2_1' ORA-305 signalled during: ALTER DATABASE OPEN...
存储整体异常
Mon Oct 17 09:35:09 2011 Errors in file /oracle/app/admin/orcl/bdump/orcl2_lgwr_348814.trc: ORA-00340: IO error processing online log 4 of thread 2 ORA-00345: redo log write error block 6732 count 2 ORA-00312: online log 4 thread 2: '/dev/rredo21' ORA-27063: number of bytes read/written is incorrect IBM AIX RISC System/6000 Error: 6: No such device or address Additional information: -1 Additional information: 1024 Mon Oct 17 09:35:09 2011 LGWR: terminating instance due to error 340
存储IO异常
Fri Feb 21 08:44:42 2014 Thread 1 advanced to log sequence 591 (LGWR switch) Current log# 1 seq# 591 mem# 0: J:\ORADATA\ORCL\REDO01.LOG Fri Feb 21 15:31:20 2014 Errors in file c:\oracle\product\10.2.0\admin\orcl\bdump\orcl_lgwr_10312.trc: ORA-00316: log 1 of thread 1, type 286 in header is not log file ORA-00312: online log 1 thread 1: 'J:\ORADATA\ORCL\REDO01.LOG'
使用_disable_logging参数
Sat May 14 23:16:49 2005 Errors in file d:\oracle\admin\rman\bdump\rman_arc0_736.trc: ORA-16038: log 3 sequence# 72 cannot be archived ORA-00354: corrupt redo log block header ORA-00312: online log 3 thread 1: 'D:\ORACLE\ORADATA\RMAN\REDO03.LOG'
如果你在使用这些思路进行恢复遇到突发情况不能自行解决,请联系我们,将为您提供专业数据库技术支持
Phone:17813235971 Q Q:107644445 E-Mail:dba@xifenfei.com
姊妹篇
undo异常总结和恢复思路
ORACLE丢失各种文件导致数据库不能OPEN恢复
发表在 Oracle备份恢复
标签为 ORA-00316, ORA-00327, ORA-01194, ORA-01623, ORA-01624, ORA-600 2662, ORA-600 4000, ORACLE恢复, ORACLE数据库恢复, redo异常
一条评论