使用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。
最新下載地址如下:
http://www.percona.com/mysql/xtrabackup/0.7/
安裝如下:
tar zxf xtrabackup-0.7.tar.gz
cd xtrabackup-0.7
./configure
make
千萬不要make install 而是要接著下面的步驟操作。
cd innobase/xtrabackup/
make
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啦。
使用xtrabackup備份innodb引擎的數據庫