Oracle的archive log归档日志满了之后会报下列错误:
ORA-00257: archiver error. Connect internal only, until freed
解决办法:
1、打开cmd登录sqlplus
2、找到日志recovery目录
SQL> show parameter recover;
3、到recovery目录下删除不要的归档日志
4、在cmd下进入RMAN,用RMAN维护控制文件,否则空间显示仍然不释放
rman target sys/pass
5、检查一些无用的archivelog
RMAN> crosscheck archivelog all;
6、删除所有过期的归档
--删除所有归档日志
RMAN> delete expired archivelog all;
--删除截止昨天的所有归档日志
RMAN> delete archivelog until time 'sysdate-1';
相关查询语句
--查看当前日志模式
SQL> archive log list;
--检查flash recovery area的使用情况
SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;
--计算flash recovery area已经占用的空间
SQL> select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage;
--查看recovery文件路径
SQL> show parameter recover;
归档与非归档模式之间的切换
SQL> shutdown immediate; SQL> startup mount; --非归档模式 SQL> alter database noarchivelog; --归档模式 SQL> alter database archivelog;