ORA-00257: archiver error. Connect internal only, until freed
登录oracle显示上面的错误
以下是公司大师给出的步骤,谨记录备用:
1、手工删除归档日志的文件夹(按日期那种)
2、在oracle用户下以rman target /
3、crosscheck archivelog all;
4、delete expired archivelog all;-- 这里删除了一些与第1步中删除的文件日期匹配的文件,目前研究还不深入,不清楚它们之间具体的联系
5、exit;
--如果发现归档日志的空间快使用完了,而没有出现00257的错误,只做到这一步就够了,不用再进行下面的步骤了
--查询归档日志使用的sql:select * from v$flash_recovery_area_usage;
6、接下来是在sqlplus中的操作:
RA-00257: archiver error. Connect internal only, until freed
的错误,之后怎么连接都连接不上。
之前也见过这种问题,想起可能是归档日志满了,%oracle_home%\10.1.0\flash_recovery_area\下面看了一下,大概有5个G的日志。
想应该是归档日志太大了,当时又是了几下,还是登录不上数据库。
看了些网上的资料,有用的较少。
本次的实验如下:
1)我把数据库的“tnsname”文件的共享模式改成专有模式。
2)重新启动了一下监听和服务
3)再次用sys用户登录
这次奇迹般的登录进去了。
sqlplus sys/password@oracle as sysdba。 sys是用户名,oracle是数据库名字
后面的就是清除归档文件了。
登录oracle显示上面的错误
以下是公司大师给出的步骤,谨记录备用:
1、手工删除归档日志的文件夹(按日期那种)
2、在oracle用户下以rman target /
3、crosscheck archivelog all;
4、delete expired archivelog all;-- 这里删除了一些与第1步中删除的文件日期匹配的文件,目前研究还不深入,不清楚它们之间具体的联系
5、exit;
--如果发现归档日志的空间快使用完了,而没有出现00257的错误,只做到这一步就够了,不用再进行下面的步骤了
--查询归档日志使用的sql:select * from v$flash_recovery_area_usage;
6、接下来是在sqlplus中的操作:
- SQL> conn / as sysdba
- Connected.
- SQL> shutdown immediate
- ORA-01013: user requested cancel of current operation
- //一直停不掉,就ctl+c中断了
- //再试一次
- SQL> shutdown immediate
- ORA-01013: user requested cancel of current operation
- //还是停不掉,再次ctl+c中断
- //强行停止吧
- SQL> shutdown abort
- ORACLE instance shut down.
- //再次启动
- SQL> startup
- ORACLE instance started.
- Total System Global Area 1610612736 bytes
- Fixed Size 1267740 bytes
- Variable Size 452986852 bytes
- Database Buffers 1140850688 bytes
- Redo Buffers 15507456 bytes
- Database mounted.
- ORA-16014: log 2 sequence# 101 not archived, no available destinations
- ORA-00312: online log 2 thread 1: '/oracle/oradata/orcl/redo02.log'
- ORA-00312: online log 2 thread 1:
- '/backup/oracle_archive/redo_data/redo2/redo021.log'
- //数据库没有打开,报上面的错误
- SQL> show parameter db_recovery_file_dest_size;
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- db_recovery_file_dest_size big integer 4G
- SQL> select group#,sequence#,archived,status from v$log;
- GROUP# SEQUENCE# ARC STATUS
- ---------- ---------- --- ----------------
- 1 103 NO CURRENT
- 3 102 NO INACTIVE
- 2 101 NO INACTIVE
- //搞一搞SEQUENCE号最小的一个
- SQL> alter database clear logfile group 2;
- alter database clear logfile group 2
- *
- ERROR at line 1:
- ORA-00350: log 2 of instance orcl (thread 1) needs to be archived
- ORA-00312: online log 2 thread 1: '/oracle/oradata/orcl/redo02.log'
- ORA-00312: online log 2 thread 1:
- '/backup/oracle_archive/redo_data/redo2/redo021.log'
- SQL> alter database clear unarchived logfile group 2;
- Database altered.
- SQL> alter database open;
- Database altered.