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