【Oracle DB故障分享】分享一次由于SGA设置太小导致的DP备份失败

  1. List item

今天给客户做Oracle例行数据库健康巡检,过程中检出一些备份异常,分享如下。

排查问题:

  1. 打开DP备份软件,随即弹出如下提示:
  2. 登录DP,查看备份情况:发现从10/6开始,DP备份就没有完全成功,部分文件备份失败:

    Oracle Recovery Backup Catalog "Oracle8" 一直备份失败:
  3. 查看DP日志:

    138:742\] 备份规范 "Oracle8 mcsreportdb_arc_del"、备份组 "Default" 的 备份 会话 "2024/10/12-7" 存在错误; 说明:在备份、复制或合并会话期间检测到错误。 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6e83b0f709774e439b9b537c5f0629b1.png) 10/6以来持续报错。 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/0d16182aa4574a17aaf736617fba0e7b.png) 进一步查看log发现是由于内存不够,导致进程DW00不能正常启动,从而Oracle Export utility failed:

ORA-39029: worker 1 with process name "DW00" prematurely terminated

ORA-31671: Worker process DW00 had an unhandled exception.

ORA-04031: unable to allocate 13224 bytes of shared memory ("shared pool","unknown object","KTSL subheap","ktsl_load_disp-2")

问题大概锁定:SGA分配太小。

  1. 登录DB服务器,进一步确认:

由于是利用backup catalog DB管理数据库备份,所以需要进入catalog目录:

egrep -i ORA- log.xml:发现满屏unable to allocate 13224 bytes of shared memory

tail -n 2000 log.xml | grep ORA-04031:

  1. 利用adrci工具检查:

解决问题:

  1. 查看catalog DB所在服务器的内存,发现很足:
  2. 登录catalog DB:查看SGA:

sqlplus / as sysdba

show parameter instance

show parameter mem

show parameter sga

128G内存的物理机尽然只给sga 5G啊啊啊啊啊,崩溃了有木有。

  1. 调整SGA:注意需重启DB才能生效。
  2. 确认问题得以解决:再打开DP软件已经没有了日志提示,备份也正常了。问题得以解决。

总结:

  1. SGA大小设置不合理是常见的DB故障;
  2. DB整个系统一定要及时定期做健康巡检,包括实例、存储、rac/asm,备份等全系统。

码字不易,宝贵经验分享不易,请各位支持原创,转载注明出处,多多关注作者,后续不定期分享DB核心知识和排障案例及经验、性能调优等。

相关推荐
仙柒4153 小时前
Docker原理
运维·docker·容器
2301_781571427 小时前
Golang格式化输出占位符都有什么_Golang fmt占位符教程【通俗】
jvm·数据库·python
养肥胖虎7 小时前
RAG学习笔记(3):区分数据库检索与RAG的使用场景
数据库·ai·rag
茉莉玫瑰花茶7 小时前
工作流的常见模式 [ 1 ]
java·服务器·前端
_ku_ku_7 小时前
数据库系统原理 · 数据库应用开发 · 自学总结
数据库
米高梅狮子8 小时前
第2章 docker容器
运维·docker·云原生·容器·架构·kubernetes·自动化
No8g攻城狮8 小时前
【人大金仓】wsl2+ubuntu22.04安装人大金仓数据库V9
java·数据库·spring boot·非关系型数据库
山峰哥8 小时前
SQL慢查询调优实战:从全表扫描到索引覆盖的完整复盘
前端·数据库·sql·性能优化
闵孚龙8 小时前
Claude Code Ultraplan 远程多代理规划全解析:AI Agent、CCR远程容器、异步规划、状态机、计划传送与企业级自动化治理
运维·人工智能·自动化
代码中介商8 小时前
Redis入门:5大数据类型全解析
数据库·redis·缓存