zoukankan      html  css  js  c++  java
  • ORA-00257: archiver error. Connect internal only, until freed

    1. sys用户登录
      sqlplus sys/pass@tt as sysdba

       

    2. 看看archiv log所在位置
    SQL> show parameter log_archive_dest;
    NAME                                     TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_dest                   string
    log_archive_dest_1               string
    log_archive_dest_10             string

       

    3. 一般VALUE为空时,可以用archive log list;检查一下归档目录和log sequence
    SQL> archive log list;
    Database log mode                 Archive Mode
    Automatic archival                   Enabled
    Archive destination                  USE_DB_RECOVERY_FILE_DEST
    Oldest online log sequence     360
    Next log sequence to archive  360
    Current log sequence              362

       

    4. 检查flash recovery area的使用情况,可以看见archivelog已经很大了,达到96.62
    SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;

    FILE_TYPE    PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
    ------------ ------------------ ------------------------- ---------------
    CONTROLFILE                 .13                        0               1
    ONLINELOG                  2.93                        0               3
    ARCHIVELOG                96.62                       0              141
    BACKUPPIECE                   0                         0               0
    IMAGECOPY                      0                         0               0
    FLASHBACKLOG                0                         0               0

       

    5. 计算flash recovery area已经占用的空间
    SQL> select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage;

    SUM(PERCENT_SPACE_USED)*3/100
    -----------------------------
                           2.9904
                           
    6. 找到recovery目录, show parameter recover
    SQL> show parameter recover;
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    db_recovery_file_dest                string           /u01/app/oracle/flash_recovery_area
    db_recovery_file_dest_size        big integer   5G
    recovery_parallelism                   integer         0

                           
    7 上述结果告诉我们,归档位置用的是默认值,放在flash_recovery_area(db_recovery_file_dest目录=/u01/app/oracle/flash_recovery_area)
    [root@sha3 10.2.0]# echo $ORACLE_BASE
    /u01/app/oracle

       

    [root@sha3 10.2.0]# cd $ORACLE_BASE/flash_recovery_area/tt/archivelog
    转移或清除对应的归档日志, 删除一些不用的日期目录的文件,注意保留最后几个文件(比如360以后的)

       

    ---------------------------------------------------------------------------------------
    注意
    在删除归档日志后,必须用RMAN维护控制文件,否则空间显示仍然不释放。
    ---------------------------------------------------------------------------------------

    8. rman target sys/pass
    [root@sha3 oracle]# rman target sys/pass

    Recovery Manager: Release 10.2.0.4.0 - Production on Tue Jan 20 01:41:26 2009

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

    connected to target database: tt (DBID=4147983671)

       

    9. 检查一些无用的archivelog
    RMAN> crosscheck archivelog all;

       

    10. 删除过期的归档
    RMAN> delete expired archivelog all;

    delete archivelog until time 'sysdate-1' ; 删除截止到前一天的所有archivelog

       

    11. 再次查询,发现使用率正常,已经降到23.03
    SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;

    FILE_TYPE    PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
    ------------ ------------------ ------------------------- ---------------
    CONTROLFILE                 .13                         0               1
    ONLINELOG                  2.93                         0               3
    ARCHIVELOG                23.03                         0              36
    BACKUPPIECE                   0                         0               0
    IMAGECOPY                     0                         0               0
    FLASHBACKLOG                  0                         0               0

       

       

       

       

    其它有用的Command:
    ----------------------------------

    如果archive log模式下不能正常startup,则先恢复成noarchive log,startup成功后,再shutdown;
    shutdown immediate;
    startup mount;
    alter database noarchivelog;
    alter database open;
    shutdown immediate;

    再次startuparchive log模式
    shutdown immediate;
    startup mount;
    show parameter log_archive_dest;  
    alter database archivelog;
    archive log list;                 
    alter database open;

    如果还不行,则删除一些archlog log
    SQL> select group#,sequence# from v$log;

        GROUP# SEQUENCE#
    ---------- ----------
             1         62
             3         64
             2         63

    原来是日志组一的一个日志不能归档
    SQL> alter database clear unarchived logfile group 1;
    alter database open;

    最后,也可以指定位置Arch Log, 请按照如下配置
    select name from v$datafile;
    alter system set log_archive_dest='/opt/app/oracle/oradata/usagedb/arch' scope=spfile

    或者修改大小
    SQL> alter system set db_recovery_file_dest_size=3G scope=both;

  • 相关阅读:
    hdu 5646 DZY Loves Partition
    bzoj 1001 狼抓兔子 平面图最小割
    poj 1815 Friendship 最小割 拆点 输出字典序
    spoj 1693 Coconuts 最小割 二者取其一式
    hdu 5643 King's Game 约瑟夫环变形
    约瑟夫环问题
    hdu 5642 King's Order
    CodeForces 631C Report
    1039: C语言程序设计教程(第三版)课后习题9.4
    1043: C语言程序设计教程(第三版)课后习题10.1
  • 原文地址:https://www.cnblogs.com/flyback/p/6209857.html
Copyright © 2011-2022 走看看