zoukankan      html  css  js  c++  java
  • 【转】ORA-00257:archiver error. 错误的处理方法

         出现这个问题的原因一般是日志满了。这里以用户tt为例:

    一、用sys用户登录

         sqlplus sys/pass@tt as sysdba

    二、看看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

    三、一般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

    四、检查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 

    五、计算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     

    六、找到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

       

        上述结果告诉我们,归档位置用的是默认值,放在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维护控制文件,否则空间显示仍然不释放。
        ---------------------------------------------------------------------------------------

    七、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) 

    八、检查一些无用的archivelog

        RMAN> crosscheck archivelog all; 

    九、删除过期的归档

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

     

    十、再次查询,发现使用率正常,已经降到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

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

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

          3.如果还不行,则删除一些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;

         4.最后,也可以指定位置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;

    参考文档

        转载文档: http://www.2cto.com/database/201109/104615.html

  • 相关阅读:
    MySQL Execution Plan--合理利用隐式的业务逻辑
    MySQL Table--MySQL外键
    MySQL倒序索引测试2
    MySQL倒序索引测试1
    CCNA-3.硬件介质
    CCNA-2.OSI 7层网络模型
    CCNA-1.认识网络
    windows本地安装Oracle数据库
    扫码登录实现原理
    phpunit 单元测试
  • 原文地址:https://www.cnblogs.com/gudi/p/7227561.html
Copyright © 2011-2022 走看看