背景:多个用户同时做测试数据,有时候突然Oracle系统就崩溃了,然后报一个 ORA-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是数据库名字 后面的就是清除归档文件了。 - 关掉cmd窗口,重新打开后用rman target sys/password@ims 命令进入RMAN命令行后执行
- RMAN> crosscheck archivelog all;
- RMAN> delete expired archivelog all; 就可以删除所有过期的日志文档并释放空间
复制代码或者删除指定时间之前的archivelog: - DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';(指定删除7天前的归档日志)
- 然后再做测试数据,问题就没有了。
复制代码PS:有人说直接删除物理日志文档释放空间不行,实验证明直接删除物理日志文档释放空间也没问题。
|