mysql数据库的备份是运维的重中之重,是保障服务灾难恢复的最后一道屏障
在我的构想里,一个完备的 mysql 容灾体系应该包括高可用架构和一套基础的数据库备份方案
高可用架构:MM+ Keepalived,PXC(Percona XtraDB Cluster)或者GR(Group Replication),来保证故障恢复,并附带一个延迟备库(延迟1小时同步数据)来防止误删等问题
基础的数据库备份方案:根据这段时间的调研,得出结论,可以按数据库大小分两种备份方案:30G以内,推荐使用mysql自带的mysqldump工具实现备份,超过30G使用xtrabackup工具实现备份。
下面为基础的数据库备份方案的调研:
首先了解下物理备份和逻辑备份
物理备份 VS 逻辑备份
物理备份,顾名思义,就是备份物理文件。其优缺点如下:
优点:
- 备份、恢复速度快。
尤其是恢复速度,直接关系着数据库服务的RTO( Recovery time objective )。 - 无需实例在线。
在实例关闭的情况下,可直接拷贝文件,不用担心备份的一致性。
关闭实例进行备份,也称之为 “冷备” 。
缺点:
- 备份文件大。
- 恢复时,对平台、操作系统、MySQL版本有要求,必须一致或兼容。
- 只能在本地发起备份。
- 因为是拷贝物理文件,即使文件中存在很多“空洞”(大量DELETE导致),也无法通过恢复来收缩 。
- 对表的存储引擎有要求,无法备份MEMORY表。
逻辑备份,备份表的逻辑记录。其优缺点如下:
优点:
- 可移植性强。恢复时,对平台、操作系统、MySQL版本无要求。
- 灵活。尤其是在恢复时,可只恢复一个库或一张表。
- 对表的存储引擎没有要求,任何类型的表都可备份。
- 备份文件较小。
- 可远程发起备份。
- 恢复后,能有效收缩空间。
缺点:
- 备份、恢复速度慢。
实际上,单论备份速度,多线程备份其实也不慢。但恢复速度呢,即使是多线程恢复,也很慢。 - 备份会"污染"Buffer Pool。
业务热点数据会被备份数据驱逐出Buffer Pool 。
参考文档:https://zhuanlan.zhihu.com/p/422120352
标签:恢复,数据库,xtrabackup,全量,mysql,备份,物理 From: https://www.cnblogs.com/allay/p/17846599.html