两个有趣的redologerror处理方法系统环境:操作系统:aix-5300数据库:oracle10g(10.2.0.1.0)案例描述:数据库(归档模式)非当前日志组被破坏,但由于破坏方式不
两个有趣的redo log error处理方法
系统环境:
操作系统: aix-5300
数据库: oracle 10g(10.2.0.1.0)
案例描述:
数据库(归档模式)非当前日志组被破坏,但由于破坏方式不同,,在解决问题的方式稍有不同,很有意思.
案例1:非当前日志组文件被删除
sql> select member from v$logfile;
member
--------------------------------------------------------------------------------------------------------
/dsk1/oradata/prod/redo03a.log
/dsk1/oradata/prod/redo02a.log
/dsk1/oradata/prod/redo01a.log
/dsk2/oradata/prod/redo01b.log
/dsk2/oradata/prod/redo02b.log
/dsk2/oradata/prod/redo03b.log
6 rows selected.
删除非当前日志组:
[oracle@aix211 ~]$cd /dsk1/oradata/prod/
[oracle@aix211 prod]$ls
control02.ctl redo01a.log redo02a.log redo03a.log
[oracle@aix211 prod]$rm redo01a.log
[oracle@aix211 prod]$cd /dsk2/oradata/prod/
[oracle@aix211 prod]$ls
redo01b.log redo02b.log redo03b.log
[oracle@aix211 prod]$rm redo01b.log
关闭数据库,并重新启动:
sql> shutdown abort
oracle instance shut down.
sql> startup
oracle instance started.
total system global area 1258291200 bytes
fixed size 2020552 bytes
variable size 318769976 bytes
database buffers 922746880 bytes
redo buffers 14753792 bytes
database mounted.
ora-00313: open failed for members of log group 1 of thread 1
ora-00312: online log 1 thread 1: '/dsk1/oradata/prod/redo01a.log'
ora-00312: online log 1 thread 1: '/dsk2/oradata/prod/redo01b.log'
告警日志:(提示:日志组文件找不到,无法读取)
errors in file /u01/app/oracle/admin/prod/udump/prod_ora_536600.trc:
ora-00313: open failed for members of log group 1 of thread 1
ora-00312: online log 1 thread 1: '/dsk2/oradata/prod/redo01b.log'
ora-27037: unable to obtain file status
ibm aix risc system/6000 error: 2: no such file or directory
additional information: 3
ora-00312: online log 1 thread 1: '/dsk1/oradata/prod/redo01a.log'
ora-27037: unable to obtain file status
ibm aix risc system/6000 error: 2: no such file or directory
additional information: 3
completed: alter database clear logfile group 1
mon may 26 10:02:36 2014
alter database open
mon may 26 10:02:36 2014
block change tracking file is current.
解决方法:
sql> select * from v$log;
group# thread# sequence# bytes members arc status first_change# first_tim
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
1 1 452 52428800 2 yes inactive 806225 26-may-14
3 1 451 52428800 2 yes inactive 803970 26-may-14
2 1 453 52428800 2 no current 806237 26-may-14
由于是非当前日志组,并且已经完成归档:
sql> alter database clear logfile group 1;
database altered.
打开数据库成功:
sql> alter database open;
database altered.
sql> select * from v$log;
group# thread# sequence# bytes members arc status first_change# first_tim
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------