zoukankan      html  css  js  c++  java
  • [案例]Oracle控制文件损坏导致数据库故障(转载)

    [案例]Oracle控制文件损坏导致数据库故障

    问题:
    1、今天早上所有客户端都无法登陆,提示应用服务器配置错误。


    分析及连线处理:
    1、检查客户端日志,发现数据库异常。
    Caused by: java.sql.SQLException: Listener refused the connection with the following error:
    ORA-12528, TNS:listener: all appropriate instances are blocking new connections
    The Connection descriptor used by the client was:
    //192.168.2.245:1521/eas54

    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:260)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:386)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:438)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:164)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:34)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:752)
    at java.sql.DriverManager.getConnection(DriverManager.java:525)
    at java.sql.DriverManager.getConnection(DriverManager.java:140)
    at com.kingdee.bos.sql.shell.KDDriver.connect(Unknown Source)
    ... 36 more

    从错误信息看,数据库无法连接,提示实例不允许建立连接。

    2、检查监听状态,显示EAS54实例处于阻塞状态。

    3、检查alert日志,发现有异常。
    Thread 1 advanced to log sequence 1397
      Current log# 1 seq# 1397 mem# 0: D:\ORACLE\PRODUCT\10.2.0\ORADATA\EAS54\REDO01.LOG
    Mon Nov 30 18:44:23 2009
    Process startup failed, error stack:
    Mon Nov 30 18:44:23 2009
    Errors in file d:\oracle\product\10.2.0\admin\eas54\bdump\eas54_psp0_3504.trc:
    ORA-27300: OS 绯荤粺鐩稿叧鎿嶄綔: spcdr:9261:4200 澶辫触, 鐘舵€佷负: 997
    ORA-27301: OS 鏁呴殰娑堟伅: 重叠 I/O 操作在进行中。
    ORA-27302: 閿欒鍙戠敓鍦? skgpspawn

    Mon Nov 30 18:44:24 2009
    Process J000 died, see its trace file
    Mon Nov 30 18:44:24 2009
    kkjcre1p: unable to spawn jobq slave process
    Mon Nov 30 18:44:24 2009
    Errors in file d:\oracle\product\10.2.0\admin\eas54\bdump\eas54_cjq0_3648.trc:


    Mon Nov 30 19:00:53 2009
    Process startup failed, error stack:
    Mon Nov 30 19:00:53 2009
    Errors in file d:\oracle\product\10.2.0\admin\eas54\bdump\eas54_psp0_3504.trc:
    ORA-27300: OS 绯荤粺鐩稿叧鎿嶄綔: spcdr:9261:4200 澶辫触, 鐘舵€佷负: 997
    ORA-27301: OS 鏁呴殰娑堟伅: 重叠 I/O 操作在进行中。
    ORA-27302: 閿欒鍙戠敓鍦? skgpspawn

    从昨天晚上18:44开始,数据库开始报错,由于乱码不知具体原因,但可以看到OS以及I/O字样,所以判断应该是出现了IO错误

    4、今天早上有人尝试重启过数据库,但启动没有成功。
    Starting up ORACLE RDBMS Version: 10.2.0.1.0.
    System parameters with non-default values:
      processes                = 200
      sessions                 = 225
      sga_max_size             = 1367343104
      __shared_pool_size       = 318767104
      shared_pool_size         = 318767104
      __large_pool_size        = 8388608
      large_pool_size          = 8388608
      __java_pool_size         = 8388608
      java_pool_size           = 8388608
      __streams_pool_size      = 0
      streams_pool_size        = 0
      spfile                   = D:\ORACLE\PRODUCT\10.2.0\DB_1\DBS\SPFILEEAS54.ORA
      nls_language             = SIMPLIFIED CHINESE
      nls_territory            = CHINA
      sga_target               = 1367343104
      control_files            = D:\ORACLE\PRODUCT\10.2.0\ORADATA\EAS54\CONTROL01.CTL, D:\ORACLE\PRODUCT\10.2.0\ORADATA\EAS54\CONTROL02.CTL, D:\ORACLE\PRODUCT\10.2.0\ORADATA\EAS54\CONTROL03.CTL
      db_block_size            = 8192
      __db_cache_size          = 1023410176
      db_cache_size            = 838860800
      compatible               = 10.2.0.1.0
      db_file_multiblock_read_count= 16
      db_recovery_file_dest    = D:\oracle\product\10.2.0/flash_recovery_area
      db_recovery_file_dest_size= 2147483648
      undo_management          = AUTO
      undo_tablespace          = UNDOTBS1
      remote_login_passwordfile= EXCLUSIVE
      db_domain                =
      dispatchers              = (PROTOCOL=TCP) (SERVICE=eas54XDB)
      job_queue_processes      = 10
      audit_file_dest          = D:\ORACLE\PRODUCT\10.2.0\ADMIN\EAS54\ADUMP
      background_dump_dest     = D:\ORACLE\PRODUCT\10.2.0\ADMIN\EAS54\BDUMP
      user_dump_dest           = D:\ORACLE\PRODUCT\10.2.0\ADMIN\EAS54\UDUMP
      core_dump_dest           = D:\ORACLE\PRODUCT\10.2.0\ADMIN\EAS54\CDUMP
      db_name                  = eas54
      open_cursors             = 300
      _b_tree_bitmap_plans     = FALSE
      _no_or_expansion         = TRUE
      optimizer_index_cost_adj = 50
      optimizer_index_caching  = 90
      pga_aggregate_target     = 203423744
    MMAN started with pid=4, OS id=3952
    DBW0 started with pid=5, OS id=3968
    LGWR started with pid=6, OS id=3976
    CKPT started with pid=7, OS id=3992
    SMON started with pid=8, OS id=4004
    RECO started with pid=9, OS id=4020
    CJQ0 started with pid=10, OS id=4044
    MMON started with pid=11, OS id=4056
    MMNL started with pid=12, OS id=4064
    Tue Dec 01 09:21:28 2009
    starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'...
    starting up 1 shared server(s) ...
    PMON started with pid=2, OS id=3916
    Tue Dec 01 09:21:29 2009
    alter database mount exclusive
    ORA-214 signalled during: alter database mount exclusive...
    PSP0 started with pid=3, OS id=3948

    5、sqlplus连接数据库实例,并检查实例状态。
    C:\Documents and Settings\Administrator>set ORACLE_SID=EAS54

    C:\Documents and Settings\Administrator>sqlplus / as sysdba

    SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 12月 1 10:39:46 2009

    Copyright (c) 1982, 2005, Oracle.  All rights reserved.


    连接到:
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, OLAP and Data Mining options

    SQL> select instance_name ,status from v$instance;

    INSTANCE_NAME                    STATUS
    -------------------------------- ------------------------
    eas54                            STARTED

    实例状态为STARTED,未启动成功。

    6、停止并启动数据库,发现有错误。
    SQL> startup
    ORACLE instance started.

    Total System Global Area 1367343104 bytes
    Fixed Size                  1250884 bytes
    Variable Size             335546812 bytes
    Database Buffers         1023410176 bytes
    Redo Buffers                7135232 bytes
    ORA-00214: control file 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EAS54\CONTROL02.CTL'
    version 14018 inconsistent with file
    'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EAS54\CONTROL01.CTL' version 14016

    错误信息表明控制文件出现不一致的情况,估计是昨天晚上的IO故障导致控制文件出现不一致。

    CONTROL02.CTL的版本号14018 > CONTROL01.CTL版本号14016

    7、将三个控制文件先备份,然后用CONTROL02.CTL覆盖CONTROL01.CTL和CONTROL03.CTL

    8、重启数据库,可以正常启动,系统恢复正常。

    9、后检查操作系统事件查看器的日志,发现已经被清除,无法获知是否有IO方面的错误信息。



    后续建议:
    1、请密切关注服务器的IO状况,并检查磁盘是否有异常,并定时检查操作系统相关日志。
    2、确保每天的备份正常,并复制到另外的机器上,以防万一。

    转载自:http://dev.kingdee.com/bbs/viewthread.php?tid=837

  • 相关阅读:
    TypeError: expected string or bytes-like object
    Python之DataFrame更改列名及重排列顺序
    重启nginx 分类: ubuntu 测试 虚拟机 2014-12-12 11:50 126人阅读 评论(0) 收藏
    virtualbox下ubuntu调整分辨率的方法(给力!!!) 分类: ubuntu 虚拟机 2014-12-04 14:01 223人阅读 评论(0) 收藏
    安装Chrome driver/ IE driver 分类: python基础学习 2014-08-15 11:38 1328人阅读 评论(0) 收藏
    Python的静态方法和类成员方法 分类: python基础学习 2014-08-13 14:21 205人阅读 评论(0) 收藏
    linux 修改系统时间 分类: ubuntu 2014-07-28 12:04 209人阅读 评论(0) 收藏
    详解python linecache模块读取文件的方法 分类: python Module 2014-07-21 18:32 1057人阅读 评论(0) 收藏
    解决 WindowsError: [Error 87] 分类: 问题总结 2014-04-09 22:21 1266人阅读 评论(0) 收藏
    静态方法 分类: python基础学习 2014-04-05 19:34 228人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/wuhenke/p/1954664.html
Copyright © 2011-2022 走看看