备份和恢复的作用
1.做灾难恢复
2.做审计
3.测试(备份数据做恢复测试)
备份类型:
根据备份时,数据库服务器是否在线
冷备:cold backup 服务器处于离线状态
温备:warm backup 全局施加共享锁,只能读,不能写
热备:hot backup 服务器处于在线状态(基于事务的存储引擎才能热备)
根据备份的数据集:
完全备份 full backup 备份说有数据库及其所有表
部分备份 partial backup 只备份某张表或某张表的部分数据
根据备份时的接口(直接备份数据文件还是通过mysql服务器导出数据)
物理备份:physical backup 直接复制(归档)数据文件的备份方式
逻辑备份:logical backup 把数据从库中提取出来保存为文本文件(逻辑备份恢复速度慢、无法保证浮点数的精度、还原数据需要重建索引,工具mysqldump)
根据备份时是备份整个数据还是仅备份变化的数据
完全备份:full backup
增量备份:incremental backup 第一次从上一个完全备份开始备份,其余从上一个增量备份处开始
差异备份:differential backup 每次备份都是从上一个完全备份开始备份
备份策略:
选择备份方式
选择备份时间
考虑到恢复成本
恢复时长
考虑备份成本
锁时间
备份时长
备份负载
备份对象:
数据
配置文件(my.cnf)
代码:存储过程、存储函数、触发器
OS相关的配置文件,如crontab配置计划及相关脚本
主从复制跟复制相关的配置信息
二进制日志文件
常用的备份工具
mysqldump(单线程):逻辑备份工具
InnoDB热备、MyISAM温备、Aria温备
备份和恢复过程较慢
mysqldumper:多线程的mysqldump
能实现完全备份、部分备份;很难实现差异或增量备份
基于lvm-snapshot
接近于热备的工具,因为要先请求全局锁,而后创建快照,并在创建完成后释放全局锁
使用cp、tar等工具进行物理备份
备份和恢复速度较快
很难实现差异或增量备份,并且请求全局锁需要等待一段时间,在繁忙的服务器上尤其如此
SELECT clause INTO OUTFILE ‘/path/to/somefile’ 备份
LOAD DATA INFILE ‘/path/from/somefile’ 恢复
部分备份工具,不会备份关系定义,仅备份表中的数据
是个逻辑备份工具,快于mysqldump
Innobase: 商业备份工具,innobackup
Xtarbackup:由Percona提供的开源备份工具
InnoDB热备,增量备份
MyISAM温备,不支持增量
物理备份,速度快
mysqlhotcopy:几乎冷备