0
点赞
收藏
分享

微信扫一扫

Oracle 19c 意外断电,启动报错ORA-00312

搬砖的小木匠 2024-09-23 阅读 1

Oracle Database 19c 意外断电,启动报错ORA-00312

尝试正常通过 alter database clear logfile 命令修复丢失的重做日志文件,失败;

clear命令无法对ACTIVE和CURRENT状态的redo日志进行清除;

SQL>  select group#,thread#,sequence#,members,archived,status from v$log;


    GROUP#    THREAD#  SEQUENCE#    MEMBERS ARC STATUS

---------- ---------- ---------- ---------- --- ----------------

         1          1          4          1 NO  CURRENT

         2          1          2          1 NO  INACTIVE

         3          1          3          1 NO  INACTIVE

且数据库非归档;

SQL> archive log list;

数据库日志模式             非存档模式

自动存档             禁用

存档终点            /opt/oracle/product/19c/dbhome_1/dbs/arch

最早的联机日志序列     2

当前日志序列           4

SQL>

ALTER DATABASE   MOUNT

2024-09-23T12:02:51.757655+08:00

Using default pga_aggregate_limit of 16112 MB

2024-09-23T12:02:53.352811+08:00

.... (PID:9837): Redo network throttle feature is disabled at mount time

2024-09-23T12:02:53.360557+08:00

Successful mount of redo thread 1, with mount id 2951532777

2024-09-23T12:02:53.361013+08:00

Database mounted in Exclusive Mode

Lost write protection disabled

.... (PID:9837): Using STANDBY_ARCHIVE_DEST parameter default value as /opt/oracle/product/19c/dbhome_1/dbs/arch [krsd.c:18141]

Completed: ALTER DATABASE   MOUNT

2024-09-23T12:03:04.382387+08:00

alter database clear unarchived logfile '/opt/oracle/oradata/ORCLCDB/redo01.log'

ORA-1624 signalled during: alter database clear unarchived logfile '/opt/oracle/oradata/ORCLCDB/redo01.log'...

2024-09-23T12:03:04.424262+08:00

Errors in file /opt/oracle/diag/rdbms/orclcdb/ORCLCDB/trace/ORCLCDB_mz00_9861.trc:

ORA-00312: online log 1 thread 1: '/opt/oracle/oradata/ORCLCDB/redo01.log'

2024-09-23T12:03:04.550360+08:00

Errors in file /opt/oracle/diag/rdbms/orclcdb/ORCLCDB/trace/ORCLCDB_mz00_9861.trc:

ORA-00312: online log 2 thread 1: '/opt/oracle/oradata/ORCLCDB/redo02.log'

2024-09-23T12:03:14.511680+08:00

alter database clear logfile '/opt/oracle/oradata/ORCLCDB/redo01.log'

ORA-1624 signalled during: alter database clear logfile '/opt/oracle/oradata/ORCLCDB/redo01.log'...

2024-09-23T12:03:47.030949+08:00

alter database clear unarchived logfile '/opt/oracle/oradata/ORCLCDB/redo02.log'

ORA-1624 signalled during: alter database clear unarchived logfile '/opt/oracle/oradata/ORCLCDB/redo02.log'...

2024-09-23T12:04:09.827646+08:00

alter database open

2024-09-23T12:04:09.863577+08:00

Ping without log force is disabled:

alter database open resetlogs失败;

SQL> select open_mode from v$database;

OPEN_MODE
--------------------
MOUNTED

SQL>
SQL>
SQL> recover database until cancel;
ORA-00279: 更改 18168502601151 (在 09/16/2024 16:25:04 生成) 对于线程 1
是必需的
ORA-00289: 建议: /opt/oracle/product/19c/dbhome_1/dbs/arch1_3370_1168520910.dbf
ORA-00280: 更改 18168502601151 (用于线程 1) 在序列 #3370 中


指定日志: {<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: '/opt/oracle/oradata/ORCLCDB/system01.dbf'


ORA-01112: 未启动介质恢复


SQL>  alter database open;
 alter database open
*
第 1 行出现错误:
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项


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-00600: internal error code, arguments: [kcbzib_kcrsds_1], [], [], [], [],
[], [], [], [], [], [], []
进程 ID: 13580
会话 ID: 738 序列号: 34669


SQL>  select open_mode from v$database;
ERROR:
ORA-03114: 未连接到 ORACLE

重建undo表空间,数据库正常启动:

ORA-00600: internal error code, arguments: [4194], [64], [16], [], [], [], [], [], [], [], [], []

vim pfile0923.ora

undo_management=manual
event='10513 trace name context forever, level 2'
event="21307096 trace name context forever, level 3"
_allow_resetlogs_corruption=TRUE
_allow_error_simulation=TRUE

SQL> startup  restrict pfile='/home/oracle/pfile0923.ora';
ORACLE 例程已经启动。

Total System Global Area 2.5367E+10 bytes
Fixed Size                 16228104 bytes
Variable Size            6241124352 bytes
Database Buffers         1.9059E+10 bytes
Redo Buffers               50880512 bytes
数据库装载完毕。
数据库已经打开。
SQL>  select tablespace_name,status,segment_name from dba_rollback_segs where status !='OFFLINE';

TABLESPACE_NAME                STATUS           SEGMENT_NAME
------------------------------ ---------------- ------------------------------
SYSTEM                         ONLINE           SYSTEM

SQL> create undo tablespace undotbs2 datafile '/opt/oracle/oradata/ORCLCDB/undotbs02.dbf' size 2G;

表空间已创建。

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area 2.5367E+10 bytes
Fixed Size                 16228104 bytes
Variable Size            6241124352 bytes
Database Buffers         1.9059E+10 bytes
Redo Buffers               50880512 bytes
数据库装载完毕。
SQL> alter system set undo_tablespace=undotbs2 scope=spfile;

系统已更改。
SQL> shutdown immediate;
ORA-01109: 数据库未打开


已经卸载数据库。
ORACLE 例程已经关闭。


SQL> SQL> SQL>
SQL>
SQL>
SQL> startup;
ORACLE 例程已经启动。

Total System Global Area 2.5367E+10 bytes
Fixed Size                 16228104 bytes
Variable Size            6241124352 bytes
Database Buffers         1.9059E+10 bytes
Redo Buffers               50880512 bytes
数据库装载完毕。
数据库已经打开。
SQL> select tablespace_name,status,segment_name from dba_rollback_segs where status !='OFFLINE';

TABLESPACE_NAME                STATUS           SEGMENT_NAME
------------------------------ ---------------- ------------------------------
SYSTEM                         ONLINE           SYSTEM
UNDOTBS2                       ONLINE           _SYSSMU25_3192300759$
UNDOTBS2                       ONLINE           _SYSSMU26_206110434$
UNDOTBS2                       ONLINE           _SYSSMU27_2898383869$
UNDOTBS2                       ONLINE           _SYSSMU28_3571771400$
UNDOTBS2                       ONLINE           _SYSSMU29_2000331538$
UNDOTBS2                       ONLINE           _SYSSMU30_2539881592$
UNDOTBS2                       ONLINE           _SYSSMU31_4041163512$
UNDOTBS2                       ONLINE           _SYSSMU32_4009460651$
UNDOTBS2                       ONLINE           _SYSSMU33_3635038207$
UNDOTBS2                       ONLINE           _SYSSMU34_654824878$

TABLESPACE_NAME                STATUS           SEGMENT_NAME
------------------------------ ---------------- ------------------------------
UNDOTBS2                       ONLINE           _SYSSMU35_692007111$
UNDOTBS2                       ONLINE           _SYSSMU36_4021360503$
UNDOTBS2                       ONLINE           _SYSSMU37_3779409589$

已选择 14 行。

SQL> drop tablespace undotbs1 including contents and datafiles;

表空间已删除。

SQL> select open_mode from v$database;

OPEN_MODE
--------------------
READ WRITE

SQL>

举报

相关推荐

0 条评论