下载xtrabackup工具包
percona-xtrabackup-24-2.4.13-1.el7.x86_64.rpm 工具包可以从官网下载
https://www.percona.com/downloads/Percona-XtraBackup-LATEST/Percona-XtraBackup-8.0.4/binary/redhat/7/x86_64/percona-xtrabackup-80-8.0.4-1.el7.x86_64.rpm
安装xtrabackup工具包(需要启用epel源)
[root@CentOS7 ~]# yum install -y percona-xtrabackup-24-2.4.13-1.el7.x86_64.rpm
备份过程
1)完全备份
[root@CentOS7 ~]# xtrabackup --backup --target-dir=/data/backup/base
2)第一次修改数据
MariaDB [hellodb]> insert teachers (name,age)value('xiaoai',33);
MariaDB [hellodb]> show tables;
+-------------------+
| Tables_in_hellodb |
+-------------------+
| classes |
| coc |
| courses |
| scores |
| students |
| teachers |
| toc |
+-------------------+
7 rows in set (0.00 sec)
MariaDB [hellodb]> drop table toc;
Query OK, 0 rows affected (0.01 sec)
3)第一次增量备份
[root@CentOS7 ~]# xtrabackup --backup --target-dir=/data/backup/inc1 --incremental-basedir=/data/backup/base
4)第二次修改数据
MariaDB [hellodb]> update teachers set gender='F' where tid=5;`
5)第二次增量
[root@CentOS7 ~]#xtrabackup --backup --target-dir=/data/backup/inc2 --incremental-basedir=/data/backup/inc1
6)将备份的数据库文件拷贝至远程主机
备份过程生成三个备份目录
[root@CentOS7 ~]# ll /data/backup/
total 0
drwxr-x--- 6 root root 217 May 6 23:11 base
drwxr-x--- 6 root root 243 May 6 23:13 inc1
drwxr-x--- 6 root root 243 May 6 23:17 inc2
[root@CentOS7 ~]# scp -r /data/backup/* 192.168.93.102:/data/backup
还原过程
在远程主机上确认是否复制成功
[root@CentOS7 ~]# ll /data/backup/
total 0
drwxr-x---. 6 root root 217 May 6 15:19 base
drwxr-x---. 6 root root 243 May 6 15:19 inc1
drwxr-x---. 6 root root 243 May 6 15:19 inc2
1)预准备完成备份,此选项--apply-log-only 阻止回滚未完成的事务
[root@CentOS7 ~]# xtrabackup --prepare --apply-log-only --target-dir=/data/backup/base
2)合并第1次增量备份到完全备份
[root@CentOS7 ~]# xtrabackup --prepare --apply-log-only --target-dir=/data/backup/base --incremental-dir=/data/backup/inc1
3)合并第2次增量备份到完全备份
如果是最后一次增量备份,还原时不需要加选项--apply-log-only
[root@CentOS7 ~]# xtrabackup --prepare --target-dir=/data/backup/base --incremental-dir=/data/backup/inc2
4)复制到数据库目录
注意数据库目录必须为空,MySQL服务不能启动
[root@CentOS7 ~]# xtrabackup --copy-back --target-dir=/data/backup/base
5)还原属性
[root@CentOS7 ~]# chown -R mysql:mysql /var/lib/mysql
6)启动服务
[root@CentOS7 ~]# systemctl start mariadb
7)测试是否还原
MariaDB [hellodb]> select * from teachers;
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 93 | F |
| 5 | xiaoai | 33 | F |
+-----+---------------+-----+--------+
5 rows in set (0.00 sec)