49. MySQL 数据库的备份与恢复

AI 概述
1. 备份的理由2. 恢复需求的定义3. 备份方案的设计4. 小结 数据库的备份与恢复,一直都是 DBA 最为重要的工作,任何生产环境的数据库都必须有完整的备份方案与恢复测试。本小节将主要介绍 MySQL 的备份与恢复。 1. 备份的理由 备份重于一切!备份是 DBA 最后一根救命稻草……以下几个是数据库备份的重要...
目录
文章目录隐藏
  1. 1. 备份的理由
  2. 2. 恢复需求的定义
  3. 3. 备份方案的设计
  4. 4. 小结

数据库的备份与恢复,一直都是 DBA 最为重要的工作,任何生产环境的数据库都必须有完整的备份方案与恢复测试。本小节将主要介绍 MySQL 的备份与恢复。

1. 备份的理由

备份重于一切!备份是 DBA 最后一根救命稻草……以下几个是数据库备份的重要理由:

  • 灾难恢复:系统总是要崩溃的,服务器总是要发生故障的,甚至于机房被烧毁、黑客攻击,如果发生这些情况时,没有有效的备份,只能等死。
  • 操作失误:开发人员在修改某些数据后,发现操作失误,需要恢复这些数据。
  • DB 审计:有时候需要知道数据库在过去某个时间点有什么样的数据。
  • 测试环境:开发人员需要定期用最新的生产数据库的数据恢复至测试环境,用于开发验证。如果有备份,那就很简单,直接用备份文件还原到测试环境即可。

2. 恢复需求的定义

在规划备份和恢复的策略时,有两个指标需要考量:RPO 和 RTO。

  • RPO(恢复点目标): Recovery Point Objective,可以容忍丢多少数据
  • RTO(恢复时间目标): Recovery Time Objective,需要等待多久才将数据恢复

在定义具体的 RPO 和 RTO 时,我们需要明确以下问题:

  • 可以容忍丢失多少数据?
  • 可以容忍多长时间内恢复正常服务?哪种类型的宕机是可以接受的?部分服务不可用是否可以接受?
  • 需要恢复什么?单表/部分表?整个数据库?还是整个服务器?

3. 备份方案的设计

将 RPO 和 RTO 定义清楚,可以更好地指导备份策略。一般来说,能承受的数据丢失越多,备份就越简单。

一个好的备份方案,需要考量以下几点:

  • 对于较大数据库(个人经验是整个数据文件大于 50GB),物理备份是必须的,备份工具 Percona XtraBackup 和 MySQL Enterprise Backup 是比较好的选择。对于较小的数据库,逻辑备份就可以满足备份需求,备份工具 mysqldump 是比较好的选择;
  • 确保 MySQL 的 log-bin 选项是打开的,有了 binlog,MySQL 才能做完整的恢复、基于时间点的恢复、以及基于位置的恢复;
  • 备份二进制日志,用于故障时间点的恢复;
  • 在存储资源许可的条件下,保留足够多的备份集;
  • 定期从备份中进行恢复测试;
  • 需确保备份文件是有效的,是可以恢复的;
  • 通过恢复演练,测算恢复锁需要的实际时间,以及所需要的资源,如 CPU、磁盘空间、内存、网络等。

4. 小结

本小节主要介绍了 MySQL 恢复需求的定义和备份方案的设计,备份和恢复在任何数据库都是非常重要的部分,好的备份方法和策略,会使数据库备份更高效也更安全。

重要的事情说三遍:

备份重于一切!

备份重于一切!

备份重于一切!

以上关于49. MySQL 数据库的备份与恢复的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。

「点点赞赏,手留余香」

0

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 49. MySQL 数据库的备份与恢复

发表回复