zoukankan      html  css  js  c++  java
  • open数据库报错ERROR at line 1: ORA-03113: end-of-file on communication channel Process ID: 3880 Session ID: 125 Serial number: 3

    1.今天打开数据时,失败,报错

    ERROR at line 1:
    ORA-03113: end-of-file on communication channel
    Process ID: 3880
    Session ID: 125 Serial number: 3

    2.想看下数据库的状态,发现提示:not connected to ORACLE
    SYS@EMREP> select status,instance_name from v$instance;
    ERROR:
    ORA-03114: not connected to ORACLE

    3.排查错误,使用Oracle三部启动法:

    startup nomount;(如果起来,说明参数文件没问题)

    alter database mount;(如果起来,说明控制文件没问题)

    alter database open;(报错了,需要查看具体的报错,通过aler日志查看)

    > show parameter background_dump (查看alert日志所在位置)

    4.进入alert日志,查看详细报错

    cd /u01/app/oracle/diag/rdbms/emrep/EMREP/trace    (到alert日志所在的目录下)

    tail -100f alert_EMREP.log   (查看详细报错日志,如下:)

    Errors in file /u01/app/oracle/diag/rdbms/emrep/EMREP/trace/EMREP_ora_3823.trc:
    ORA-19815: WARNING: db_recovery_file_dest_size of 2147483648 bytes is 100.00% used, and has 0 remaining bytes available.
    ************************************************************************
    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 '/u01/app/oracle/EMREP/archivelog/2018_11_24/o1_mf_1_21_%u_.arc'
    ARC2: Error 19809 Creating archive log file to '/u01/app/oracle/EMREP/archivelog/2018_11_24/o1_mf_1_22_%u_.arc'
    Errors in file /u01/app/oracle/diag/rdbms/emrep/EMREP/trace/EMREP_ora_3823.trc:
    ORA-16038: log 3 sequence# 21 cannot be archived
    ORA-19809: limit exceeded for recovery files
    ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/EMREP/redo03.log'
    ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/EMREP/redo06.log'
    ARCH: Archival stopped, error occurred. Will continue retrying
    ORACLE Instance EMREP - Archival Error
    ORA-16038: log 1 sequence# 22 cannot be archived
    ORA-19809: limit exceeded for recovery files
    ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/EMREP/redo01.log'
    ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/EMREP/redo04.log'
    USER (ospid: 3823): terminating the instance due to error 16038
    System state dump requested by (instance=1, osid=3823), summary=[abnormal instance termination].
    System State dumped to trace file /u01/app/oracle/diag/rdbms/emrep/EMREP/trace/EMREP_diag_3791_20181124081720.trc
    Dumping diagnostic data in directory=[cdmp_20181124081720], requested by (instance=1, osid=3823), summary=[abnormal instance termination].

    根据日志,可以看出,是因为归档空间满了,而且给出了解决办法:

    1) Consider changing RMAN RETENTION POLICY. If you are using Data Guard,
      then consider changing RMAN ARCHIVELOG DELETION POLICY.  (将备份策略改为基于冗余数量的备份策略)

    如:RMAN> configure retention policy to redundancy 5;

    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.(增加db_recovery_file_dest_size的大小)

    SQL> alter system set db_recovery_file_dest_size=2000M;

    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.   手动删除不需要的归档日志文件 (删除 3 天以前的日志记录)

    rman> delete archivelog all completed before 'sysdate - 3'

    以上任意一种方法都可以,执行完毕,直接:alter database open 即可。

  • 相关阅读:
    EMES信息化制造系统的概念
    正则表达式校验日期、时间
    c#怎么string转化成ascii码
    C#实现将一个字符串进行翻转显示的6种方法,数组的 Reverse()反转方法
    把一个十六进制的字符串(包含0x或0X)转化成对应的数值 ASCII码
    为什么0-9转化成字符是+0x30,11转化成A是+0x37?
    oracle修改数据库字段长度
    表添加字段的SQL语句写法
    在数据表中添加一个字段的SQL语句怎么写-百度
    oracle创建表增加字段sql脚本,字段说明注释
  • 原文地址:https://www.cnblogs.com/gw666/p/10010865.html
Copyright © 2011-2022 走看看