ORA-31105: User does not own lock with supplied token “string”

文档解释

ORA-31105: User does not own lock with supplied token “string”

Cause: The lock corresponding to the supplied token is not owned by the user.

Action: Log on as correct user. Supply correct token.

ORA-31105表示用户不拥有以指定令牌指定的锁。此错误可在以下情况下发生:

1)当您试图使用DBMS_UTILITY.RELEASE_GLOBAL_LOCK函数释放全局锁时;

2)当您尝试将全局锁赋予另一用户时;

3)当您尝试将公共锁赋予另一用户时。

官方解释

ORA-31105表示用户不拥有以指定令牌指定的锁。操作失败是因为指定的用户不拥有使用指定的令牌生成的锁。

常见案例

ORA-31105错误并不常见,但是当尝试释放全局锁或转移全局/公共锁时,您仍然可能会遇到它。

一般处理方法及步骤

要解决此问题,您需要找出正在使用指定令牌持有的锁的用户。您可以使用以下语句找出持有锁的用户:

SELECT sid, owner FROM dba_lock_using_token WHERE token= ‘string’

您可使用kill session函数中断持有锁的用户的会话:

ALTER SYSTEM KILL SESSION ‘&sid, &scn’

你可能感兴趣的