文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

ORA-12829: Deadlock – itls occupied by siblings at block string of file string ORACLE 报错 故障修复

2023-11-05 06:59

关注

文档解释

ORA-12829: Deadlock – itls occupied by siblings at block string of file string

Cause: parallel statement failed because all itls in the current block are occupied by siblings of the same transaction.

Action: increase MAXTRANS of the block or reduce the degree of parallelism for the statement. Reexecute the statement. Report suspicious events in trace file to Oracle Support Services if error persists.

ORA-12829 是一个典型的死锁错误,该错误表明存在以下问题:两个或多个相关进程(也称为“兄弟进程”)在相互锁定同一个数据块,而这种形式的死锁不可解决。

官方解释

这是一个相当普遍的情况,其中在处理大量用户请求时,大量交叉会话将向同一个块发送Lookup,而由于乐观数据锁机制,另一个会话已经锁定了该块,从而造成死锁。

正常处理方法及步骤

步骤 1:用户应该立即停止所有运行的性能和负载测试,以便停止可能导致最大垃圾数量的负载。

步骤 2:从所有会话中终止任何正在等待或在锁定块时保持会话活动状态的SQL语句。

步骤 3:实施一些索引和排序改进,以便避免一个会话影响另一个会话的数据文件。

步骤 4:检查数据库的工作负载和数据库结构,找出导致另一个会话产生死锁的原因。

步骤 5:增加空间,减少用户可能存在的压力,必要时根据数据库的规范加大数据库的事务会话数。

步骤 6:针对具有竞争资源的具体环境,应注意改编已存在的应用程序,以避免提交事务以较长时间为基础的可能死锁。

步骤 7:对于导致另一个会话产生死锁的事务,应确保它可以在最短的时间内完成其工作,以减少可能的可重复性问题。

步骤 8:考虑影响该资源的其他活动,并考虑实施不同的负载,以减少另一个会话可能影响该资源的能力。

步骤 9:考虑比 Oracle 更可靠但不一定比正常死锁事务更好的数据库解决方案,例如重新设计数据库 de Normaliser,以避免另一个会话访问要锁定的资源。

步骤 10:最后,考虑在不考虑其他步骤的情况下使用 Oracle 10g 中的 AUTO_DML_LOCK 参数,该参数将阻止由外部应用程序或控制表达式引起的外部死锁。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯