Oracle redo 日志损坏的几种情况下的恢复方式

发布于:2024-05-10 ⋅ 阅读:(24) ⋅ 点赞:(0)

Oracle redo 日志损坏的几种情况下的恢复

第一种情况:损坏的redo不是当前正在使用的redo
1、归档模式,不是当前正在使用的日志损坏(INACTIVE),数据库处于活动状态。
模拟损坏:
SQL> select * from v$log;
SQL> !rm redo02.log
SQL> !ls -l

日志提示错误:
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/zzh/ZZH/trace/ZZH_arc2_XXXX.trc:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/ZZH/redo02.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
日志出现错误,提示不能获得该文件状态,数据无法进行日志切换

解决办法:
1、不需要重启数据库,只需要把日志清除即可。
SQL> alter database clear unarchived logfile group 2;
SQL> alter system switch logfile;

2、归档模式,不是当前日志损坏(INACTIVE),数据库已经不可用。
演示过程:
SQL> set linesize 200
SQL> select * from v$log;
select * from v$log
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0

SQL> startup mount;
ORACLE instance started.
Total System Global Area  492707840 bytes
Fixed Size                  2254544 bytes
Variable Size             322963760 bytes
Database Buffers          163577856 bytes
Redo Buffers                3911680 bytes
Database mounted.
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-03113: end


网站公告

今日签到

点亮在社区的每一天
去签到