6

假设您有一个大型、流行的数据库驱动网站。网站上整天整夜都有人。他们访问既可以读取也可以写入数据库的页面。

在实施每日数据库备份计划时,它涉及进行冷备份,这意味着您在备份进行时临时关闭数据库或锁定表。这可确保在进行备份时不会将新数据插入数据库。

有哪些好的方法可以对站点控制器和模型进行编码,以免它们因表锁或数据库脱机而失败?您是否需要实现某种数据库写入队列系统或类似的东西?或者只是让整个网站暂时下线?或者只是在不锁定或关闭任何东西的情况下进行实时备份?什么是好方法?

4

1 回答 1

3

使用复制,这里是一个简单的场景

1个主A,2个从B,C

  • 在正常运行期间,您的应用程序应在 A、B 和 C 之间进行负载平衡
  • 在备份期间,您的应用程序不应从 A 读取/写入
    • 解除 A 为主,提升 B 为主,改变从 C 监听 B
    • 使用 A 进行备份
    • 备份完成后
    • 将 A 改为从 B 听(这意味着 A 从现在开始成为奴隶)
  • 当 A 赶上 B 时,(不再有延迟),将您的应用程序更改为再次在 A、B、C 之间进行负载平衡

对于第 2 天,只需重复整个循环,当然 master 现在是 B。

于 2011-12-16T16:06:32.340 回答