今天数据库登陆时,突然报了ORA-00257: archiver error. Connect internal only, until freed 这个错误,
网上查了,原来是日志满了,网上有很多文章针对这个处理办法,有些太复杂,按今天实际解决步骤理了下留档
1.sqlplus sys/password@ecmr as sysdba 其中ecmr为本地oracle配置的对应数据库名
2.SQL> show parameter log_archive_dest;
可以看到archive日志存放物理路径
3.SQL> archive log list;
查看log sequence,看到时候删到哪一个为止
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.用数据库服务器的用户名密码登陆到服务器上进行物理删除(此处是操作系统命令,因为本次是找主机部协作删除,故不做详述。)
注意:
在删除归档日志后,必须用RMAN维护控制文件,否则空间显示仍然不释放。因此...
5.关闭原来的sql控制台,重新打开一个,然后执行命令 rman target sys/password@ecmr
6.rman>crosscheck archivelog all;
(这步使检查过期归档,刚才把物理删了,系统就把这些定为过期了)
7.rman>delete ecpired archivelog all;
(这步是控制文件里删除所有过期日志,并释放空间)
8.ok,问题解决了,用toad成功连接数据库