mysql - 冷备份期间网站数据库写入的最佳实践?

标签 mysql database backup database-backups backup-strategies

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

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

有哪些好的方法可以对您的站点 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/

相关文章:

bash - 通过 Cron 作业上传当天的备份而不是所有文件

go - 如何使用Google云端硬盘API(v3)获取目录中所有文件的列表

java - 我正在尝试运行 spring 机器人应用程序,它显示执行 DDL 时出现 CommandAcceptanceException 错误

php - 电子邮件消息队列 - X worker 和停止重叠

java - 如何在hibernate中查找外键的id

Mysql:仅当日期不同时才计算每月不同的user_ids

javascript - 如何根据按下的按钮调用函数以显示 div?

export - 备份/恢复 Notes.app 中的笔记,即存储在 iCloud 中(iOS、Mac OS X Mountain Lion)

php - criteria->group 不适用于 yii

mysql - 如何在 MySQL 中使用单个选择查询更新多个列?