冷备份期间网站数据库写入的最佳做法?

时间:2011-12-16 15:56:36

标签: mysql database backup database-backups backup-strategies

假设您有一个大型的,受欢迎的数据库驱动的网站。整天都有人在这里整夜。他们访问读取和写入数据库的页面。

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

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

1 个答案:

答案 0 :(得分:3)

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

1名主人A,2名奴隶B,C

  • 在正常操作期间,您的应用程序应在A,B和C之间进行负载平衡
  • 在备份期间,您的应用程序不应该从A读取/写入
    • 缓解A从掌握,促进B掌握,改变奴隶C听B
    • 使用A进行备份
    • 备份完成后
    • 改变A从B听(这意味着A从现在起成为奴隶)
  • 当A赶上B时(不再有延迟),将您的应用程序更改为A,B,C之间的负载均衡

对于第2天,只需重复整个周期,当然主人现在是B。