表oracle已锁定

时间:2014-09-22 16:07:24

标签: database oracle database-design database-administration database-locking

我不是一个dba,但是我遇到了一个数据库的问题,因为数据库锁定了表并导致了一个很大的混乱。我从oracle dba那里得到了一些信息,如果有人能帮助我找到问题的关键或指出我需要做什么,我在这里提供更多信息:

enter image description here

enter image description here

我有来自oracle的重要报告,但我不理解95%的数据。

1 个答案:

答案 0 :(得分:2)

这看起来像是常规的行级锁定。一行只能由一个用户修改。数据字典包含有关谁被阻止以及谁在阻止的信息:

--Who's blocking who?
select
    blocked_sql.sql_id blocked_sql_id
    ,blocked_sql.sql_text blocked_sql_text
    ,blocked_session.username blocked_username
    ,blocking_sql.sql_id blocking_sql_id
    ,blocking_sql.sql_text blocking_sql_text
    ,blocking_session.username blocking_username
from gv$sql blocked_sql
join gv$session blocked_session
    on blocked_sql.sql_id = blocked_session.sql_id
    and blocked_sql.users_executing > 0
join gv$session blocking_session
    on blocked_session.final_blocking_session = blocking_session.sid
    and blocked_session.final_blocking_instance = blocking_session.inst_id
left join gv$sql blocking_sql
    on blocking_session.sql_id = blocking_sql.sql_id;

如果您了解系统,通常更容易关注“谁”正在进行阻止而不是“阻止”。上面的查询只返回一些常见的列,但这些表中有许多其他列可能有助于识别该过程。