假设您有一个大型、流行的数据库驱动网站。工地上整天整夜都有人。他们访问既读取又写入数据库的页面。
在实现每日数据库备份计划时,涉及到冷备份,这意味着您在备份过程中临时关闭数据库或锁定表。这可确保在进行备份时不会将新数据插入数据库。
有哪些好的方法可以对您的站点 Controller 和模型进行编码,使其不会因表锁定或数据库脱机而失败?您是否需要实现某种数据库写入队列系统或类似的系统?或者只是让整个网站暂时下线?或者只是在不锁定或关闭任何东西的情况下进行实时备份?什么是好的方法?
最佳答案
使用复制,这里是一个简单的场景
1主A,2从B,C
- 在正常运行期间,您的应用程序应在 A、B 和 C 之间进行负载平衡
- 在备份期间,您的应用程序不应从 A 读取/写入
- 解除A的master,提升B为master,让slave C监听B
- 用A做备份
- 备份完成后
- 让A听B的话(也就是说A从现在开始变成奴隶)
- 当 A catch B(不再延迟)时,将您的应用程序更改为再次在 A、B、C 之间进行负载平衡
Day 2,重复整个循环,当然master现在是B。
关于mysql - 冷备份期间网站数据库写入的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8536698/