innobackupex備份和恢復MySQL數據

當MySQL數據量很小時,我們可以使用mysqldump來備份,無論是myisam引擎還是innodb引擎都是沒有問題的。

但數據量很大,比如上百GB甚至上TB時,再使用mysqldump備份就會很雞肋了,試想光備份一次全量備份要耗費10幾個小時,那就別幹別的了。因爲,畢竟mysqldump時是會鎖表的。

還好我們有xtrabakcup這個工具來備份量級比較大的數據,上百G的數據,僅僅幾十分鐘搞定,這主要取決於磁盤的I/O效率。不過xtrabackp默認只支持備份innodb,而myisam引擎的數據就不友好了。

不過,沒有關係,我們還有一個xtrabackup的變種工具–innobackupex,它不管是innodb還是myisam都通喫。 下面是innobackup工具的安裝以及使用方法。

1 安裝官方的yum源

rpm -ivh http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm

2 安裝innobackupex包

yum install percona-xtrabackup 

3 授權一個專門用來備份的用戶

GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'bakuser'@'localhost' identified by 'yourpassword';

4 全量備份

innobackupex --defaults-file=/etc/my.cnf --user=bakuser --password='yourpassword' /bakdir/

說明:defaults-file指定配置文件,它需要通過配置文件來獲取一些mysql服務的信息,比如datadir在哪裏。user和password就是剛剛授權的用戶和密碼,最後面的/bakdir爲備份數據存放目錄。

備份完成後,會在/bakdir生成一個以年月日時間爲命名的目錄,這個裏面就是備份的數據。假如備份的目錄爲2017-06-07_17-26-39

5 數據恢復

innobackupex --use-memory=2G --apply-log 2017-06-07_17-26-39
innobackupex --defaults-file=/etc/my.cnf  --use-memory=2G --copy-back /bakdir/2017-06-07_17-26-39/

說明:第一步爲恢復前的準備工作,這一步不做是沒法恢復的。第二步執行之前,需要把mysqld服務關閉,而且datadir要清空。

參考鏈接 :

innobackupex備份和恢復MySQL數據 : https://mp.weixin.qq.com/s/ch3NGfCtECvtI-GW6Q8_6Q

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章