ORA-19815: WARNING: db_recovery_file_dest_size闪回区爆满问题处理
问题描述:有一个数据库起不来了,根据层层排查,是因为归档设置在了闪回区,文件的大小已经超出了闪回区限制。最后直接给数据库拖挂
环境:windows server2012 , oracle 19c,单机
1.sqlplus 连接到空闲实例,发现数据库已经挂掉,直接startup 数据,只能到mount状态
2.hang住一会开始报错
ORA-16038: log 2 sequence# 1325 cannot be archived ORA-19809: limit exceeded for recovery files ORA-00312: online log 2 thread 1: 'O:\ORACLE_DATA\SYNVNACDB\REDOo2.LOG' ORA-00312: online log 2 thread 1: 'F:\FAST_RECOVERY_AREA\SYNVNACDB\REDOo2.LOG'
3. 日志组log 2 ,序列号为sequence #1325 号日志不能被归档,后面是有查到原因是因为归档在闪回区,这里无法被归档,前期我们还没有查到是这个原因,只能清理日志组,来处理当前不能被归档的日志
这个时候数据库是可以启动到mount状态的,在mount状态下操作
SQL> startup mount;
查看v$log日志视图
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 1327 YES INACTIVE
2 1325 NO CURRENT
3 1326 YES INACTIVE
可以知道,该组1是非当前状态,而且已经归档。
3、先清理没有被归档的日志,这里清理了有问题的log2,所幸清理完数据库可以open了
SQL>alter database clear unarchived logfile group 2;
如果不成功过,用CLEAR命令重建该日志文件
SQL>alter database clear logfile group 3;
4、打开数据库,重新备份数据库
SQL>alter database open;
5、重启数据库来验证是否存在问题
SQL>shutdown immediate
SQL>startup
4.重启完数据库可以正常起来了,但是在切换归档的时候又出现了报错,切换归档时一直卡着,到后台看alert日志发现了如下报错
ORA-19815: WARNING: db_recovery_file_dest_size of 73014444032 bytes is 100.00% used
发现其最终原因还是归档设置在了闪回区内,闪回区目前大小为70G,调整方法为可以在闪回区内删除一下旧的归档,或者在线扩大一下闪回区的大小,我们盘符的空间充足,两种方式同步进行
解决方式:
alter system set db_recovery_file_dest_size=100G scope=both;
手动删除了一些归档文件,去切换归档还是没有成功,应该是数据库内存还是认为空间不够。在线扩充闪回,扩充完成,归档就立马切换成功
5.全部做完一定要做一次数据库的全备,如果归档设置在闪回区内,一定要加强对闪回区的空间监控。
查看闪回区的使用情况
select file_type, percent_space_used as used,percent_space_reclaimable as reclaimable, number_of_files as "number" from v$flash_recovery_area_usage;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署