删除归档日志_ORA-00257:archiver error.Connect internal only, until freed的问题
ORA-00257: archiver error. Connect internal only, until freed
此问题属于归档日志满了。
解决办法:www.2cto.com
SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
------------ ------------------ ------------------------- ---------------
CONTROLFILE 0 0 0
ONLINELOG 0 0 0
ARCHIVELOG 99.9 0 3
BACKUPPIECE 0 0 0
IMAGECOPY 0 0 0
FLASHBACKLOG 0 0 0
可以看出,ARCHIVELOG日志已经达到99.9%了。要把它清除掉!
========= 删除归档日志 =========
第一步:首先到oracle\product\10.2.0\db_1\flash_recovery_area\ORCL\ARCHIVELOG\
先备份里面文件(将文件copy到你想备份的地方,如果不想备份直接删掉),然后直接删除 物理数据
如果找不到该文件,输入下面命令:
SQL> sqlplus / as sysdba;
SQL> show parameter db_recovery_file_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string D:\oracle\product\10.2.0\db_1/
flash_recovery_area
db_recovery_file_dest_size big integer 3G
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string D:\oracle\product\10.2.0\db_1/
flash_recovery_area
db_recovery_file_dest_size big integer 3G
红色地址就是你本机日志的地址。
第二步:通过 rman 删除:
首先要登录rman
C:\Users\Administrator>set oracle_sid=orcl
C:\Users\Administrator>rman target /
Recovery Manager: Release 11.1.0.7.0 - Production on Mon Sep 3 11:47:06 2012
Copyright (c) 1982, 2007,
Oracle. All rights reserved.
RMAN> connect target
sys/sys_passwd
执行如下命令:
(1) crosscheck backup;
(2) delete obsolete;
(3) delete expired backup;
(4) crosscheck archivelog all;
(5) delete expired archivelog all;
(6) host;
这样就解决了这个问题。
但是为了以后不在出现下面问题,还要增大日志大小或者让其自动变大。
alter system set db_recovery_file_dest_size=8G;