Xtrabackup的安装和使用
作者:互联网
涉及服务器:A B
MySQL版本:5.7.19
一.Xtrabackup的安装
-- 查看对应的libgcrypt版本 yum list installed|grep libgcrypt
-- 去官网下载对应的xbk安装包 wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.14/binary/tarball/percona-xtrabackup-2.4.14-Linux-x86_64.libgcrypt153.tar.gz
-- 解压安装 tar -zvxf percona-xtrabackup-2.4.14-Linux-x86_64.libgcrypt153.tar.gz -C /usr/local/ cd /usr/local/ ls -lrth mv percona-xtrabackup-2.4.14-Linux-x86_64/ xtrabackup ln -fs /usr/local/xtrabackup/bin/* /usr/bin/ xtrabackup -v
二.Xtrabackup的使用
1.全量备份
-- 进行A服务器数据全量备份 /usr/bin/innobackupex --defaults-file=/etc/my.cnf --user= XXX --password="12345" --host=192.xxx.x.xx --port=3306 --stream=tar /tmp | gzip | cat -> `date +"%Y-%m-%d-%H-%M-%S"`_full.tar.gz
2.恢复全备数据
-- 传输备份文件至B服务器 scp -r -P 端口号 /tmp/2022-05-08-17-03-40_full.tar.gz root@192.168.X.XXX:/tmp/ -- 在B服务器创建临时文件夹并解压备份文件 mkdir /backup/ tar -zxvf 2022-05-08-17-03-40_full.tar.gz -C /backup/ -- 关闭mysql服务 service mysql stop -- 应用日志 innobackupex --apply-log /backup/ --重命名mysql数据data目录并将备份的数据 copy back 或 move back mv /data/data /data/data.bak mv /data/binlog /data/binlog.bak -- 恢复数据 innobackupex --defautls-file=/etc/my.cnf --datadir=/data/data/ --copy-back /backup -- 授权 data目录和mysql目录 chown -R mysql.mysql /data/ -- 启动mysql服务 service mysql start
记录:此时使用GTID方式开启主从复制,可以成功。
mysql> change master to master_host='192.168.9.XXX',master_user='XXX',master_port=3306,master_password='XXX',master_auto_position=1 ;
3.增量备份
选项说明: --user:#该选项表示备份账号 --password:#该选项表示备份的密码 --host:#该选项表示备份数据库的地址 --databases:#该选项接受的参数为数据库名,如果要指定多个数据库,彼此间需要以空格隔开; 如:"xtra_test dba_test",同时,在指定某数据库时,也可以只指定其中的某张表。 如:"mydatabase.mytable"。该选项对innodb引擎表无效,还是会备份所有innodb表 --defaults-file:#该选项指定从哪个文件读取MySQL配置,必须放在命令行第一个选项位置 --incremental:#该选项表示创建一个增量备份,需要指定--incremental-basedir --incremental-basedir:#该选项指定为前一次全备份或增量备份的目录,与--incremental同时使用 --incremental-dir:#该选项表示还原时增量备份的目录 --include=name:#指定表名,格式:databasename.tablename
由于我之前全备的时候是直接生成了压缩包,无法直接找到增量的基准文件,所以将原压缩包解压至/tmp/full/目录下作为基准目录
4.恢复增量数据
--备份 innobackupex --user=XXX --password="12345" --host=192.168.9.XXX --incremental /tmp/incre --incremental-basedir=/tmp/full/ -- 生成的增量备份文件夹 路径为 /tmp/incre/2022-05-09_11-53-20 -- 恢复 -- 将备份文件传输到B服务器 scp -r -P端口 /tmp/incre/* root@192.168.9.xxx:/incre/ -- 停止mysql服务 service mysql stop
--重命名data目录 mv /data/data /data/data.bak mv /data/binlog /data/binlog.bak -- 合并全备数据目录,确保数据的一致性 innobackupex --apply-log --redo-only /backup/ -- 将增量备份数据合并到全备数据目录当中 innobackupex --apply-log --redo-only /backup/ --incremental-dir=/incre/2022-05-09_11-53-20/ -- 恢复数据 innobackupex --defautls-file=/etc/my.cnf --datadir=/data/data/ --copy-back /backup/ -- 授予权限 chown -R mysql.mysql /data/ -- 启动服务 service mysql start
标签:tmp,tar,--,安装,备份,使用,Xtrabackup,mysql,data 来源: https://www.cnblogs.com/pipiisacat/p/16245987.html