你好,我想更新我的 mysql 服务器上的数据库,但是现在我通常会在更新之前关闭我的服务器。
我想知道是否有任何解决方案可以在不中断网站可用性的情况下进行更新?
感谢您的帮助。
答案1
您想做什么,更新服务器软件还是更新/更改数据库上的表?让我们解决这两种情况:
更新软件:您需要一个主主复制设置和一个浮动 IP。此浮动 IP 在正常运行期间保留在第一个主服务器上,然后您可以:
- 拆除辅助主服务器。
- 更新软件。
- 再次启动它并等待复制完成。
- 将浮动 IP 更改为辅助(现已更新)主 IP。
- 使用与更新辅助主机相同的方式更新主主机。
更新/修改表:除非表很大,否则大多数操作都可以在服务器运行时完成。
ALTER TABLE
通常会锁定表,因此在命令运行时应用程序将无法访问它(不记得“ALTER TABLE”是完全锁定还是只是写锁定,请查看文档)。如果迁移需要太多时间,您将需要执行类似上述更新的操作,首先在主服务器上执行,然后在另一个主服务器上执行,但这更微妙,说明太复杂,无法在此处完成。