MySQL备份与恢复
备份与恢复概述
备份方法区分及特点
- 热备–数据库正在运行、数据数据库无影响,正常读写
- 冷备–数据库停止,最简单、通过复制数据库文件
- 温备–数据库正在运行,需要全局锁表保证数据一致性
文件内容区分
- 逻辑备份–SQL文件、可读、恢复和备份都慢
- 裸文件备份–不可读,恢复备份速度快
数据库内容区分
- 完全备份–数据库完全备份
- 增量备份–备份上一次全量备份,到备份时所增加的数据
- 日志备份–通过对操作日志的备份,还原时通过日志从做(类似主从)
冷备
- 备份MySQL的数据文件(可直接备份MySQLl的数据文件存放目录)
- frm文件
- 共享表空间文件
- 独立表空间文件(*.ibd文件)
- 重做日志文件
- 定期备份配置文件
逻辑备份
二进制日志备份与恢复
-
推荐配置
[mysqld] log-bin = mysql-bin sync_binblog = 1 innodb_support_xa =1
-
恢复方式
# 语法 mysqlbinlog [options] log_file ... # 示例 单个还原 mysqlbinlog binlog.000001 | mysql -uroot -p test # 示例多个还原 mysqlbinlog binlog.[0-10]* | mysql -uroot -p test
热备
- ibbackup
- xtraBackup
快照备份
复制
- Master 数据库只要发生变化,立马记录到Binary log 日志文件中
- Slave数据库启动一个I/O thread连接Master数据库,请求Master变化的二进制日志
- Slave I/O获取到的二进制日志,保存到自己的Relay log 日志文件中。
- Slave 有一个 SQL thread定时检查Realy log是否变化,变化那么就更新数据