备份类型
物理备份:直接对数据库的物理文件(数据文件、日志文件等)进行备份
逻辑备份:对数据库对象(库、表)的数据以SQL语句的形式导出进行备份
备份策略
完全备份:每次备份都备份完整的库或表数据
差异备份:只备份上一次完全备份后的更新数据
增量备份:备份备份只备份上一次完全备份或增量备份后的更新数据
备份工具:
tar压缩打包(完全备份,物理冷备)
mysqldump(完全备份,逻辑热备)
mysqlhotcopy(完全备份,逻辑热备,仅支持MyISAM和ARCHIVE引擎表)
二进制日志(增量备份)
PXB XtraBackup innobackupex(完全备份、增量备份,物理热备)
完全备份物理冷备--数据迁移
备份data文件
查看备份文件
将打包备份的文件转移虚拟机
转换虚拟机并进行核实
检测data文件里MySQL的数据
完全备份MySQL数据库脚本
mysqldump 逻辑热备
mysqldump -u root -p密码 --databases 库1 [库2 ....] > XXX.sql #备份一个或多个指定的库及库中所有的表
mysqldump -u root -p密码 库名 > XXX.sql #只备份指定库中的所有表(不包含库对象本身)
完全恢复
先登录数据库,再执行 source sql文件路径 (如何sql文件里只备份了表,需要先 use 切换库
再执行 source)
mysql -u root -p密码 < sql文件路径 cat sql文件路径 | mysql -u root -p密码 #恢复库
mysql -u root -p密码 库名 < sql文件路径 cat sql文件路径 | mysql -u root -p密码 库名 #恢复表
show variables like 'general%'; #查看通用查询日志是否开启
show variables like 'log_bin%'; #查看二进制日志是否开启
增量备份
通过刷新二进制日志实现增量备份
mysqladmin -u root -p密码 flush-logs
使用二进制日志增量恢复
断点恢复
基于位置点恢复
mysqlbinlog --no-defaults --start-position='开始位置点' --stop-position='结束位置点' 二进制文件路
径 | mysql -u root -p密码
基于时间点恢复
mysqlbinlog --no-defaults --start-datetime='YYYY-mm-dd HH:MM:SS' --stop-datetime='YYYY-
mm-dd HH:MM:SS' 二进制文件路径 | mysql -u root -p密码
断点恢复的原则:
如果要恢复到某条sql语句之前的所有数据,就stop在这个语句的位置点或时间点之前
如果要恢复某条sql语句及其之后的所有数据,就从这个语句的位置点或时间点开始start
6:19