Oracle在小机上运行的进程调度BUG分析与解决
需积分: 11 86 浏览量
更新于2024-07-19
收藏 280KB DOC 举报
"小机上运行ORACLE需要注意的进程调度BUG"
本文主要讨论了一个在小型服务器(小机)上运行ORACLE数据库时遇到的问题,即应用程序间歇性局部挂起,表现为插入单条记录等操作长时间无法完成,疑似存在死锁现象。作者小y通过对系统环境、等待事件和SQL语句的分析,最终定位了问题的根本原因是由于“undosegment extension”等待事件导致的。
首先,问题发生在运行HPUX IA64 B.11.31操作系统的服务器上,搭载的是ORACLE 10.2.0.5单实例数据库。在异常时刻,有两个会话等待行锁,而另一个会话SID=315则在等待“undosegment extension”,且已等待超过70384秒。
行锁等待的分析显示,SID=285和290的两个会话被SID=315阻塞,它们都在等待行锁解锁。进一步调查发现,SID=315的会话本身也在等待资源,即“undosegment extension”,这个等待事件没有明显的阻塞者。这个会话正在执行的SQL语句是插入操作,涉及多个列的值。
“undosegment extension”等待事件表明数据库正在等待回滚段扩展以完成操作。在ORACLE中,回滚段用于存储事务的前镜像,以便在回滚或恢复时使用。当执行插入、更新或删除等操作时,如果回滚段空间不足,系统就需要扩展回滚段。扩展通常由前台进程触发,然后由后台的SMON(System Monitor)进程执行。在这个案例中,扩展过程似乎耗时过长,影响了其他操作的正常进行。
为了检查回滚段的使用情况,可以查询UNDO表空间的信息。当前,UNDO表空间有1个文件,大小为27750M,但只有8M的活动空间,未超过undoretention的时间限制。这可能意味着回滚段扩展的操作出现了问题,导致了长时间的等待。
解决这个问题的关键在于优化回滚段的管理和分配,确保其能够快速响应扩展需求,避免对其他并发操作造成长时间阻塞。可能的解决方案包括增大UNDO表空间,调整回滚段大小,或者优化事务管理,减少对回滚段的需求。同时,检查系统的进程调度策略,确认是否因为小机上的特定设置导致了扩展操作的延迟。此外,监控和调整数据库的undo retention政策也能帮助减轻类似问题的发生。
2021-12-23 上传
652 浏览量
644 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
DBAXIAOy
- 粉丝: 57
- 资源: 9
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜