Oracle數據庫Unexpected error running Liquibase: Could not acquire change log lock數據庫被鎖解決辦法-【2.4.0開發】

報錯信息:

windows下執行對Oracle數據庫的批操作腳本,因爲是遠程數據庫,速度較慢,腳本未正常結束被我不小心退出了,導致遠程服務器上的Oracle數據庫被鎖,之後執行腳本報錯:

Unexpected error running Liquibase: Could not acquire change log lock. Currently locked by PC-name since 18-07-23 下午2:22

報錯信息顯示數據庫被PC-name這臺電腦在18-07-23下午2:22鎖住.
這裏寫圖片描述


解決方案:

數據庫的鎖的信息存儲在表 DATABASECHANGELOGLOCK表中,我們先去select這張表查看信息:

select * from DATABASECHANGELOGLOCK;

這裏寫圖片描述
發現表中的信息就是報錯的內容。

接下來清除該表中的鎖信息即可

執行:

UPDATE DATABASECHANGELOGLOCK SET LOCKED=FALSE, LOCKGRANTED=null, LOCKEDBY=null where ID=1;
或者:
delete from DATABASECHANGELOGLOCK; 

這兩條語句均可清除鎖信息。
再去查看一下表:
這裏寫圖片描述

此時再去操作數據庫即不會報被鎖的error了。

此方案參考以下英文網站並解決了我的問題,故結合實例翻譯成中文:
https://stackoverflow.com/questions/15528795/liquibase-lock-reasons

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章