ORA-00257: archiver error
1、问题描述
远程连接定义:通过oracle net service连接过来的都叫远程连接
比如plsql developer连接、sqlplus 用户名/密码@ORACLE_NET
[dbadmin@test archivelog]$ sqlplus zxx/zxx@orcl
SQL*Plus: Release 10.2.0.4.0 - Production on Tue Dec 2 14:06:32 2014
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
ERROR:
ORA-00257: archiver error. Connect internal only, until freed.


2、rman查看归档路径
10和11g默认归档路径不一样,但是不管怎么样都可以通过
rman查询到归档路径
RMAN> crosscheck archivelog all;


3、查看归档目录存储上限
[root@test archivelog]# pwd
/home/dbadmin/oracle/product/10.2.0/db_1/flash_recovery_area/ORCL/archivelog
[root@test archivelog]# du -sh ./ 查看当前目录大小
2.0G ./
SQL> show parameter db_recovery_file_dest_size
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest_size big integer 2G
可以发现,数据库设置归档上限为2G,而通过du -sh查看物理归档路径已经使用2G,在这里就可以说明归档路径已经用满了

4、查看归档路径使用情况
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.34 0 46
BACKUPPIECE .34 0 1
IMAGECOPY 0 0 0
FLASHBACKLOG 0 0 0
这里可以直接查看归档路径使用情况,发现使用已经达到99.34%,通过这种方法也可以

5、rm -rf 归档路径中的归档
如果不重要就全部删除

6、rman 删除控制文件中失效归档
上一步骤已经物理删除了所有归档,那么存在控制文件中的归档信息已经失效了,需要删除,删除之前需要crosscheck一遍。
rman>crosscheck archivelog all;rman>delete expired archivelog all; expired 失效的

7、检查连接是否正常
[dbadmin@test archivelog]$ sqlplus zxx/zxx@orcl 远程连接
SQL*Plus: Release 10.2.0.4.0 - Production on Tue Dec 2 14:09:36 2014
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

