【问题标题】:Best practice for website database writes during cold backups?冷备份期间网站数据库写入的最佳实践?
【发布时间】:2012-01-22 03:06:08
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    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了。

    【讨论】:

    • 如果您无法控制实时 MySQL 服务器配置,例如在共享 Web 托管环境中,是否仍然可以选择复制?
    • 那么问题来了,现在的主机价格很有吸引力,我不认为很难买到又好又便宜的。之间,您使用的托管公司是什么?
    • Rackspace 云站点。这很好,因为您的网站可以神奇地随着流量而扩展,但它们在功能上限制了您很多。没有 SSH、RSYNC、SFTP、MySQL 配置等。我们可能不得不为单独的数据库托管选择一个单独的主机。
    猜你喜欢
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-05
    • 2011-03-22
    相关资源
    最近更新 更多