關(guān)于數(shù)據(jù)庫(kù)備份以及備份工具,參考:http://blog.itpub.net/26230597/viewspace-1460065/,這里來介紹xtrabackup已經(jīng)如何使用xtrabackup進(jìn)行對(duì)數(shù)據(jù)庫(kù)的全備份已經(jīng)恢復(fù)。
創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比大觀網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式大觀網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋大觀地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。
下載地址為:http://www.percona.com/downloads/XtraBackup/
Chorm瀏覽器下面,在“DOWNLOADPERCONA XTRABACKUP”下面,選擇版本號(hào)以及os版本,有的瀏覽器打不開,可能會(huì)出現(xiàn)“No files found with current filters.”,那么就需要換個(gè)瀏覽器比如chrome就可以打開了,如下圖1.png所示:
也可以直接在linux下面是用wget的方式下載:
wget http://www.percona.com/downloads/XtraBackup/XtraBackup-2.2.9/binary/tarball/percona-xtrabackup-2.2.9-5067-Linux-x86_64.tar.gz
先check下是否已經(jīng)配置datadir,檢查是否有mysql服務(wù),有的話就在my.cnf配置文件里面設(shè)置datadir
[root@data01 ~]# more /etc/my.cnf |grepdatadir
[root@data01 ~]#
Ok,看到?jīng)]有配置datadir,去my.cnf里面配置
vim my.cnf
datadir = /home/data/mysql/data
再check下:
[root@data01 ~]# more /etc/my.cnf |grepdatadir
datadir = /home/data/mysql/data
[root@data01 ~]#
[root@data01 ~]#
tar -xvfpercona-xtrabackup-2.2.9-5067-Linux-x86_64.tar.gz
cp./percona-xtrabackup-2.2.9-Linux-x86_64/bin/innobackupex /usr/bin/innobackupex
cp./percona-xtrabackup-2.2.9-Linux-x86_64/bin/xtrabackup /usr/bin/xtrabackup
cp./percona-xtrabackup-2.2.9-Linux-x86_64/bin/xbcrypt /usr/bin/xbcrypt
cp ./percona-xtrabackup-2.2.9-Linux-x86_64/bin/xbstream/usr/bin/xbstream
PS:新版本已經(jīng)沒有了innobackupex-1.5.1這個(gè)小插件了。
[root@data01 ~]# innobackupex --help |more
Options:
--apply-log
Prepare a backup in BACKUP-DIR by applying the transaction log file
named "xtrabackup_logfile" located in the same directory.Also,
create new transaction logs. The InnoDB configuration is read from
the file "backup-my.cnf".
--backup-locks
This option controls if backup locks should be used instead of FLUSH
TABLES WITH READ LOCK on the backup stage. The option has no effect
when backup locks are not supported by the server. This option is
enabled by default, disable with --no-backup-locks.
3.5 源碼方式安裝
參考:http://www.percona.com/doc/percona-xtrabackup/2.2/installation/compiling_xtrabackup.html
xtrabackup:支持innodb存儲(chǔ)引擎表,xtradb存儲(chǔ)引擎表
innobackupex:支持innodb存儲(chǔ)引擎表、xtradb存儲(chǔ)引擎表、myisam存儲(chǔ)引擎表。
--defaults-file
同xtrabackup的--defaults-file參數(shù)
--apply-log
對(duì)xtrabackup的--prepare參數(shù)的封裝
--copy-back
做數(shù)據(jù)恢復(fù)時(shí)將備份數(shù)據(jù)文件拷貝到MySQL服務(wù)器的datadir ;
--remote-host=HOSTNAME
通過ssh將備份數(shù)據(jù)存儲(chǔ)到進(jìn)程服務(wù)器上;
--stream=[tar]
備份文件輸出格式, tar時(shí)使用tar4ibd , 該文件可在XtarBackup binary文件中獲得.如果備份時(shí)有指定--stream=tar, 則tar4ibd文件所處目錄一定要在$PATH中(因?yàn)槭褂玫氖莟ar4ibd去壓縮, 在XtraBackup的binary包中可獲得該文件)。
在使用參數(shù)stream=tar備份的時(shí)候,你的xtrabackup_logfile可能會(huì)臨時(shí)放在/tmp目錄下,如果你備份的時(shí)候并發(fā)寫入較大的話 xtrabackup_logfile可能會(huì)很大(5G+),很可能會(huì)撐滿你的/tmp目錄,可以通過參數(shù)--tmpdir指定目錄來解決這個(gè)問題。
--tmpdir=DIRECTORY
當(dāng)有指定--remote-host or --stream時(shí), 事務(wù)日志臨時(shí)存儲(chǔ)的目錄, 默認(rèn)采用MySQL配置文件中所指定的臨時(shí)目錄tmpdir
--redo-only--apply-log組,
強(qiáng)制備份日志時(shí)只redo ,跳過rollback。這在做增量備份時(shí)非常必要。
--use-memory=#
該參數(shù)在prepare的時(shí)候使用,控制prepare時(shí)innodb實(shí)例使用的內(nèi)存量,用來取代my.cnf中的buffer_pool_size值,如果你是獨(dú)立服務(wù)器,而且內(nèi)存足夠大的話,為了加快備份恢復(fù)的效率,你可以調(diào)大--use-memory這個(gè)參數(shù)值
--throttle=IOS
同xtrabackup的--throttle參數(shù)
--sleep=是給ibbackup使用的,指定每備份1M數(shù)據(jù),過程停止拷貝多少毫秒,也是為了在備份時(shí)盡量減小對(duì)正常業(yè)務(wù)的影響,具體可以查看ibbackup的手冊(cè);
--compress[=LEVEL]
對(duì)備份數(shù)據(jù)迚行壓縮,僅支持ibbackup,xtrabackup還沒有實(shí)現(xiàn);
--include=REGEXP
對(duì) xtrabackup參數(shù)--tables的封裝,也支持ibbackup。備份包含的庫(kù)表,例如:--include="test.*",意思是要備份 test庫(kù)中所有的表。如果需要全備份,則省略這個(gè)參數(shù);如果需要備份test庫(kù)下的2個(gè)表:test1和test2,則寫成:--include="test.test1|test.test2"。也可以使用通配符,如:--include="test.test*"。
--databases=LIST
列出需要備份的databases,如果沒有指定該參數(shù),所有包含MyISAM和InnoDB表的database都會(huì)被備份;
--uncompress
解壓備份的數(shù)據(jù)文件,支持ibbackup,xtrabackup還沒有實(shí)現(xiàn)該功能;
--slave-info
備份從庫(kù), 加上--slave-info備份目錄下會(huì)多生成一個(gè)xtrabackup_slave_info 文件, 這里會(huì)保存主日志文件以及偏移, 文件內(nèi)容類似于:CHANGE MASTER TO MASTER_LOG_FILE='', MASTER_LOG_POS=0
--socket=SOCKET
指定mysql.sock所在位置,以便備份進(jìn)程登錄mysql.
--safe-slave-backup
則會(huì)暫停Slave的SQL線程,等待到?jīng)]有打開的臨時(shí)表的時(shí)候開始備份.備份結(jié)束后SQL線程會(huì)自動(dòng)啟動(dòng),這樣就可以確保一致性的復(fù)制狀態(tài).
只備份不壓縮:
xtrabackup --defaults-file=/etc/my.cnf--user=root --password="" --port=3306 --backup--target-dir=/data/backups/mysql/$(date +%Y%m%d)/
備份壓縮:
xtrabackup --defaults-file=/etc/my.cnf--user=root --password="" --port=3306 --backup --socket=/usr/local/mysql/mysql.sock--stream=tar --target-dir=/data/backups/mysql/$(date +%Y%m%d)/ |gzip >alldbfullbackup.tar.gz
參考:http://www.percona.com/doc/percona-xtrabackup/2.2/howtos/recipes_ibkx_compressed.html
備份過程如下所示:
7.1 全備份innobackupex --defaults-file=/etc/my.cnf--user=root --password="" --target-dir=/data/backups/mysql/$(date+%Y%m%d)/ --no-timestamp --parallel=2
備份過程如下:
xtrabackup備份恢復(fù)工具比較適合數(shù)據(jù)增長(zhǎng)型數(shù)據(jù)庫(kù)。對(duì)于數(shù)據(jù)增長(zhǎng)型的庫(kù),由于數(shù)據(jù)的增長(zhǎng)導(dǎo)致數(shù)據(jù)備份和恢復(fù)的空間和時(shí)間上的壓力較大。而xtrabackup也有增量備份的功能,在短時(shí)間內(nèi)可以通過進(jìn)行增量備份來保證數(shù)據(jù)的安全性。而長(zhǎng)期來看,仍然需要間斷性的進(jìn)行全庫(kù)備份。此外,由于xtrabackup對(duì)innodb的數(shù)據(jù)庫(kù)不進(jìn)行鎖定,因此對(duì)要求不影響線上服務(wù)的數(shù)據(jù)備份和恢復(fù)較適合。 而對(duì)于數(shù)據(jù)量無明顯增長(zhǎng),且更新為主的數(shù)據(jù)更新型數(shù)據(jù)庫(kù),xtrabackup顯得過于復(fù)雜。xtrabackup操作反而不如mysqldump的性能高。
----------------------------------------------------------------------------------------------------------------
<版權(quán)所有,文章允許轉(zhuǎn)載,但必須以鏈接方式注明源地址,否則追究法律責(zé)任!>
原博客地址: http://blog.itpub.net/26230597/viewspace-1465772/
原作者:黃杉(mchdba)
----------------------------------------------------------------------------------------------------------------