zoukankan      html  css  js  c++  java
  • Oracle启动报错ORA-03113解决

    环境:RHEL6.4 + Oracle 11.2.0.4

    步骤摘要:
    1.启动报错ORA-03113
    2.查看alert日志查找原因
    3.根据实际情况采取合理的措施,这里我们先增加闪回区大小,把库启动起来
    4.制定对应的归档日志删除策略

    1.启动报错ORA-03113

    $ sqlplus / as sysdba
    
    SQL*Plus: Release 11.2.0.4.0 Production on 星期六 2月 28 13:56:44 2015
    
    Copyright (c) 1982, 2013, Oracle.  All rights reserved.
    
    Connected to an idle instance.
    
    SQL> startup mount
    ORACLE instance started.
    
    Total System Global Area 3206836224 bytes
    Fixed Size                  2257520 bytes
    Variable Size            2365590928 bytes
    Database Buffers          822083584 bytes
    Redo Buffers               16904192 bytes
    Database mounted.
    SQL> alter database open; 
    alter database open
    *
    ERROR at line 1:
    ORA-03113: 通信通道的文件结尾
    进程 ID: 13501
    会话 ID: 853 序列号: 5
    
    
    SQL> 

    2.查看alert日志查找原因

    Sat Feb 28 13:56:52 2015
    Starting ORACLE instance (normal)
    LICENSE_MAX_SESSION = 0
    LICENSE_SESSIONS_WARNING = 0
    Initial number of CPU is 8
    CELL communication is configured to use 0 interface(s):
    CELL IP affinity details:
        NUMA status: non-NUMA system
        cellaffinity.ora status: N/A
    CELL communication will use 1 IP group(s):
        Grp 0: 
    Picked latch-free SCN scheme 3
    Using LOG_ARCHIVE_DEST_1 parameter default value as USE_DB_RECOVERY_FILE_DEST
    Autotune of undo retention is turned on. 
    IMODE=BR
    ILAT =249
    LICENSE_MAX_USERS = 0
    SYS auditing is disabled
    Starting up:
    Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options.
    ORACLE_HOME = /opt/app/oracle/product/11.2.0.4/dbhome_1
    System name:    Linux
    Node name:      JJFAB01
    Release:        2.6.32-358.el6.x86_64
    Version:        #1 SMP Tue Jan 29 11:47:41 EST 2013
    Machine:        x86_64
    VM name:        Xen Version: 4.1 (PVM)
    Using parameter settings in server-side spfile /opt/app/oracle/product/11.2.0.4/dbhome_1/dbs/spfileJJFAB.ora
    System parameters with non-default values:
      processes                = 1500
      sessions                 = 2272
      memory_target            = 3G
      control_files            = "/opt/oradata/gxwj/control01.ctl"
      control_files            = "/opt/app/oracle/fast_recovery_area/gxwj/control02.ctl"
      db_block_size            = 8192
      compatible               = "11.2.0.0.0"
      db_recovery_file_dest    = "/opt/app/oracle/fast_recovery_area"
      db_recovery_file_dest_size= 4122M
      undo_tablespace          = "UNDOTBS1"
      remote_login_passwordfile= "EXCLUSIVE"
      db_domain                = ""
      dispatchers              = "(PROTOCOL=TCP) (SERVICE=gxwjXDB)"
      audit_file_dest          = "/opt/app/oracle/admin/gxwj/adump"
      audit_trail              = "DB"
      db_name                  = "JJFAB"
      open_cursors             = 300
      diagnostic_dest          = "/opt/app/oracle"
    Sat Feb 28 13:56:54 2015
    PMON started with pid=2, OS id=13461 
    Sat Feb 28 13:56:54 2015
    PSP0 started with pid=3, OS id=13463 
    Sat Feb 28 13:56:55 2015
    VKTM started with pid=4, OS id=13465 at elevated priority
    VKTM running at (1)millisec precision with DBRM quantum (100)ms
    Sat Feb 28 13:56:55 2015
    GEN0 started with pid=5, OS id=13469 
    Sat Feb 28 13:56:55 2015
    DIAG started with pid=6, OS id=13471 
    Sat Feb 28 13:56:55 2015
    DBRM started with pid=7, OS id=13473 
    Sat Feb 28 13:56:55 2015
    DIA0 started with pid=8, OS id=13475 
    Sat Feb 28 13:56:55 2015
    MMAN started with pid=9, OS id=13477 
    Sat Feb 28 13:56:55 2015
    DBW0 started with pid=10, OS id=13479 
    Sat Feb 28 13:56:55 2015
    LGWR started with pid=11, OS id=13481 
    Sat Feb 28 13:56:55 2015
    CKPT started with pid=12, OS id=13483 
    Sat Feb 28 13:56:55 2015
    SMON started with pid=13, OS id=13485 
    Sat Feb 28 13:56:55 2015
    RECO started with pid=14, OS id=13487 
    Sat Feb 28 13:56:55 2015
    MMON started with pid=15, OS id=13489 
    starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'...
    Sat Feb 28 13:56:55 2015
    MMNL started with pid=16, OS id=13491 
    starting up 1 shared server(s) ...
    ORACLE_BASE from environment = /opt/app/oracle
    Sat Feb 28 13:56:56 2015
    ALTER DATABASE   MOUNT
    Successful mount of redo thread 1, with mount id 3498004520
    Database mounted in Exclusive Mode
    Lost write protection disabled
    Completed: ALTER DATABASE   MOUNT
    Sat Feb 28 13:57:48 2015
    alter database open
    Sat Feb 28 13:57:48 2015
    LGWR: STARTING ARCH PROCESSES
    Sat Feb 28 13:57:48 2015
    ARC0 started with pid=20, OS id=13553 
    ARC0: Archival started
    LGWR: STARTING ARCH PROCESSES COMPLETE
    ARC0: STARTING ARCH PROCESSES
    Sat Feb 28 13:57:49 2015
    ARC1 started with pid=21, OS id=13555 
    Sat Feb 28 13:57:49 2015
    ARC2 started with pid=22, OS id=13557 
    Errors in file /opt/app/oracle/diag/rdbms/jjfab/JJFAB/trace/JJFAB_ora_13501.trc:
    ORA-19815: 警告: db_recovery_file_dest_size 字节 (共 4322230272 字节) 已使用 100.00%, 尚有 0 字节可用。
    ************************************************************************
    You have following choices to free up space from recovery area:
    1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard,
       then consider changing RMAN ARCHIVELOG DELETION POLICY.
    2. Back up files to tertiary device such as tape using RMAN
       BACKUP RECOVERY AREA command.
    3. Add disk space and increase db_recovery_file_dest_size parameter to
       reflect the new space.
    4. Delete unnecessary files using RMAN DELETE command. If an operating
       system command was used to delete files, then use RMAN CROSSCHECK and
       DELETE EXPIRED commands.
    ************************************************************************
    ARCH: Error 19809 Creating archive log file to '/opt/app/oracle/fast_recovery_area/JJFAB/archivelog/2015_02_28/o1_mf_1_130_%u_.arc'
    Errors in file /opt/app/oracle/diag/rdbms/jjfab/JJFAB/trace/JJFAB_ora_13501.trc:
    ORA-16038: 日志 1 sequence# 130 无法归档
    ORA-19809: 超出了恢复文件数的限制
    ORA-00312: 联机日志 1 线程 1: '/opt/oradata/gxwj/redo01.log'
    Sat Feb 28 13:57:49 2015
    ARC3 started with pid=23, OS id=13559 
    USER (ospid: 13501): terminating the instance due to error 16038
    Sat Feb 28 13:57:50 2015
    System state dump requested by (instance=1, osid=13501), summary=[abnormal instance termination].
    System State dumped to trace file /opt/app/oracle/diag/rdbms/jjfab/JJFAB/trace/JJFAB_diag_13471_20150228135750.trc
    Dumping diagnostic data in directory=[cdmp_20150228135750], requested by (instance=1, osid=13501), summary=[abnormal instance termination].
    Instance terminated by USER, pid = 13501

    发现告警日志中已经明确给出了原因和建议。

    3.根据实际情况采取合理的措施,这里我们先增加闪回区大小,把库启动起来。

    SQL> startup mount
    ORA-24324: 未初始化服务句柄
    ORA-01041: 内部错误, hostdef 扩展名不存在
    SQL> exit
    Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    $ sqlplus / as sysdba
    
    SQL*Plus: Release 11.2.0.4.0 Production on 星期六 2月 28 14:05:59 2015
    
    Copyright (c) 1982, 2013, Oracle.  All rights reserved.
    
    Connected to an idle instance.
    
    SQL> startup mount
    ORACLE instance started.
    
    Total System Global Area 3206836224 bytes
    Fixed Size                  2257520 bytes
    Variable Size            2365590928 bytes
    Database Buffers          822083584 bytes
    Redo Buffers               16904192 bytes
    Database mounted.
    SQL> show parameter db_recover
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    db_recovery_file_dest                string      /opt/app/oracle/fast_recovery_
                                                     area
    db_recovery_file_dest_size           big integer 4122M
    SQL> !
    $ df -h /opt/
    文件系统              容量  已用  可用 已用%% 挂载点
    /dev/mapper/vg_extend-lv_opt
                          493G  423G   45G  91% /opt
    $ exit
    exit
    
    SQL> alter system set db_recovery_file_dest_size=10G;
    
    System altered.
    
    SQL> alter database open;
    
    Database altered.
    
    SQL> select status from v$instance;
    
    STATUS
    ------------
    OPEN
    
    SQL> 

    4.制定对应的归档日志删除策略

    SQL> set linesize 120
    SQL> select * from v$flash_recovery_area_usage;
    
    FILE_TYPE            PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
    -------------------- ------------------ ------------------------- ---------------
    CONTROL FILE                          0                         0               0
    REDO LOG                              0                         0               0
    ARCHIVED LOG                      41.54                         0             133
    BACKUP PIECE                          0                         0               0
    IMAGE COPY                            0                         0               0
    FLASHBACK LOG                         0                         0               0
    FOREIGN ARCHIVED LOG                  0                         0               0
    
    7 rows selected.
    可以rman直接删除不再需要的归档,比如删除1天之前的归档
    RMAN> delete noprompt archivelog until time 'sysdate-1';
    此处省略删除归档的输出..
    RMAN> exit
    
    Recovery Manager complete.
    
    SQL> select * from v$flash_recovery_area_usage;
    
    FILE_TYPE            PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
    -------------------- ------------------ ------------------------- ---------------
    CONTROL FILE                          0                         0               0
    REDO LOG                              0                         0               0
    ARCHIVED LOG                        .35                         0               1
    BACKUP PIECE                          0                         0               0
    IMAGE COPY                            0                         0               0
    FLASHBACK LOG                         0                         0               0
    FOREIGN ARCHIVED LOG                  0                         0               0
    
    7 rows selected.

    当然还可以设置crontab定时每天删除1天前的归档:

    $ crontab -l
    00 04 * * * /opt/shell/del_arch.sh
    $ more /opt/shell/del_arch.sh
    #!/bin/bash
    export ORACLE_BASE=/opt/app/oracle
    export ORACLE_HOME=/opt/app/oracle/product/11.2.0.4/dbhome_1 
    export ORACLE_SID=JJFAB
    export NLS_LANG="simplified chinese_china.ZHS16GBK"
    export NLS_DATE_FORMAT="YYYY -MM-DD HH24:Mi:SS"
    export PATH=.:/opt/app/oracle/product/11.2.0.4/dbhome_1:/usr/sbin:$ORACLE_HOME/bin:$PATH
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib
    
    rman target / log=/opt/backup/del_arch.log <<EOF
    list archivelog all;
    delete noprompt archivelog until time 'sysdate-1';
    show all;
    list archivelog all;
    EOF
  • 相关阅读:
    spring bean的生命周期
    02-MySQL主要配置文件
    01-MySQL Linux安装
    spring自动装配
    JVMGC+Spring Boot生产部署和调参优化
    java面试-生产环境出现CPU占用过高,谈谈你的分析思路和定位
    java面试-G1垃圾收集器
    java面试-垃圾回收器谈谈你的理解
    java面试-谈谈你对OOM的理解
    RPC介绍以及编程
  • 原文地址:https://www.cnblogs.com/jyzhao/p/4305598.html
Copyright © 2011-2022 走看看