1.1 备份的原因
衡量备份恢复有两个重要的指标:恢复点目标(RPO)和恢复时间目标(RTO),
前者重点关注能恢复到什么程度,而后者则重点关注恢复需要多长时间。
1.1.1 备份的目录
做灾难恢复:对损坏的数据进行恢复和还原
需求改变:因需求改变而需要把数据还原到改变以前
测试:测试新功能是否可用
1.1.2 备份中需要考虑的问题
可以容忍丢失多长时间的数据;
恢复数据要在多长时间内完;
恢复的时候是否需要持续提供服务;
恢复的对象,是整个库,多个表,还是单个库,单个表。
1.1.3 备份的类型
热备份:
这些动态备份在读取或修改数据的过程中进行,很少中断或者不中断传输或处理数据的功能。使用热备份时,系统仍可供读取和修改数据的操作访问,所谓热备份是在不影响MySQL对外服务的情况下,进行备份。。
冷备份:
备份期间用户不能访问数据时进行,因此无法读取或修改数据。。
温备份:
备份期间可读取数据,但是,其不足之处在于无法在进行备份时修改,这可能使这种类型的备份不适用于某些应用程序。在备份过程中无法修改数据可能产生性能问题。
1.2 备份的方式
1.2.1 常用的备份方式
物理备份(数据文件的二进制副本)
全量备份概念
全量数据就是数据库中所有的数据(或某一个库的全部数据);
全量备份就是把数据库中所有的数据进行备份。
mysqldump会取得一个时刻的一致性数据.
增量备份(刷新二进制日志)
增量数据就是指上一次全量备份数据之后到下一次全备之前数据库所更新的数据
对于mysqldump,binlog就是增量数据.
完全备份:
优点:能够基于上一次的完全备份快速恢复数据,恢复窗口小。
缺点:所占用的存储空间大,每次备份耗时长,备份窗口大。
累积增量式备份:--差异备份
优点:相对完全备份来说每次备份可以节约一个完全备份的存储空间,备份窗口较小,恢复窗口较小。
缺点:恢复时必须依赖上一次完全备份和本次的累积增量式备份才能完整恢复数据,恢复时间较差异增量式备份较短。
差异增量式备份:----增量备份
优点:能够最大限度地节省存储空间,备份窗口小。
缺点:数据恢复时必须依赖上一次完全备份和每一次的差异增量式备份才能对数据进行完整恢复,恢复时数据重构较慢,恢复时间较长。
1.2.2 备份工具的介绍
1、mysqldump: mysql原生自带很好用的逻辑备份工具
2、mysqlbinlog: 实现binlog备份的原生态命令
3、xtrabackup: precona公司开发的性能很高的物理备份工具
1.3 mysqldump备份介绍
1.3.1 常用的备份参数
1.3.2 -A 参数
备份全库,备份语句
mysqldump -uroot -p123 -A > /backup/full.sql
1.3.3 -B 参数
备某一个数据库下的所有表,且存在建库语句
增加建库(create)及“use库”的语句,可以直接接多个库名,同时备份多个库* -B 库1 库2
mysqldump -uroot -p123 -B world > /backup/worldb.sql
不加-B备份数据库时,只是备份数据库下的所有表,不会创建数据库
只能备份单独的数据库(一般用于备份单表时使用)
mysqldump -uroot -p123 world > /backup/world.sql
备份单表
mysqldump -uroot -p123 world city > /backup/world_city.sql
对于单表备份的粒度,再恢复数据库数据时速度最快。
备份多个表
mysqldump 库1 表1 表2 表3 >库1.sql mysqldump 库2 表1 表2 表3 >库2.sql
1.3.4 --master-data={1|2}参数
告诉你备份后时刻的binlog位置
2为注释 1为非注释,要执行的(主从复制) 此命令会锁表,需要配合--single-transaction快照使用
[root@db02 logs]# sed -n '22p' /opt/t.sql CHANGE MASTER TO MASTER_LOG_FILE='clsn-bin.000005', MASTER_LOG_POS=344; [root@db02 logs]# mysqldump -B --master-data=2 clsn >/opt/t.sql
1.3.5 压缩备份
压缩备份命令:
mysqldump -B --master-data=2 clsn|gzip >/opt/t.sql.gz
解压:
zcat t.sql.gz >t1.sql gzip -d t.sql.gz #删压缩包 gunzip alL_2017-12-22.sql.gz
zcat t.sql.gz >/tmp/linshi.sql