flyway问题合集

文章目录

  • 一、修改flyway里的sql后造成锁表



一、修改flyway里的sql后造成锁表

提示如下:
Caused by: org.flywaydb.core.api.FlywayException: Number of retries exceeded while attempting to acquire PostgreSQL advisory lock

原因:

1. 多个实例竞争锁:如果多个Flyway实例同时尝试获取同一个PostgreSQL
咨询锁,会导致锁竞争。

2. 长时间运行的事务:如果某个事务长时间运行且持有锁,
其他需要获取锁的Flyway实例会因为超时而失败。	
解决方式: 
  1. SELECT pid, application_name, wait_event_type, wait_event, state FROM pg_stat_activity where state = ‘idle in transaction’
    如果有锁表的情况,下面会有数据出现(这里已清理)
    flyway问题合集_第1张图片
  2. 根据查询出来的pid,来关掉进程
    SELECT pg_terminate_backend(pid的值);

你可能感兴趣的:(postgresql)