redo log 丢失或者损坏-ORA-01194: 文件 1 需要更多的恢复来保持一致性

#故障场景描述:

1、current redo 损坏或者丢失

2、ORA-01194: 文件 1 需要更多的恢复来保持一致性

C:\Users\ZMI>sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on 星期三 11月 22 16:58:07 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> shutdown abort
ORACLE 例程已经关闭。

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

Total System Global Area 1342175744 bytes
Fixed Size                  9267712 bytes
Variable Size             469762048 bytes
Database Buffers          855638016 bytes
Redo Buffers                7507968 bytes
数据库装载完毕。
ORA-00313: 无法打开日志组 2 (用于线程 1) 的成员
ORA-00312: 联机日志 2 线程 1: 'C:\ORACLE19C\APP\ZMI\ORADATA\ORCL\REDO02.LOG'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。


SQL>
SQL>
SQL> recover database until cancel;
ORA-00279: 更改 1977358 (在 11/22/2023 16:53:34 生成) 对于线程 1 是必需的
ORA-00289: 建议:
C:\ORACLE19C\WINDOWS.X64_193000_DB_HOME\RDBMS\ARC0000000002_1153586546.0001
ORA-00280: 更改 1977358 (用于线程 1) 在序列 #2 中


指定日志: {=suggested | filename | AUTO | CANCEL}
cancel
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
ORA-01194: 文件 1 需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'C:\ORACLE19C\APP\ZMI\ORADATA\ORCL\SYSTEM01.DBF'


ORA-01112: 未启动介质恢复


SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01194: 文件 1 需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'C:\ORACLE19C\APP\ZMI\ORADATA\ORCL\SYSTEM01.DBF'

##尝试故障修复

#适用场景:current redolog 丢失;归档日志丢失;数据文件异常offline,无法online 场景的数据库恢复;

fix_ora-v2023.exe  -path    C:\ORACLE19C\APP\ZMI\ORADATA\ORCL

[info] : success!

##恢复数据库:

SQL>  alter database backup controlfile to trace as 'C:\ORACLE19C\APP\ZMI\ORADATA\ORCL\1.log';

数据库已更改。

SQL> shutdown abort
ORACLE 例程已经关闭。
SQL> STARTUP NOMOUNT
ORACLE 例程已经启动。

Total System Global Area 1342175744 bytes
Fixed Size                  9267712 bytes
Variable Size             469762048 bytes
Database Buffers          855638016 bytes
Redo Buffers                7507968 bytes
SQL> CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS  NOARCHIVELOG
  2      MAXLOGFILES 16
  3      MAXLOGMEMBERS 3
  4      MAXDATAFILES 1024
  5      MAXINSTANCES 8
  6      MAXLOGHISTORY 292
  7  LOGFILE
  8    GROUP 1 'C:\ORACLE19C\APP\ZMI\ORADATA\ORCL\REDO01.LOG'  SIZE 200M BLOCKSIZE 512,
  9    GROUP 2 'C:\ORACLE19C\APP\ZMI\ORADATA\ORCL\REDO02.LOG'  SIZE 200M BLOCKSIZE 512,
 10    GROUP 3 'C:\ORACLE19C\APP\ZMI\ORADATA\ORCL\REDO03.LOG'  SIZE 200M BLOCKSIZE 512
 11  -- STANDBY LOGFILE
 12  DATAFILE
 13    'C:\ORACLE19C\APP\ZMI\ORADATA\ORCL\SYSTEM01.DBF',
 14    'C:\ORACLE19C\APP\ZMI\ORADATA\ORCL\SYSAUX01.DBF',
 15    'C:\ORACLE19C\APP\ZMI\ORADATA\ORCL\UNDOTBS01.DBF',
 16    'C:\ORACLE19C\APP\ZMI\ORADATA\ORCL\PDBSEED\SYSTEM01.DBF',
 17    'C:\ORACLE19C\APP\ZMI\ORADATA\ORCL\PDBSEED\SYSAUX01.DBF',
 18    'C:\ORACLE19C\APP\ZMI\ORADATA\ORCL\USERS01.DBF',
 19    'C:\ORACLE19C\APP\ZMI\ORADATA\ORCL\PDBSEED\UNDOTBS01.DBF',
 20    'C:\ORACLE19C\APP\ZMI\ORADATA\ORCL\PDB\SYSTEM01.DBF',
 21    'C:\ORACLE19C\APP\ZMI\ORADATA\ORCL\PDB\SYSAUX01.DBF',
 22    'C:\ORACLE19C\APP\ZMI\ORADATA\ORCL\PDB\UNDOTBS01.DBF',
 23    'C:\ORACLE19C\APP\ZMI\ORADATA\ORCL\PDB\USERS01.DBF'
 24  CHARACTER SET ZHS16GBK
 25  ;

控制文件已创建。


SQL>
SQL>  ALTER DATABASE OPEN RESETLOGS;

数据库已更改。

SQL> select count(*) from  dba_users;

  COUNT(*)
----------
        36

SQL>

你可能感兴趣的:(DBRecovery,数据库)