一、为什么需要用到备份和恢复
1、一般是做灾难恢复的,比如说自然灾害等。
2、可以做审计的,比如说某一数据在过去是什么样的。
3、做测试的,比如说一个新的业务架构数据存储方式是否扛得着业务的访问
备份的目的是用于恢复的,所以有必要对数据恢复做定期测试,以防止数据用到时恢复不了数据。
二、备份类型
- 根据备份时,数据库服务器是否在线:
冷备份:cold backup,服务器要离线,意味着我们的读写操作都不可以进行了,这是最安全的备份方式,也是最不靠谱的方式。
温备份:warm backup,全局施加共享锁,只可读,不可写的备份叫温备份
热备份:hot backup,数据库不离线,读写操作都可以进行
- 根据备份时的数据集进行分类:
完全备份:full backup:指备份整个库,当下数据集的整个库的数据
部分备份:partial backup:只备份某张表或某张表的一部份数据,有时备份单张表是有必要的。
根据备份时的接口(直接备份数据文件还是通过mysql服务器导出数据)
物理备份:直接复制(归档)数据文件的备份方式;跨平台能力没有逻辑备份好,physucal backup。大数据集用这个比较好。
逻辑备份:把数据库中提出来保存为文本文件;通常使用的工具是mysqldump,logical backup,对于大容量数据不适用。恢复速度很 慢,占据空间很大
- 根据备份时是否备份整个数据还是仅备份变化的数据:
完全备份:full backup,跟备份数据集中的完全备份概念是相同的,也是备份整个库
增量备份:incremental backup,上一次完全备份之后所改变的数据做备份的为增量备份,比如说周一做一次备份,周二做一次备份,周 三又做一次,这样一天天累加上去的叫增量备份。比较节约空间。
差异备份:differential backup,比如说周一做一次备份,到周二了就把周一和周二这两天的做一次备份,到周三就把周一周二周三的做一 次备份,这就叫差异备份。比较容易恢复。
三、备份策略:
需要考虑到的问题
1、选择备份方式,选择哪种方式根据我们的生产环境所需要来定;
2、执行备份时间,选项一个访问最少的时间做备份是比较合理的;
3、考虑到恢复成本:恢复时长;
4、备份成本:考虑到锁时间、备份时长、备份负载;
备份对象:我们备份需要备份什么呢
1、备份数据库中的数据是最重要的;
2、MySQL的配置文件,这个也是我们备份的对象
3、MySQL的代码也是需要备份的:存储过程,存储函数,触发器
4、OS相关的配置文件,如crontab配置计划及相关的脚本
5、如果是在主从复制的场景中,跟复制相关的信息也要备份
6、为了保证数据足够可靠,二进制日志文件也需要备份