两个有趣的REDO LOG ERROR 处理方法
admin
2023-05-15 06:02:40
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

---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------

         1          1        454   52428800          2 NO  CURRENT                 826578 26-MAY-14

         2          1        453   52428800          2 YES INACTIVE                806237 26-MAY-14

         3          1        451   52428800          2 YES INACTIVE                803970 26-MAY-14

SQL> alter system switch logfile;

System altered.


案例2:非当前日志组文件头部被破坏

[oracle@aix211 prod]$dd if=/dev/zero of=/dsk1/oradata/prod/redo03a.log bs=8192 count=3

3+0 records in

3+0 records out

[oracle@aix211 prod]$dd if=/dev/zero of=/dsk2/oradata/prod/redo03b.log bs=8192 count=3

3+0 records in

3+0 records out

关库并启动Instance:

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-00316: log 3 of thread 1, type  in header is not log file

ORA-00312: online log 3 thread 1: '/dsk1/oradata/prod/redo03a.log'

ORA-00312: online log 3 thread 1: '/dsk2/oradata/prod/redo03b.log'

告警日志:(提示:日志组文件头部不可读取)

Errors in file /u01/app/oracle/admin/prod/bdump/prod_lgwr_499718.trc:

ORA-00316: log 3 of thread 1, type 0 in header is not log file

ORA-00312: online log 3 thread 1: '/dsk2/oradata/prod/redo03b.log'

ORA-00316: log 3 of thread 1, type 0 in header is not log file

ORA-00312: online log 3 thread 1: '/dsk1/oradata/prod/redo03a.log'

Mon May 26 10:16:37 2014

解决方法:

Clear非当前日志组:

SQL> select * from v$log;                 

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM

---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------

         1          1        457   52428800          2 YES INACTIVE                827041 26-MAY-14

         3          1        458   52428800          2 YES INACTIVE                827053 26-MAY-14

         2          1        459   52428800          2 NO  CURRENT                 827067 26-MAY-14

SQL> alter database clear logfile group 3;

Database altered.

直接open database失败

SQL> alter database open;

alter database open

*

ERROR at line 1:

ORA-00327: log 3 of thread 1, physical size  less than needed

ORA-00312: online log 3 thread 1: '/dsk1/oradata/prod/redo03a.log'

ORA-00312: online log 3 thread 1: '/dsk2/oradata/prod/redo03b.log'

告警日志:(提示:redo 日志组文件头部仍然有错误)

Errors in file /u01/app/oracle/admin/prod/bdump/prod_lgwr_499718.trc:

ORA-00316: log 3 of thread 1, type 0 in header is not log file

ORA-00312: online log 3 thread 1: '/dsk2/oradata/prod/redo03b.log'

ORA-00316: log 3 of thread 1, type 0 in header is not log file

ORA-00312: online log 3 thread 1: '/dsk1/oradata/prod/redo03a.log'

Mon May 26 10:16:37 2014

ARC0: STARTING ARCH PROCESSES

Mon May 26 10:16:37 2014

ORA-316 signalled during: ALTER DATABASE OPEN...

重新启动Instance,重新加载controlfile,问题解决:

SQL> startup force;

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.

Database opened.

SQL> 


   以上两个案例都是针对redo log文件被破坏的情况下,解决问题的方法,破坏方式稍有不同,解决方法也有差异,应在实践中注意总结和归纳。

相关内容

热门资讯

英国绿党领袖:部长们应该做正确... 据凤凰卫视报道,英国工党首相斯塔默仍然面临严峻的党内逼宫压力。当地媒体指,超过半数工党下院议员希望他...
全民围观某君半蹲合影:我们崇拜... 马斯克打卡点:半蹲的不是膝盖,是整个科技行业的想象力 ——当某君半蹲合影、库克排队等待,科技大佬们的...
深圳第二类医疗器械备案所需材料... 办理深圳第二类医疗器械经营备案,最耗时间的就是材料准备。很多企业因为资料漏项、盖章错误、扫描模糊、填...
直击杭州人形机器人展:文旅物流... 《科创板日报》5月15日讯(记者 王耐)2026年第二届杭州国际人形机器人展,有600家上下游企业参...
“前半生是恶霸,后半生是学霸”... 一个人的逆袭叫传奇。一群人的集体转行,叫世道变了。文|张雪莹出品|Vista天下知识局提到日本黑帮,...
若不想成7年来第五个被赶下台的... 【文/观察者网 张菁娟】“这是自2022年保守党前首相特拉斯上任仅数周便仓促辞职以来,英国政局最动荡...
产学研各界代表齐聚一堂,共议A... 封面新闻记者 易弋力 20支战队4小时巅峰对决;三位大咖三个不同视角解读“技术打法+产业路径+数据洞...
评论丨香蕉复仇、蓝莓出轨?警惕... AI技术降低了创作门槛,不等于降低了质量门槛和责任门槛;可以利用AI“手搓”短剧,但不应没下限地制造...
人工智能如何重塑电影行业?中国... 北京5月15日电 (记者 孙自法)人工智能生成内容(AIGC)正为众多行业带来深刻巨变,引发广泛关注...
济南隆超取得便捷式喷涂装置专利... 国家知识产权局信息显示,济南隆超石油机械锻造有限公司取得一项名为“一种便捷式喷涂装置”的专利,授权公...