1.練習差異備份
差異備份:備份完全備份后,新產生的數據。
在192.168.88.50主機完成差異備份
步驟一:練習差異備份//周一完全備份
mysql> select * from test.one;
+---------+------+------+
| name | age | sex |
+---------+------+------+
| 測試 | 10 | 男 |
| 測試1 | 11 | 女 |
| 測試2 | 11 | 女 |
| 測試3 | 11 | 女 |
| 測試4 | 11 | 女 |
| 測試5 | 11 | 女 |
| 測試6 | 11 | 女 |
| 測試7 | 11 | 女 |
+---------+------+------+
8 rows in set (0.00 sec)
[root@mysql150 ~]# xtrabackup --host=127.0.0.1 --user=root --password=123456 --backup --target-dir=/alldir --datadir=/var/lib/mysql
//插入新數據 (可以插入多行)
mysql> insert into test.one values ('測試8',11,'女');//周二差異備份,備份周一備份后新產生的數據
[root@mysql150 ~]# xtrabackup --host=127.0.0.1 --user=root --password=123456 --backup --target-dir=/dir2 --incremental-basedir=/alldir --datadir=/var/lib/mysql
mysql> insert into test.one values ('測試9',11,'女');//周三差異備份,備份周一備份后新產生的數據
[root@mysql150 ~]# xtrabackup --host=127.0.0.1 --user=root --password=123456 --backup --target-dir=/dir3 --incremental-basedir=/alldir --datadir=/var/lib/mysql
mysql> insert into test.one values ('測試10',11,'女');//周四差異備份,備份周一備份后新產生的數據
[root@mysql150 ~]# xtrabackup --host=127.0.0.1 --user=root --password=123456 --backup --target-dir=/dir4 --incremental-basedir=/alldir --datadir=/var/lib/mysql
mysql> insert into test.one values ('測試11',11,'女');//周五差異備份,備份周一備份后新產生的數據
[root@mysql150 ~]# xtrabackup --host=127.0.0.1 --user=root --password=123456 --backup --target-dir=/dir5 --incremental-basedir=/alldir --datadir=/var/lib/mysql
mysql> insert into test.one values ('測試12',11,'女');//周六差異備份,備份周一備份后新產生的數據
[root@mysql150 ~]# xtrabackup --host=127.0.0.1 --user=root --password=123456 --backup --target-dir=/dir6 --incremental-basedir=/alldir --datadir=/var/lib/mysql
mysql> insert into test.one values ('測試13',11,'女');//周日差異,備份備份周一備份后新產生的數據
[root@mysql150 ~]# xtrabackup --host=127.0.0.1 --user=root --password=123456 --backup --target-dir=/dir7 --incremental-basedir=/alldir --datadir=/var/lib/mysql
2.練習差異恢復
差異恢復數據步驟:
- 準備恢復數據
- 合并數據
- 清空數據庫目錄
- 拷貝數據
- 修改數據庫目錄所有者/組用戶為mysql
- 重啟數據庫服務
具體操作如下:
把MySQL150的備份文件拷貝給MySQL151
[root@mysql150 ~]# scp -r /alldir/ root@192.168.10.151:/root
[root@mysql150 ~]# scp -r /dir7 root@192.168.10.151:/root151主機操作
準備恢復數據
[root@mysql151 ~]# xtrabackup --prepare --apply-log-only --target-dir=/root/alldir
合并數據
說明:將周日的差異備份與周一的完全備份合并,因為周日的差異備份包擴周二+周日的所有數據
[root@mysql151 ~]# xtrabackup --prepare --apply-log-only --target-dir=/root/alldir --incremental-dir=/root/dir7
完成事務處理并使備份可恢復
[root@mysql151 ~]# xtrabackup --prepare --target-dir=/root/alldir
清空數據庫目錄
[root@mysql151 ~]# rm -rf /var/lib/mysql/*
拷貝數據
[root@mysql151 ~]# xtrabackup --copy-back --target-dir=/root/alldir
調整文件權限
[root@mysql151 ~]# chown -R mysql:mysql /var/lib/mysql
啟動 MySQL 服務
[root@mysql151 ~]# systemctl restart mysqld
[root@mysql151 ~]# mysql -uroot -p123456
mysql> select * from test.one;
+----------+------+------+
| name | age | sex |
+----------+------+------+
| 測試 | 10 | 男 |
| 測試1 | 11 | 女 |
| 測試2 | 11 | 女 |
| 測試3 | 11 | 女 |
| 測試4 | 11 | 女 |
| 測試5 | 11 | 女 |
| 測試6 | 11 | 女 |
| 測試7 | 11 | 女 |
| 測試8 | 11 | 女 |
| 測試9 | 11 | 女 |
| 測試10 | 11 | 女 |
| 測試11 | 11 | 女 |
| 測試12 | 11 | 女 |
| 測試13 | 11 | 女 |
+----------+------+------+
14 rows in set (0.01 sec)