Xtrabackup介紹和使用【基礎篇】

dbqs8710發表於2014-10-27
先說概述 

Xtrabackup有2款主要工具:xtrabackup和innobackupex
xtrabackup只能備份和恢復innodb,而且只備份.ibd檔案,.frm檔案它不管,恢復時DBA要自己提供
innobackupex能備份和恢復MyISAM檔案及.frm檔案,並且對xtrabackup作了友好的封裝,所以可用它進行全庫備份
不過有個問題,在對MyISAM備份時,會加個全庫讀鎖,阻塞寫服務

關於安裝

依賴包

yum install libaio libaio-devel perl-Time-HiRes curl curl-devel zlib-devel openssl-devel perl cpio expat-devel gettext-devel perl-ExtUtils-MakeMaker perl-DBD-MySQL.* package -y

到下載編譯好的二進位制包即可馬上使用

下面分別對這2個工具做簡單測試

innobackupex的備份原理如下圖:



簡單例項

備份
$ innobackupex --user=root --password=oracle /home/mysql/backup
模擬故障
$ mysqladmin -uroot -poracle shutdown
$ rm -rf /home/mysql/mysql/data/*
恢復
$ innobackupex --user=root --password=oracle --apply-log /home/mysql/backup/2013-10-08_14-32-27
$ innobackupex --user=root --password=oracle --copy-back /home/mysql/backup/2013-10-08_14-32-27 


xtrabackup備份原理大概有如下3個過程:
① 記錄LSN(log sequence number)
② 複製檔案
③ 啟動後臺程式,不停地記錄變化的redo
這個流程可以從xtrabackup備份輸出結果看出來

簡單測試

備份
$ xtrabackup --backup --target-dir=/home/mysql/backup
[mysql@even backup]$ ls
employees  ibdata1  xtrabackup_checkpoints  xtrabackup_logfile
模擬故障 
關閉MySQL,把整個datadir目錄清空,不過僅保留mysql和performance_schema這兩個庫
恢復
--恢復ibdata1,讓資料檔案自身保持一致
$ xtrabackup --prepare --target-dir=/home/mysql/backup/
--恢復ib_logfile0  ib_logfile1,減少恢復時間
$ xtrabackup --prepare --target-dir=/home/mysql/backup/
$ rsync -avrP /home/mysql/backup/ /home/mysql/mysql/data/
$ chown -R mysql:dba /home/mysql/mysql/data 


參考文章:






By 迦夜
2013-10-9
Early start makes easy stages


<!-- Baidu Button BEGIN --&gt

相關文章