Liquibase 锁 - 原因?

2021-12-06 00:00:00 database oracle liquibase

我在 Oracle 服务器上运行大量 liquibase 脚本时遇到了这个问题.某台电脑是我.

I get this when running a lot of liquibase-scripts against a Oracle-server. SomeComputer is me.

Waiting for changelog lock....
Waiting for changelog lock....
Waiting for changelog lock....
Waiting for changelog lock....
Waiting for changelog lock....
Waiting for changelog lock....
Waiting for changelog lock....
Liquibase Update Failed: Could not acquire change log lock.  Currently locked by SomeComputer (192.168.15.X) since 2013-03-20 13:39
SEVERE 2013-03-20 16:59:liquibase: Could not acquire change log lock.  Currently locked by SomeComputer (192.168.15.X) since 2013-03-20 13:39
liquibase.exception.LockException: Could not acquire change log lock.  Currently locked by SomeComputer (192.168.15.X) since 2013-03-20 13:39
        at liquibase.lockservice.LockService.waitForLock(LockService.java:81)
        at liquibase.Liquibase.tag(Liquibase.java:507)
        at liquibase.integration.commandline.Main.doMigration(Main.java:643)
        at liquibase.integration.commandline.Main.main(Main.java:116)

会不会是达到了同时会话/交易的数量?有人有什么想法吗?

Could it be that the number of simultaneous sessions/transactions are reached? Anyone has any ideas?

推荐答案

有时如果更新应用程序突然停止,那么锁仍然卡住.

Sometimes if the update application is abruptly stopped, then the lock remains stuck.

然后运行

UPDATE DATABASECHANGELOGLOCK SET LOCKED=0, LOCKGRANTED=null, LOCKEDBY=null where ID=1;

对抗数据库有帮助.

您可能还需要将 LOCKED=0 替换为 LOCKED=FALSE.

You may also need to replace LOCKED=0 with LOCKED=FALSE.

或者您可以简单地删除 DATABASECHANGELOGLOCK 表,它将被重新创建.

Or you can simply drop the DATABASECHANGELOGLOCK table, it will be recreated.

相关文章