某日,登录oracle数据库,得到如下错误提示:


解决一例oracle archiver error_oracle

使用sys 用户登录

查看arciv log位置

   1: $ sqlplus /"as sysdba"
   2:  
   3: SQL*Plus: Release 10.2.0.4.0 - Production on Mon Jun 20 16:47:51 2011
   4:  
   5: Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.
   6:  
   7:  
   8: Connected to:
   9: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
  10: With the Partitioning, OLAP, Data Mining and Real Application Testing options
  11:  
  12: SQL> show parameter log_archive_dest;
  13:  
  14: NAME                                 TYPE        VALUE
  15: ------------------------------------ ----------- ------------------------------
  16: log_archive_dest                     string
  17: log_archive_dest_1                   string
  18: log_archive_dest_10                  string
  19: log_archive_dest_2                   string
  20: log_archive_dest_3                   string
  21: log_archive_dest_4                   string
  22: log_archive_dest_5                   string
  23: log_archive_dest_6                   string
  24: log_archive_dest_7                   string
  25: log_archive_dest_8                   string
  26: log_archive_dest_9                   string
  27:  
  28: NAME                                 TYPE        VALUE
  29: ------------------------------------ ----------- ------------------------------
  30: log_archive_dest_state_1             string      enable
  31: log_archive_dest_state_10            string      enable
  32: log_archive_dest_state_2             string      enable
  33: log_archive_dest_state_3             string      enable
  34: log_archive_dest_state_4             string      enable
  35: log_archive_dest_state_5             string      enable
  36: log_archive_dest_state_6             string      enable
  37: log_archive_dest_state_7             string      enable
  38: log_archive_dest_state_8             string      enable
  39: log_archive_dest_state_9             string      enable
  40: SQL> 

 

 

一般VALUE为空时,可以用archive log list;检查一下归档目录和log sequence

   1: SQL> archive log list;
   2: Database log mode              Archive Mode
   3: Automatic archival             Enabled
   4: Archive destination            USE_DB_RECOVERY_FILE_DEST
   5: Oldest online log sequence     125
   6: Next log sequence to archive   125
   7: Current log sequence      

检查flash recovery area的使用情况

   1: SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;
   2:  
   3: FILE_TYPE    PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
   4: ------------ ------------------ ------------------------- ---------------
   5: CONTROLFILE                   0                         0               0
   6: ONLINELOG                     0                         0               0
   7: ARCHIVELOG                99.72                         0             123
   8: BACKUPPIECE                   0                         0               0
   9: IMAGECOPY                     0                         0               0
  10: FLASHBACKLOG                  0                         0               0
  11:  
  12: 6 rows selected.

可以看到archivelog已经占用到99.72%了.

计算flash recovery area已经占用的空间

   1:  
   2: SQL> select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage;
   3:  
   4: SUM(PERCENT_SPACE_USED)*3/100
   5: -----------------------------
   6:                        2.9916

找到recovery目录, show parameter recover

   1:  
   2: SQL> show parameter recover;
   3:  
   4: NAME                                 TYPE        VALUE
   5: ------------------------------------ ----------- ------------------------------
   6: db_recovery_file_dest                string      /oracle/flash_recovery_area
   7: db_recovery_file_dest_size           big integer 5G
   8: recovery_parallelism                 integer     0

上述结果告诉我们,归档位置用的是默认值,放在flash_recovery_area下(db_recovery_file_dest目录=/oracle/flash_recovery_area)

   1: cd /oracle/flash_recovery_area/

删除一些旧的arc文件.

 

 

   1: $ pwd
   2: /oracle/flash_recovery_area/JCT/archivelog
   3: $find . -mtime +30|xargs rm -rf

 

删除归档日志后,还需要使用RMAN维护控制文件.

   1: $ rman target sys/sys
   2:  
   3: Recovery Manager: Release 10.2.0.4.0 - Production on Tue Jun 21 16:14:17 2011
   4:  
   5: Copyright (c) 1982, 2007, Oracle.  All rights reserved.
   6:  
   7: connected to target database: JCT (DBID=786899877)
   8: -------检查无用归档文件---------
   9: RMAN> crosscheck archivelog all;  
  10: ------删除过期的归档------------
  11: RMAN> delete expired archivelog all;

再看使用率 已经下来了.

   1: sql>select * from V$FLASH_RECOVERY_AREA_USAGE;
   2: FILE_TYPE    PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
   3: ------------ ------------------ ------------------------- ---------------
   4: CONTROLFILE                   0                         0               0
   5: ONLINELOG                     0                         0               0
   6: ARCHIVELOG                38.94                         0              48
   7: BACKUPPIECE                   0                         0               0
   8: IMAGECOPY                     0                         0               0
   9: FLASHBACKLOG                  0                         0               0
  10:  
  11: 6 rows selected.

再次登录,就可以登录了.

 

解决一例oracle archiver error_archiver_02

 

 

 

 

多吃东西多喝水,

少玩游戏少睡觉! -------

望月飞鱼(珏石头)