Percona XtraBackup工具提供了一种在执行MySQL数据热备的方法。Percona XtraBackup是一个免费的、在线的、开源的、完整的数据库备份解决方案,适用于MySQL和MySQL®的所有版本的Percona服务器。
Percona XtraBackup在事务系统上执行在线非阻塞、紧密压缩、高度安全的完全备份,在备份时不会影响应用正常使用。
Percona Xtrabackup是一款开源的备份工具,支持Innodb、Mysiam、Xtradb等存储引擎数据的在线热备。其特点是备份速度快,对innodb型业务数据几乎无影响,对Myisam型数据会暂时性的锁表,且恢复速度更快。通常,Percona Xtrabackup软件部署有三种常见的方式,分别是rpm包、二进制包以及源码编译的方式安装。建议:使用二进制包方式安装,方便快捷。

在Linux系统创建/Xtrabackup目录,上传介质包percona-xtrabackup-2.3.10-Linux-x86_64.tar.gz
shell> mkdir –p /Xtrabackup sftp> cd /Xtrabackup sftp> put percona-xtrabackup-2.3.10-Linux-x86_64.tar.gz
解压介质包,并设置环境变量
shell> cd /XtraBackup/ shell> tar zxvf percona-xtrabackup-2.3.10-Linux-x86_64.tar.gz shell> pwd /XtraBackup/percona-xtrabackup-2.3.10-Linux-x86_64/bin shell> vi /etc/profile export PATH=/mysql/app/bin:/XtraBackup/percona-xtrabackup-2.3.10-Linux-x86_64/bin:$PATH shell> source /etc/profile shell> su -
至此,Percona Xtrabackup部署完成。
| 常用参数
|
含义 |
| -u | 账户 |
| -p | 密码 |
| -P | 端口 |
| -S | 套接字 |
| -H | 主机ip |
| --defaults-file | 读取参数文件位置 |
| --databases | 指定数据库 |
| --no-timestamp | 不生成时间戳 |
| --slave-info | 获取主库端binlog位置 |
| --incremental | 创建增量备份 |
|
--incremental-basedir |
指定full backup目录 |
| --incremental-dir | 增量备份目录 |
| --redo-only | 增量恢复使用 |
| --apply-log | 应用日志
|
| --copy-back | 拷贝到相应目录 |
| --move-back | 移动到相应目录 |
innobackupex --defaults-file=/etc/my.cnf --socket=/tmp/mysql.sock -uroot -pmysql [--slave-info] /xtrabak
innobackupex --apply-log /Xtrabackup/backup/2018-07-28_15-11-12
innobackupex --defaults-file=/etc/my.cnf --copy-back /Xtrabackup/backup/2018-07-28_15-11-12
注:使用copy-back参数 datadir目录必须为空
innobackupex --defaults-file=/usr/my.cnf --socket=/tmp/mysql.sock -uroot -proot (-–slave-info) --no-timestamp --databases="yzw.a [yzw.b]" /xtrabak
注:格式为 库名.表名,可同时将不同库下表进行导出
innobackupex --apply-log /Xtrabackup/backup/2018-07-28_15-11-12
1.恢复准备,应用日志从开始点到备份结束点
innobackupex --apply-log --export /xtrabackup/backup
2.生产端获取建表语句并在目标端创建
3.目标端卸载ibd文件
alter table test.a discard tablespace;
4.目标端拷贝备份文件至库目录
cp a.cfg a.exp a.ibd /var/lib/mysql/data/test/
5.目标端修改拷贝文件权限
chown -R mysql:mysql /var/lib/mysql/data/test/
6.目标端加载表空间.ibd 文件
alter table test.a import tablespace;
第一次全量备份
innobackupex --defaults-file=/etc/my.cnf --socket=/tmp/mysql.sock -uroot -pmysql --no-timestamp /xtrabak/full
第一次增量备份 注:增量备份必须在全库备库基础上
innobackupex --defaults-file=/etc/my.cnf -uroot -pmysql --socket=/tmp/mysql.sock --no-timestamp --incremental /xtrabak/incre1 --incremental-basedir=/xtrabak/full
第二次增量备份
innobackupex --defaults-file=/etc/my.cnf -uroot -pmysql --socket=/tmp/mysql.sock --no-timestamp --incremental /xtrabak/incre2 --incremental-basedir=/xtrabak/incre1
注:此时incremental-basedir 指向第一次增量备份目录
第一次应用备份文件
innobackupex --apply-log --redo-only /xtrabak/full
第二次应用备份文件
innobackupex --apply-log --redo-only /xtrabak/full --incremental-dir=/xtrabak/incre1
第三次应用备份文件
innobackupex --apply-log /xtrabak/full --incremental-dir=/xtrabak/incre2
注:--redo-only参数 除最后一份增量文件的应用时不需要添加该参数外,其余都要加上该参数!!!
innobackupex --defaults-file=/etc/my.cnf --move-back /Xtrabackup/backup/2018-07-28_15-11-12
注:--move-back参数将备份出来文件直接mv到datadir目录,建议使用--copy-back
innobackupex --defaults-file=/etc/my.cnf --user=root --password=mysql --no-timestamp --compress --compress-threads=8 /xtrabak
解压decompress
innobackupex --decompress /xtrabak
注:需要提前安装qpress命令,安装方式如下
shell> wget http://www.quicklz.com/qpress-11-linux-x64.tar shell> tar xvf qpress-11-linux-x64.tar shell> cp qpress /usr/bin
innobackupex --apply-log /xtrabak
innobackupex --defaults-file=/etc/my.cnf --copy-back /xtrabak
innobackupex --defaults-file=/etc/my.cnf --user=root --password=mysql --stream=tar --no-timestamp /xtrabak 1>/xtrabak/full.tar
注:直接生成tar包
tar -xvf full.tar
innobackupex --apply-log /xtrabak
innobackupex --defaults-file=/etc/my.cnf --copy-back /xtrabak
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30310891/viewspace-2780801/ ,如需转载,请注明出处,否则将追究法律责任。