0%

ORA-00257: 归档程序错误。只有在解析完成后才以 AS SYSDBA 方式连接



写在前面:

如本文描述有错误,希望读到这篇文章的您能够提出批评指正。 联系方式:172310978@qq.com

参考文章:

  1. https://blog.csdn.net/Darren_tan/article/details/108421033

1. 问题分析

今天开发人员报公司测试环境昨天能正常连接数据库,现在不能连接报“ORA-00257: 归档程序错误。只有在解析完成后才以 AS SYSDBA
方式连接”错误提示。我接到问题后,排查分析如下:

一、怀疑空间不足

1、检查数据库服务器磁盘空间存储情况

通过查看判断,空间存储虽然不多,但在测试场景下是足够用的。此点可以排除在外,继续往下排查。

二、检查空间归档相关

1、检查空间redo log\recovery file\flash_recovery_area_usage使用情况

select from v$log;
select
from v$recovery_file_dest;
select * from v$flash_recovery_area_usage;

从中发现ARCHIVED LOG、/u01/app/oracle/fast_recovery_area分别使用率达到90%

2、手工切换日志

alter system switch logfile;

运行手工切换命令,发现很长时间未有反馈。后来想到DB_RECOVERY_FILE_DEST_SIZE太少会导致日志文件不匹配。

3、排查DB_RECOVERY_FILE_DEST_SIZE大小

检查发现此参数当时只配了3G,文件存储空间还有35GB。

上述归档日志、恢复空间使用率过高,因此需要调整扩容该参数由原来3GB->15GB。

执行: alter system set DB_RECOVERY_FILE_DEST_SIZE=15g;

4、执行完成后检查

检查第1点操作,发现

归档日志使用率降低到22.43以下。

使用率和分配的空间存储大小恢复合理了。

5、验证登录是否正常

从登录显示已恢复正常了,归档日志解析恢复正常流转了。

小结:恢复区大小设置与业务高峰期产生的归档日志信息需要相匹配,设置过小容易导致空间不够成为瓶颈。