Xtrabackup是一個對InnoDB做數(shù)據(jù)備份的工具,支持在線熱備份(備份時不影響數(shù)據(jù)讀寫),是商業(yè)備份工具InnoDB Hotbackup的一個很好的替代品。
Xtrabackup有兩個主要的工具:xtrabackup、innobackupex
(1)xtrabackup只能備份InnoDB和XtraDB兩種數(shù)據(jù)表,而不能備份MyISAM數(shù)據(jù)表
(2)innobackupex-1.5.1則封裝了xtrabackup,是一個腳本封裝,所以能同時備份處理innodb和myisam,但在處理myisam時需要加一個讀鎖
(3)使用幫助:http://www.percona.com/docs/wiki/percona-xtrabackup:start
環(huán)境:CentOS 5.4,xtrabackup-1.6.tar.gz
1、首先從http://www.percona.com/下載
wget http://www.percona.com/downloads/XtraBackup/XtraBackup-1.6/Linux/binary/i686/xtrabackup-1.6.tar.gz
2、檢查服務(wù)器是否安裝了Mysql版本,如果沒有就要安裝好mysql
my.cnf中必須有datadir=/var/lib/mysql
3、開始安裝xtrabackup
1)解壓
cd /qeedoodb/setup
tar zxvf xtrabackup-1.6.tar.gz
2)拷貝innobackupex、xtrabackup、xtrabackup_51 工具到/usr/bin
cp /qeedoodb/setup/xtrabackup-1.6/bin/innobackupex /usr/bin/innobackupex
cp /qeedoodb/setup/xtrabackup-1.6/bin/xtrabackup /usr/bin/xtrabackup
cp /qeedoodb/setup/xtrabackup-1.6/bin/xtrabackup_51 /usr/bin/xtrabackup_51
4、備份并打包壓縮
innobackupex --user=root --password=123456 --defaults-file=/etc/my.cnf --database=zztx --stream=tar /data/back_data/ 2>/data/back_data/zztx.log | gzip 1>/data/back_data/zztx.tar.gz
說明:
--database=zztx 單獨(dú)對zztx數(shù)據(jù)庫做備份 ,若是不添加此參數(shù)那就那就是對全庫做備份
2>/data/back_data/zztx.log 輸出信息寫入日志中
1>/data/back_data/zztx.tar.gz 打包壓縮存儲到該文件中
此處可以寫個腳本做備份(backup.sh)
#!/bin/sh
echo "開始備份..."`date`
log=zztx01_`date +%y%m%d%H%M`.log
str=zztx01_`date +%y%m%d%H%M`.tar.gz
innobackupex --user=root --password=123456 --defaults-file=/etc/my.cnf --database=zztx --stream=tar /data/back_data/ 2>/data/back_data/$log | gzip 1>/data/back_data/$str
echo "備份完畢..."`date`
5、恢復(fù)數(shù)據(jù)
1) 先停止數(shù)據(jù)庫:service mysqld stop
2) 解壓 tar -izxvf zztx.tar.gz -C /data/back_data/db/ (沒有db ,需要mkdir /data/back_data/db/)
3) 恢復(fù) innobackupex --user=root --password --defaults-file=/etc/my.cnf --apply-log /data/back_data/db/ (--apply-log選項(xiàng)的命令是準(zhǔn)備在一個備份上啟動mysql服務(wù))
innobackupex --user=root --password --defaults-file=/etc/my.cnf --copy-back /data/back_data/db/ (--copy-back 選項(xiàng)的命令從備份目錄拷貝數(shù)據(jù),索引,日志到my.cnf文 件里規(guī)定的初始位置。)
4) 賦權(quán) chown -R mysql.mysql /var/lib/mysql/*
5) 重啟數(shù)據(jù)庫 service mysqld restart
6) 刪除垃圾 cd /var/lib/mysql/ && rm xtrabackup*
進(jìn)入數(shù)據(jù)庫查看,一切OK~