MySQL技术内幕:InnoDB存储引擎(第8章备份与恢复)
8.1备份与恢复概述
备份方法分类
- 热备(hot backup)
- 冷备(cold backup)
- 温备(warn backup)
备份后的文件内容
- 逻辑备份
- 裸文件备份
备份数据库的内容
- 全量备份
- 增量备份
- 日志备份
8.2冷备
- 备份frm、共享表空间、独立表空间(*.ibd)、重做日志、my.cnf。
优点:备份简单、恢复简单,速度快,可以跨平台
缺点:停机,备份文件大
8.3逻辑备份
mysqldump
事务一致性参数:
--single-transaction
select…into outfile
例如:
select * into outfile '/root/a.txt' from a;
逻辑备份的恢复
方法1:(使用mysql命令)
mysql -uroot -p < test.sql
方法2:(已连接mysql)
source /home/backup.sql
load data infile
mysqlimport
8.4二进制日志备份与恢复
1.通过它完成point-in-time的恢复工作
2.数据库的replication同样需要二进制日志
启用参考:
log-bin=mysql-bin
sync-binlog=1
innodb_support_xa=1
binlog格式:binlog_format=ROW
备份
备份前:flush logs,新生成一个二进制日志文件,然后再备份
恢复
mysqlbinlog
8.5热备
ibbackup
xtrabackup
- 增量备份
8.6快照备份
指文件系统支持的快照功能对数据库进行备份。前提是数据库文件放在同一个文件分区中,然后对该分区进行快照操作。
8.7复制(binlog)
主要流程(图)
1.主服务器(master)把数据变更记录到二进制日志(binlog)中
2.从服务器(slaver)把主服务器的二进制日志复制到自己的中继日志(relay log)中
3.从服务器从重做中继日志的日志,把更改应用到自己的数据库上,以达到数据的一致性
要点
1.异步实现
2.主服务主动将日志发送给从服务器
3.从IO线程等待主服务器发送过来的二进制日志,并将其写入到中继日志中
4.从SQL线程读取中继日志,并进行重做
slave主要变量(图)
show slave status;