本帖最后由 zqm 于 2020-4-12 20:19 编辑
报错信息: ORA-00257: archiver error. Connect internal only, until freed 根据网上提供的方法进行查看: 发现根本没有信息返回,应该是未开启闪回日志,正好想起前一阶段数据库才开启了归档日志,因此怀疑是归档日志写满的问题。归档日志信息可以在v$archived_log表中查询到。 因为时间比较紧急,没空给我进行慢慢的排查解决了(主要是我太菜),直接求助公司大神吧。具体解决步骤如下:
1、远程登录数据库任意节点(现场为rac集群),切换到oracle账号通过lsnrctl status命令查看监听到的服务。
2、到grid用户下,分别执行以下命令,进入asmcmd命令行 su – grid export ORACLE_SID=+ASM1 asmcmd
这里需要注意一下,su – grid 而不是su grid之前执行的时候就想当然的弄错了,结果执行命令的时候一直报错。
其简单区别如下: su - grid 要给grid 重新配置环境变量 su grid 使用切换到grid 用户之前的那个用户的环境变量。
执行lsdg命令查看磁盘组使用情况: 可以查看磁盘组总量,以及可使用量(我这里是删除部分日志后的截图),查看其可用空间是否满足。
3、如果需要删除归档日志,需要定位到归档日志目录,查看归档日志情况。 cd +DATADG/orcl/archivelog ls
4、根据自己需要,删除执行的归档日志即可。例如,删除2020年2月份的归档日志可以使用rm -rf 2020_02*命令。
优化建议: 对于出现这种情况,归根结底是磁盘无法放下过多的归档日志,可以考虑: 1、挂接单独的磁盘组存储归档日志,并同步进行备份(推荐)。 2、对当前磁盘组进行扩容。 3、定期进行人工检查,删除部分归档日志以保证磁盘空间保持有剩余状态,或者设置自动删除较早的归档日志。
|