#故障场景描述:
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 中
指定日志: {
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>