xtrabackup包含兩個主要的工具,即xtrabackup和innobackupex,兩者區別以下:html
(1)xtrabackup只能備份innodb和xtradb兩種引擎的表,而不能備份myisam引擎的表;mysql
(2)innobackupex是一個封裝了xtrabackup的Perl腳本,支持同時備份innodb和myisam,但在對myisam備份時須要加一個全局的讀鎖。還有就是myisam不支持增量備份。sql
一、確保xtrabackup已經安裝;數據庫
我另外一篇文章介紹了安裝過程:https://www.cnblogs.com/weiyiming007/p/10281820.html工具
二、建立四個測試庫:testaa testbb testcc testdd測試
三、在四個數據庫中建立相同的表,插入一樣的數據(四個數據庫都執行);3d
mysql> create table test(id int,id1 int,id2 int,id3 int);htm
mysql> insert into test(id,id1,id2,id3) values(1,2,3,4);blog
四、執行備份;innodb
mkdir -p /data/backup/full
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 /data/backup/full
/data/backup/full:備份數據存放目錄
也能夠加上 --host參數;
可看到已經備份完成;
五、關閉數據庫並刪除數據庫文件
/var/lib/mysql/:是個人數據庫存放目錄
六、恢復
[root@saltstack ~]# innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --copy-back /data/backup/full/2019-01-17_14-00-54
--copy-back :把完整備份文件拷貝到目標目錄,由--defaults-file指定的my.cnf裏設置決定;
七、添加權限
八、啓動mysql
[root@saltstack ~]# systemctl start mysqld
九、驗證是否成功
至此還原完成;
我這個實驗是還原的整個數據目錄,也能夠還原部分數據,作法就是在恢復以前,把備份目錄中不想恢復的數據庫移走,而後再恢復就能夠了;