前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Oracle使用SQL分析锁

Oracle使用SQL分析锁

作者头像
星哥玩云
发布2022-08-18 16:36:39
发布2022-08-18 16:36:39
4070
举报
文章被收录于专栏:开源部署开源部署

      可以利用SQL脚本检查实例中当前锁定情况。在数据库中第一次执行任何与锁定有关的SQL脚本之前,都需要首先运行catblock.sql脚本,该脚本位于$Oracle_HOME/rdbms/admin目录下。运行此脚本将创建几个与锁定有关的重要视图,如DBA_LOCKS、DBA_WAITERS、DBA_BLOCKERS等。

Oracle提供一个名为utllockt.sql的脚本,它会给出一个树形结构的锁等待图,显示持有影响其他会话的锁的会话。使用此脚本,可以看出一个会话正在等待什么锁,哪个会话持有这些锁。该脚本位于$ORACLE_HOME/rdbms/admin目录下。下面是执行utllockt.sql脚本的一个示例:

SQL> @$ORACLE_HOME/rdbmsa/admin/utllockt.sql Waiting session Type Mode requested Mode Held    Lock Id1 --------------- ---- -------------- ------------- --------- 682            None None          None          0  363            TX  Share (S)      Exclusive (X)

      utllockt.sql脚本显示系统中等待锁的会话以及他们等待的锁,输出为树形结构。如果一个会话的ID紧跟在另一个会话的下方,则表示他正在等待该会话。页面最左边显示的会话ID是所有会话都在等待的会话。

      在上面的示例中,最左边的会话ID (682)为会话363正在等待的会话,每个会话右边显示的信息给出它所等待的锁信息。虽然会话682持有一个锁,但在锁信息列中并未显示任何信息(None),因为它不等待任何锁。而会话363显示它请求一个共享(S)锁,并且正等待会话682释放表行上的独占(X)锁。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档