xtrabackup 實現mysql增量備份和還原
阿新 • • 發佈:2019-05-06
啟動服務 test drop -a www. 實現 sse edi .com 下載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源)
[[email protected] ~]# yum install -y percona-xtrabackup-24-2.4.13-1.el7.x86_64.rpm
備份過程
1)完全備份
[[email protected] ~]# 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)第一次增量備份
[[email protected] ~]# xtrabackup --backup --target-dir=/data/backup/inc1 --incremental-basedir=/data/backup/base
4)第二次修改數據
MariaDB [hellodb]> update teachers set gender=‘F‘ where tid=5;`
5)第二次增量
[[email protected] ~]#xtrabackup --backup --target-dir=/data/backup/inc2 --incremental-basedir=/data/backup/inc1
6)將備份的數據庫文件拷貝至遠程主機
備份過程生成三個備份目錄
[[email protected] ~]# 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
[[email protected] ~]# scp -r /data/backup/* 192.168.93.102:/data/backup
還原過程
在遠程主機上確認是否復制成功
[[email protected] ~]# 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 阻止回滾未完成的事務
[[email protected] ~]# xtrabackup --prepare --apply-log-only --target-dir=/data/backup/base
2)合並第1次增量備份到完全備份
[[email protected] ~]# xtrabackup --prepare --apply-log-only --target-dir=/data/backup/base --incremental-dir=/data/backup/inc1
3)合並第2次增量備份到完全備份
如果是最後一次增量備份,還原時不需要加選項--apply-log-only
[[email protected] ~]# xtrabackup --prepare --target-dir=/data/backup/base --incremental-dir=/data/backup/inc2
4)復制到數據庫目錄
註意數據庫目錄必須為空,MySQL服務不能啟動
[[email protected] ~]# xtrabackup --copy-back --target-dir=/data/backup/base
5)還原屬性
[[email protected] ~]# chown -R mysql:mysql /var/lib/mysql
6)啟動服務
[[email protected] ~]# 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)
xtrabackup 實現mysql增量備份和還原