首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当集群中的两个应用服务器启动LiquiBase更新(通过Grails)时会发生什么?

当集群中的两个应用服务器启动LiquiBase更新(通过Grails)时会发生什么?
EN

Stack Overflow用户
提问于 2013-09-11 01:13:59
回答 1查看 780关注 0票数 2

我计划通过grails数据库迁移插件使用LiquiBase。当我用一个新版本的DB模式启动一个由两个服务器组成的集群,并且两个服务器都试图启动模式升级时,会发生什么呢?

grails数据库迁移插件或LiquiBase本身是否对并发升级尝试有保护?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-11 22:39:55

除了数据库表之外,Liquibase还创建一个databasechangelog和一个databasechangeloglock表来管理其状态。databasechangelog包含关于您已经运行的迁移的信息,databasechangeloglock在那里是为了防止运行迁移的并发尝试。

当第一个集群实例启动时,它将通过在databasechangeloglock表中插入一行来获得一个锁,并运行任何缺少的迁移。当第二个程序启动时,它将被阻塞,直到锁被释放,然后它将获得一个锁,并且由于不会有任何未运行的迁移,所以它不会做任何事情。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18731207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档