天天看點

使用xtrabackup備份innodb引擎的資料庫

innodb引擎的資料庫可以使用mysqldump備份,如果表很大幾十個G甚至上百G,顯示用mysqldump備份會非常慢。然後使用xtrabackup 可以很快的線上備份innodb資料庫。

InnoDB 有個商業的InnoDB Hotbackup,可以對InnoDB引擎的表實作線上熱備。而 percona出品的Xtrabackup,是InnoDB Hotbackup的一個開源替代品,可以線上對InnoDB/XtraDB引擎的表進行實體備份。 innobackupex是參考了InnoDB Hotbackup的innoback腳本修改而來的,主要是為了友善的同時備份InnoDB和MyISAM引擎的表,并且加入了一些使用的選項,如 –slave-info可以記錄備份恢複後,作為slave需要的一些資訊,根據這些資訊,可以很友善的利用備份來重做slave。

最新下載下傳位址如下: 

安裝如下:

tar zxf xtrabackup-0.7.tar.gz 

cd xtrabackup-0.7 

./configure 

make 

千萬不要make install  而是要接着下面的步驟操作。

cd innobase/xtrabackup/ 

make install 

然後,就會在你的/usr/bin目錄裡安裝上兩個工具:xtrabackup,innobackupex-1.5.1 

xtrabackup可以在不加鎖的情況下備份innodb資料表,不過此工具不能操作myisam。 

innobackupex-1.5.1是一個腳本封裝,能同時處理innodb和myisam,但在處理myisam時需要加一個讀鎖。 

/usr/bin/xtrabackup --backup --target-dir=/backup/mysqlbackup      這裡的target-dir 就是要備份到的目錄,這個工具不用指定資料庫名的,預設會把所有innodb引擎的資料庫全部備份。

等備份完了,你會看到 target-dir 下會有所有innodb引擎的庫,但是奇怪的是并沒有備份 .frm 的檔案,這個沒有關系,需要你手動拷貝一份即可。

至于恢複,拷貝回去就ok啦。

本文轉自 小楊_Ivan 51CTO部落格,原文連結:http://blog.51cto.com/aqiang/1896107