一、为什么要备份?
灾难恢复:硬件故障、软件故障、自然灾害、黑客攻击、误操作;
测试
二、要注意的要点:
能容忍最多丢失多少数据;
恢复数据需要多长时间内完成;
需要恢复哪些数据;
(1)做还原测试,用于测试备份的可用性
(2)还原演练
三、备份类型:
完全备份,部分备份
完全备份:整个数据集;
部分备份:只备份数据子集;
完全备份、增量备份、差异备份
增量备份:仅备份最近一次完全备份或增量备份(如果存在增量)以来变化的数据;
差异备份:仅备份最近一次完全备份依赖变化的数据;
热备份、温备份、冷备份
热备:读写操作均可执行;
温备:读操作可进行;但写操作不可用;
冷备:读写操作均不可进行;
MyISAM:温备,不能热备;
InnoDB:热备
物理备份、逻辑备份
物理备份:直接复制数据文件进行备份;
逻辑备份:从数据库中"导出"数据另存而进行的备份;
逻辑备份与存储引擎无关
四、备份时需要考虑的因素:
温备要考虑持锁多久
备份过程的时长
备份负载
恢复过程的时长
五、备份那些内容:
数据
二进制日志、InnoDB的事务日志
代码(存储过程、存储函数、触发器、事件调度器)
服务器的配置文件
六、设计备份方案:
数据集:完全+增量;
备份手段:物理,逻辑;
七、备份工具:
mysqldump:逻辑备份工具,适用所有存储引擎,温备:完全备份、部分备份;对InnoDB存储引擎支持热备;
cp,tar等复制归档工具:物理备份工具,适用于所有存储引擎;冷备:完全备份,部分备份;
lvm2的快照:几乎热备;借助于文件系统管理工具;
mysqlhotcopy:几乎冷备;仅适用于MyISAM存储引擎
八、备份工具的选择:
mysqldump+复制binlog:(复制速度比较慢,但是支持远程备份)
mysqldump:完全备份:
复制binlog中指定时间范围的event:增量备份;
lvm2快照+复制binlog:
lvm2快照:使用cp或tar等做物理备份;完全备份
复制binlog中指定时间范围的event:增量备份
xtrabackup(开源):
有Percona提供的支持对InnoDB做热备(物理备份)的工具
完全备份、增量备份