zoukankan      html  css  js  c++  java
  • rac 11g_生产库日志组损坏处理

    原创作品,出自 “深蓝的blog” 博客,转载时请务必注明出处,否则有权追究版权法律责任。

    深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/46863813

    环境:

    操作系统:CentOS 6.4 64bit

    中间件:WAS 7

    数据库:Oracle 11G RAC 11.2.0.3

    问题:

    生成库was无法连接数据库,报出数据库无法归档错误。

    解决思路:

    解决oracle无法归档问题。

    操作记录:

    SQL> select instance_name from v$instance;           

    INSTANCE_NAME

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

    hyl1

    SQL> select * from v$log;

    SQL> alter system switch logfile;

    --手工切换日志组,长时间夯住,手工停止

    ^Calter system switch logfile

    *

    ERROR at line 1:

    ORA-01013: user requested cancel of current operation

     

    --查看告警日志,发现归档失败错误,其中指向ora-00333错误,可能日志组有损坏情况

    Incomplete read from log member '+DATA/hyl/redo01.log'. Trying next member.

    ARC0: All Archive destinations made inactive due to error 333

    ARC0: Closing local archive destination LOG_ARCHIVE_DEST_1: '+ARCH/hyl/archivelog/2015_07_06/thread_1_seq_3935.542.884340013' (error 333) (hyl1)

    ARCH: Archival stopped, error occurred. Will continue retrying

    ORACLE Instance hyl1 - Archival Error

    ORA-16038: log 1 sequence# 3935 cannot be archived

    ORA-00333: redo log read error block  count

    ORA-00312: online log 1 thread 1: '+DATA/hyl/redo01.log'

    Mon Jul 06 10:00:18 2015

    ARCH: Archival stopped, error occurred. Will continue retrying

    ORACLE Instance hyl1 - Archival Error

    ORA-16014: log 1 sequence# 3935 not archived, no available destinations

    ORA-00312: online log 1 thread 1: '+DATA/hyl/redo01.log'

     

    --验证归档日志目录空间,排除空间不足引起

    SQL> select group_number,name,total_mb,free_mb from v$asm_diskgroup;

    GROUP_NUMBER NAME                             TOTAL_MB    FREE_MB

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

               1 CRS                                449952     449023

               2 DATA                             14500000   13677212

               3 ARCH                              1000000     999167

               4 FLASH                             1000000     999895

     

    SQL> select * from v$log;

     

    --查看归档状态,发现日志组1(非当前日志组)未归档

    SQL> col MEMBER for a50

    SQL> select * from v$logfile order by group#;

        GROUP# STATUS  TYPE    MEMBER                                             IS_

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

             1         ONLINE  +DATA/xzxt/redo01.log                              NO

             2         ONLINE  +DATA/xzxt/redo02.log                              NO

             3         ONLINE  +DATA/xzxt/redo03.log                              NO

             4         ONLINE  +DATA/xzxt/redo04.log                              NO

    日志未做多元化。

     

    SQL> alter database clear unarchived  logfile group 1;

    --日志组1为非当前日志组,尝试对其清空

    SQL> select  *  from  v$log;

    --归档恢复正常

    SQL> alter system switch logfile;

     

    小结:

            本次故障由日志组损坏引起,在当前日志组写满进行日志切换,需要使其归档时,出现错误。由于本次损坏日志组为非当前日志组,处理较为简单。但如果由于断电、硬件故障等造成当前日志组损坏,将需要依赖备份对数据库进行不完全恢复,会发生数据丢失。建议建立日志组多元化。

     

    对于故障后,后续的维护建议做了一下简单的小结,反馈给了驻地工程师。

    建议:

    1、  查明近期是否出现断电情况,判断造成日志组损坏的原因;

    2、  确认硬件设备无任何警告,是否为硬件层面故障;

    3、  如果排除断电、硬件故障等因素外,可能由于oracle逻辑错误引起,需要继续跟踪;

    4、  建议在本次故障后,尽早进行一次全备;

    5、  建议对日志组完成多元化;

    6、  性能上考虑,建议后期把单节点日志组由2组增加为3组或更多;

  • 相关阅读:
    for...else...
    js 代码运行中插入交互
    八皇后问题(python)
    多层for循环转递归/迭代
    迭代器/可迭代对象/生成器
    js,python,go 协程对比
    Promise精简总结
    PyQt常用组件用法总结
    PyQt5 接入 web 登录页
    C++求整型数组的和
  • 原文地址:https://www.cnblogs.com/andy6/p/6063767.html
Copyright © 2011-2022 走看看