Xtrabackup的安装和使用
涉及服务器:A B
MySQL版本:5.7.19
一.Xtrabackup的安装
1 2 | -- 查看对应的libgcrypt版本 yum list installed|grep libgcrypt |
1 2 | -- 去官网下载对应的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 |
1 2 3 4 5 6 7 | -- 解压安装 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.全量备份
1 2 3 | -- 进行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.恢复全备数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | -- 传输备份文件至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 |
3.增量备份
1 2 3 4 5 6 7 8 9 10 11 12 | 选项说明: --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.恢复增量数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | --备份 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 < br > --重命名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 |
分类:
Xtrabackup
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了