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

Jak*_*son 6 mysql database backup backup-strategies database-backups

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

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

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

ajr*_*eal 3

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

1 个主站 A,2 个从站 B、C

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

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