ORA-00257: archiver error. Connect internal only

今天一上班,登陆测试库,出现

ORA-00257: archiver error. Connect internal only, until freed.

************************************************************************
Thu Jun 24 10:26:40 2010
Errors in file /u01/app/oracle/admin/orcl/bdump/orcl_arc1_5643.trc:
ORA-19815: WARNING: db_recovery_file_dest_size of 2147483648 bytes is 100.00% us
ed, and has 0 remaining bytes available.
Thu Jun 24 10:26:40 2010
************************************************************************
You have following choices to free up space from flash 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 的空间满了。

执行rman> delete archivelog until time 'sysdate-1' ;

删除不需要的archive log文件。一切OK。

archive log 日志已满
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;

再次startup以archive 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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值