联系:手机/微信(+86 17813235971) QQ(107644445)
标题:Oracle 19C 报ORA-704 ORA-01555故障处理
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
异常断电导致数据库无法启动,尝试对数据文件进行recover操作,报ORA-00283 ORA-00742 ORA-00312错误,由于redo写丢失无法正常应用
D:\check_db>sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on 星期日 7月 30 07:49:19 2023 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. 连接到: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0 SQL> recover datafile 1; ORA-00283: 恢复会话因错误而取消 ORA-00742: 日志读取在线程 1 序列 9274 块 18057 中检测到写入丢失情况 ORA-00312: 联机日志 1 线程 1: 'D:\APP\ADMINISTRATOR\ORADATA\XFF\REDO01.LOG'
屏蔽数据一致性,尝试强制打开库,报ORA-00604,ORA-00704,ORA-01555错误
SQL> alter database open resetlogs; alter database open resetlogs * 第 1 行出现错误: ORA-00603: ORACLE server session terminated by fatal error ORA-01092: ORACLE instance terminated. Disconnection forced 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 9 with name "_SYSSMU9_4165470211$" too small 进程 ID: 4036 会话 ID: 2277 序列号: 40707
alert日志对应错误
2023-07-30T06:54:43.457383+08:00 .... (PID:5836): Clearing online redo logfile 1 complete .... (PID:5836): Clearing online redo logfile 2 complete .... (PID:5836): Clearing online redo logfile 3 complete Resetting resetlogs activation ID 3572089731 (0xd4e9c383) Online log D:\APP\ADMINISTRATOR\ORADATA\XFF\REDO01.LOG: Thread 1 Group 1 was previously cleared Online log D:\APP\ADMINISTRATOR\ORADATA\XFF\REDO02.LOG: Thread 1 Group 2 was previously cleared Online log D:\APP\ADMINISTRATOR\ORADATA\XFF\REDO03.LOG: Thread 1 Group 3 was previously cleared 2023-07-30T06:54:43.863676+08:00 Setting recovery target incarnation to 2 2023-07-30T06:54:44.816771+08:00 Ping without log force is disabled: instance mounted in exclusive mode. Endian type of dictionary set to little 2023-07-30T06:54:44.957395+08:00 Assigning activation ID 3664275149 (0xda6866cd) 2023-07-30T06:54:44.957395+08:00 TT00 (PID:4640): Gap Manager starting 2023-07-30T06:54:45.004305+08:00 Redo log for group 1, sequence 1 is not located on DAX storage 2023-07-30T06:54:46.176153+08:00 Thread 1 opened at log sequence 1 Current log# 1 seq# 1 mem# 0: D:\APP\ADMINISTRATOR\ORADATA\XFF\REDO01.LOG Successful open of redo thread 1 2023-07-30T06:54:46.191771+08:00 MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set stopping change tracking 2023-07-30T06:54:46.223036+08:00 TT03 (PID:1816): Sleep 5 seconds and then try to clear SRLs in 2 time(s) 2023-07-30T06:54:46.332398+08:00 ORA-01555 caused by SQL statement below (SQL ID: 4krwuz0ctqxdt, SCN: 0x0000000017b852a7 ): 2023-07-30T06:54:46.332398+08:00 select ctime, mtime, stime from obj$ where obj# = :1 2023-07-30T06:54:46.332398+08:00 Errors in file D:\APP\ADMINISTRATOR\diag\rdbms\xff\xff\trace\xff_ora_5836.trc: ORA-00704: 引导程序进程失败 ORA-00604: 递归 SQL 级别 1 出现错误 ORA-01555: 快照过旧: 回退段号 9 (名称为 "_SYSSMU9_4165470211$") 过小 2023-07-30T06:54:46.332398+08:00 Errors in file D:\APP\ADMINISTRATOR\diag\rdbms\xff\xff\trace\xff_ora_5836.trc: ORA-00704: 引导程序进程失败 ORA-00704: 引导程序进程失败 ORA-00604: 递归 SQL 级别 1 出现错误 ORA-01555: 快照过旧: 回退段号 9 (名称为 "_SYSSMU9_4165470211$") 过小 2023-07-30T06:54:46.348028+08:00 Errors in file D:\APP\ADMINISTRATOR\diag\rdbms\xff\xff\trace\xff_ora_5836.trc: ORA-00704: 引导程序进程失败 ORA-00704: 引导程序进程失败 ORA-00604: 递归 SQL 级别 1 出现错误 ORA-01555: 快照过旧: 回退段号 9 (名称为 "_SYSSMU9_4165470211$") 过小 Error 704 happened during db open, shutting down database Errors in file D:\APP\ADMINISTRATOR\diag\rdbms\xff\xff\trace\xff_ora_5836.trc (incident=474502): ORA-00603: ORACLE 服务器会话因致命错误而终止 ORA-01092: ORACLE 实例终止。强制断开连接 ORA-00704: 引导程序进程失败 ORA-00704: 引导程序进程失败 ORA-00604: 递归 SQL 级别 1 出现错误 ORA-01555: 快照过旧: 回退段号 9 (名称为 "_SYSSMU9_4165470211$") 过小 Incident details in: D:\APP\ADMINISTRATOR\diag\rdbms\xff\xff\incident\incdir_474502\xff_ora_5836_i474502.trc 2023-07-30T06:54:47.785549+08:00 opiodr aborting process unknown ospid (5836) as a result of ORA-603 2023-07-30T06:54:47.816792+08:00 ORA-603 : opitsk aborting process License high water mark = 6 USER (ospid: (prelim)): terminating the instance due to ORA error
这类错误比较常见,参考以前类似恢复:
在数据库open过程中常遇到ORA-01555汇总
数据库open过程遭遇ORA-1555对应sql语句补充
Oracle Recovery Tools恢复—ORA-00704 ORA-01555故障
使用_allow_resetlogs_corruption导致ORA-00704/ORA-01555故障
对于本次故障,通过Oracle Recovery Tools工具快速处理
open数据库成功
SQL> alter database open; 数据库已更改。 SQL> SQL> SQL> select status,count(1) from v$datafile group by status; STATUS COUNT(1) -------------- ---------- SYSTEM 1 ONLINE 61