一台有年头儿的Oracle服务器出故障了,业务人员给出的截图如下:
从截图上看是 ORA-00257 错误,即归档日志满。
ORA-00257: archiver error. Connect internal only, until freed
Oracle 清归档比较常见,但在这么老的 Oracle 9i 上清归档还是比较少见的。我尝试先连上服务器后台查看一下是什么状态。在使用以下命令时报错:
c:> sqlplus as sysdba
提示命令不对,估计是早期的 Oracle 问题。重新修改命令为加引号的版本不再报错:
c:> sqlplus "/ as sysdba"
查询归档日志位置后发现,归档位置在 D 盘:
c:> archive log list
此时准备使用 rman 查看归档文件相关的信息,发现 rman 卡在登录过程,无法正常进入 rman :
c:> rman target
估计同样是由于 D 盘满的原因导致的,于是准备先腾挪点空间出来试试。将部分归档日志拷走后,rman 可以正常进入。
此时再次执行 rman 命令可以正常进入:
c:> rman target
执行 list 命令查看归档文件位置:
RMAN> list copy;
后面就是正常的清归档过程了:
RMAN> crosscheck archivelog all;
RMAN> delete archivelog until time 'SYSDAET-60';
在归档文件被删除的同时,D 盘可用空间也逐渐开始变大,此时 Oracle 业务也开始恢复。
全文完。
如果转发本文,文末务必注明:“转自微信公众号:生有可恋”。