MySQL备份和恢复基础
2018-05-02 本文已影响0人
4e8ea348373f
一,为什么要备份
- 灾难恢复:硬盘故障,软件故障,自然灾难,黑客攻击,误操作等 eg:reid10只是硬件冗余,如果软件故障或人为误操作也是不能恢复数据,所以,也需要备份
- 测试 备份线上数据,用来测试
- 要点:1.能容忍最多丢失多少数据;2.恢复数据需要多长时间能完成;3.需要恢复那些数据
- 做还原测试,用于测试备份的可用性
- 还原演练
二,备份类型
- 完全备份 整个数据集
- 部分备份 数据子集
- 增量备份 最近一次完成备份后增量备份以来变化的数据 解压空间,还原起来麻烦
- 差异备份 仅备份最近一次完全备份依赖变化的数据
- 如果0点备份,11点数据库挂,可以使用二进制日志来恢复,但是耗时很长
三,备份方式
- 热备:读写操作均可执行
- 温备:读操作可执行,但写操作不成
- 冷备:读写均不能进行
- MyISAM 温备,不能热备
- InnoDB 热备
四,物理备份,逻辑备份
- 物理备份 直接复制数据文件进行备份 会浪费空间
- 逻辑备份,从数据库中导出一份数据另存二进行的备份 会丢失精度,浮点数,与存储引擎无关
五,备份时要考虑的因素
- 持锁多久
- 备份过程中的时长
- 备份负载
- 恢复过程的时长
六,备份什么
- 数据
- 二进制日志,InnoDB的事务日志
- 代码(存储过程,存储函数,触发器,事件调度器)
- 配置文件
七,备份工具
- mysqldump: 逻辑备份工具,使用所有的引擎,温备,完全备份,部分备份,对InnoDB存储引擎支持热备
- cp,tar 等复制归档工具,物理备份工具,冷备,完全和部分备份
- lvm2的快照,几乎热备,请求全局读锁,快速快照,利用cp,tar备份
- mysqlhostcopy: 几乎冷备,冷备工具,仅适用于MyISAM存储引擎
八,复制工具的选择
- mysqldump+复制binlog mysqldump 全量,复制binlog中指定时间范围的event
- lvm2快照+复制binlog
- xtrabackup 热备InnoDB(物理备份),完全和增量备份