事情起因
在巡检的时候发现了这个问题
ERROR:
ORA-00257: archiver error. Connect internal only, until freed.
查看对应的数据库,发现是一个已经无业务承载的老11g
分析过程
从报错来看,说是归档盘满了,但应该会有负责备份的人来定时备份清理归档。
进入老库查看asm alert日志
接着查看磁盘组信息
发现归档路径是FRA磁盘组,但是查询后只剩下ORADATA磁盘组
确认是归档盘掉盘导致。
处理办法
正常来说如果是生产中在用的库,再确认好硬件恢复正常后,online,mount即可。
因为是无业务承载的老库,所以决定停库。
在停库前需要先重新指定归档路径,不然会出现问题。
查看log_archive_dest_1的原始路径配置
show parameter log_archive_dest_1
将归档路径修改成数据盘
alter system set log_archive_dest_1='location=+ORADATA valid_for=(all_logfiles,all_roles) db_unique_name=xxx' sid='*';
停库前检查
lsnrctl status
srvctl stop listener
杀掉业务等连接会话
ps -ef|grep LOCAL=NO|grep -v grep|cut -c 9-15|xargs kill -9
ps -ef|grep ora_j|grep -v grep|awk '{print $2}'|xargs kill -9
停库
srvctl stop database -d xxx
srvctl status database -d xxx