zoukankan      html  css  js  c++  java
  • ORA-03113: end-of-file on communication channel 解决方法


    今天在测试数据库中对一个表插入了大量的数据, 导致数据库卡死 hang 住, 重启数据库后报错如下:

    C:Documents and Settingsdavidd>sqlplus "/ as sysdba"

    SQL*Plus: Release 11.2.0.1.0 Production on Fri Dec 5 08:50:23 2014
    Copyright (c) 1982, 2010, Oracle.  All rights reserved.
    Connected to an idle instance.

    SQL> startup mount
    ORACLE instance started.

    Total System Global Area  778387456 bytes
    Fixed Size                  1374808 bytes
    Variable Size             478152104 bytes
    Database Buffers          293601280 bytes
    Redo Buffers                5259264 bytes
    Database mounted.

    SQL> alter database open;
    alter database open
    *
    ERROR at line 1:
    ORA-03113: end-of-file on communication channel
    Process ID: 3416
    Session ID: 5 Serial number: 3

    SQL> show parameter background_dump

    NAME                                         TYPE        VALUE
    ------------------------------------ ----------- ---------------------------------------------------------------
    background_dump_dest       string      g:appdavidddiag dbmsdaviddavid race

    在 background_dump_dest 目录下查看日志文件

    ************************************************************************************************************************************************
    Errors in file g:appdavidddiag dbmsdaviddavid racedavid_arc1_4260.trc:
    ORA-19809: 超過復原檔案限制
    ORA-19804: 無法回收 41098240 個位元組的磁碟空間, 從 5218762752 限制
    ARC1: Error 19809 Creating archive log file to 'G:APPDAVIDDDAVIDARCHIVELOG2014_12_05O1_MF_1_404_%U_.ARC'
    Errors in file g:appdavidddiag dbmsdaviddavid racedavid_ora_3416.trc:
    ORA-19815: WARNING: db_recovery_file_dest_size of 5218762752 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.
    ************************************************************************************************************************************************

    原来是大批量的数据插入导致闪回空间不足, 最常用的办法删除不需要的归档日志文件或者增加闪回空间大小(db_recovery_file_dest_size)

    查看闪回空间大小(db_recovery_file_dest_size)

    SQL> show parameter db_recovery_file_dest_size

    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- -------------------
    db_recovery_file_dest_size           big integer 4977M

    查看 rman 设定

    RMAN> show all;

    RMAN configuration parameters for database with db_unique_name DAVID are:
    CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 14 DAYS;
    CONFIGURE BACKUP OPTIMIZATION OFF; # default
    CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
    CONFIGURE CONTROLFILE AUTOBACKUP ON;
    CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'g:oracleackup\%F';
    CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
    CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
    CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
    CONFIGURE MAXSETSIZE TO UNLIMITED; # default
    CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
    CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
    CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
    CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
    CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'G:APPDAVIDDPRODUCT11.2.0DBHOME_1DATABASESNCFDAVID.ORA'; # default

    将备份策略改为基于冗余数量的备份策略

    RMAN> configure retention policy to redundancy 5;

    old RMAN configuration parameters:
    CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 14 DAYS;
    new RMAN configuration parameters:
    CONFIGURE RETENTION POLICY TO REDUNDANCY 5;
    new RMAN configuration parameters are successfully stored

    RMAN> show all;

    RMAN configuration parameters for database with db_unique_name DAVID are:
    CONFIGURE RETENTION POLICY TO REDUNDANCY 5;
    CONFIGURE BACKUP OPTIMIZATION OFF; # default
    CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
    CONFIGURE CONTROLFILE AUTOBACKUP ON;
    CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'g:oracleackup\%F';
    CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
    CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
    CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
    CONFIGURE MAXSETSIZE TO UNLIMITED; # default
    CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
    CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
    CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
    CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
    CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'G:APPDAVIDDPRODUCT11.2.0DBHOME_1DATABASESNCFDAVID.ORA'; # default

    手动删除不需要的归档日志文件 (删除 3 天以前的日志记录)

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

    另外一种方法, 增加 db_recovery_file_dest_size 大小

    SQL> alter system set db_recovery_file_dest_size=2000M;

    System altered.

    SQL> show parameter db_recovery_file_dest_size

    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    db_recovery_file_dest_size           big integer 2000M

    最后打开数据库,成功

    SQL> alter database open;

    Database altered.

    原文地址:https://blog.csdn.net/dataminer_2007/article/details/41775257

  • 相关阅读:
    php--------ThinkPHP3.2验证码使用
    mysql--------四种索引类型
    php--------递归函数
    php--------对象(object) 与 数组(array) 的转换
    ZH奶酪:Windows7+VirtualBox安装Ubuntu虚拟机问题总结
    第一次工作面试(蘑菇街)
    ZH奶酪:【阅读笔记】Deep Learning, NLP, and Representations
    web开发学习之旅
    隐马尔可夫模型实战
    ZH奶酪:Python中range和xrange的区别
  • 原文地址:https://www.cnblogs.com/jpfss/p/11169566.html
Copyright © 2011-2022 走看看