XtraBackup工具详解 Part 1 xtrabackup介绍
XtraBackup工具详解 Part 2 xtrabackup安装
XtraBackup工具详解 Part 3 XtraBackup工作原理
XtraBackup工具详解 Part 4 XtraBackup权限及配置
此次实验的环境如下
mysql> CREATE USER 'backup'@'localhost' IDENTIFIED BY '123456';
mysql> GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'backup'@'localhost';
mysql> FLUSH PRIVILEGES;
shell>mkdir -p /oradata/data/mysql/xtra
注意 mysql用户需要有读写权限,并且该目录需要为空,否则备份失败
我们有如下方法对MySQL数据库进行全备
shell> innobackupex -S /oradata/data/mysql/data/mysql.sock --user=backup --password=123456 /oradata/data/mysql/xtra
备份完成后可以看到在/oradata/data/mysql/xtra目录下新建了以日期命名的目录
接下来分析下其备份的过程,从输出的日志上来看
上图首先打印出innobackupex可以用的一些参数
并提示说在结束时检查是否备份成功,需要在最后有"completed OK"字样
然后是连接数据库,进入数据文件目录检查参数,之后开始备份
这部分首先列出数据库中有哪些表空间
首先拷贝系统表空间文件然后是undo表空间文件,最后是innodb表文件
可以看到由于我在备份时手动插入了数据,innobackupex一直在扫描redo 日志文件以反映数据的变化
可以看到正在拷贝innodb表的文件
由于我在备份时手动插入了数据,可以看到innobackupex一直在扫描redo 日志文件以反映数据的变化
可以看到在拷贝数据文件时先执行下面语句进行锁表,不允许用户DML操作
之后在非InnoDB表拷贝完之后写信息至xtrabackup_binlog_info文件
该文件后续说明
最后记录最终的LSN号
之后解除锁表,拷贝ib_buffer_pool文件
记录binlog 位置信息
写信息值backup-my.cnf及xtrabackup_info
最后拷贝在备份期间变化的redo日志
通过上面我们看到除了拷贝数据文件外还生成了一些文件
下面我们一一说明
包含了备份数据库如下信息
其记录了备份完成时binlog的位置及GTID信息
用于复制的搭建
该文件对于后续增量备份有用
该文件有如下信息
可以看到to_lsn和last_lsn不同 说明在备份过程中有DML操作
to_last用于增量备份的起点
last_scn用于最后恢复的位置
这些后面介绍
该文件包含一些备份的信息就不一一介绍了
本专题所有内容翻译子Percona XtraBackup的官方文档
可通过如下链接下载
http://www.zhaibibei.cn/mysql/xtrabackup/tutorial1/
觉得文章不错的欢迎转发,收藏~