Oracle数据库Unexpected error running Liquibase: Could not acquire change log lock数据库被锁解决办法

221 阅读1分钟

#####报错信息:
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了。


此方案参考以下英文网站并解决了我的问题,故结合实例翻译成中文:
stackoverflow.com/questions/1…