我想知道如果人们如何处理数据库模式更改,否则会导致生产系统关闭.似乎以某种方式约束的附加变化(例如唯一约束)将很难做到应用程序,并且数据库必须同时更改,否则将在数据或应用程序中出现错误.
我想到可能切换到从属数据库(使用mysql复制)并在主服务器上运行架构更改,但是您将需要以某种方式捕获应用于从站的更新查询,这些更新查询未应用于主服务器,并且您将运行没有备份服务器的风险.
人们用什么技术来解决这些问题?
谢谢,
马尼什
解决方法
我会说你很接近这个想法;有效地,我有一个主人和奴隶,主人是活着的,奴隶有变化复制到它;暂停从站上的复制,然后在从站上执行模式更改,一旦模式更改完成,请取消暂停复制;一旦整个过程完成,暂停主机很短的时间,以确保复制的更改在从机上刷新,然后切换主从.这应该做你所需要的
请注意,仅当您对模式所做的更改未被挂起的复制命令所触及时,此操作才有效;这通常最好在低流量时间完成,以确保碰撞不太可能.请注意,因为在从站完全更新模式和复制更改之前,这不会更改主控制器,所以在主控制器上非常安全.