percona innobackupex 使用
直接使用官方的二進(jìn)制安裝。
https://www.percona.com/doc/percona-xtradb-cluster/5.6/installation.html#installation
innobackupex:
這個(gè)是其實(shí)是下面三個(gè)工具的一個(gè)perl腳本封裝,可以備份MyISAM, InnoDB, XtraDB表。
xtrabackup:
一個(gè)由C編譯而來(lái)的二進(jìn)制文件,只能備份InnoDB和XtraDB數(shù)據(jù)。
xbcrypt:
用來(lái)加密或解密備份的數(shù)據(jù)。
xbstream:
用來(lái)解壓或壓縮xbstream格式的壓縮文件。
數(shù)據(jù)庫(kù)備份的準(zhǔn)備工作:
新建一個(gè)最小權(quán)限的用戶進(jìn)行備份。
mysql語(yǔ)法:
mysql> CREATE USER 'larry'@'localhost' IDENTIFIED BY 'QAZWSX123';
mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'larry'@'localhost';
mysql> GRANT RELOAD,LOCK TABLES, REPLICATION CLIENT ON *.* TO 'larry'@'localhost';
mysql> FLUSH PRIVILEGES;
創(chuàng)建備份的數(shù)據(jù)目錄
root@hostname# mkdir /databackups
使用innobackupex進(jìn)行一次完整的備份
root@hostname# innobackupex --user=databaseusername --password=QAZWSX123 /databackups
...
...
...
140401 12:02:20 ?innobackupex: completed OK!
備份過(guò)程的說(shuō)明:
1.它將備份數(shù)據(jù)文件存放到了我新建的備份數(shù)據(jù)存放目錄,并且它保存至了一個(gè)以時(shí)間命令的目錄中。
2.binlogs文件的時(shí)間點(diǎn),備份時(shí)它正處于那個(gè)二進(jìn)制日志文件的哪個(gè)點(diǎn)上
3.完成備份立即斷開(kāi)與databases server的連接
4.通知備份完成
備份目錄中文件的說(shuō)明
(1)xtrabackup_checkpoints —— 備份類型(如完全或增量)、備份狀態(tài)(如是否已經(jīng)為prepared狀態(tài))和LSN(日志序列號(hào))范圍信息;TARE
在使用innobackupex進(jìn)行備份時(shí),還可以使用--no-timestamp選項(xiàng)來(lái)阻止命令自動(dòng)創(chuàng)建一個(gè)以時(shí)間命名的目錄;如此一來(lái),innobackupex命令將會(huì)創(chuàng)建一個(gè)BACKUP-DIR目錄來(lái)存儲(chǔ)備份數(shù)據(jù)。
一般情況下,在備份完成后,數(shù)據(jù)尚且不能用于恢復(fù)操作,因?yàn)閭浞莸臄?shù)據(jù)中可能會(huì)包含尚未提交的事務(wù)或已經(jīng)提交但尚未同步至數(shù)據(jù)文件中的事務(wù)。因此,此時(shí)數(shù)據(jù)文件仍處理不一致?tīng)顟B(tài)。“準(zhǔn)備”的主要作用正是通過(guò)回滾未提交的事務(wù)及同步已經(jīng)提交的事務(wù)至數(shù)據(jù)文件也使得數(shù)據(jù)文件處于一致性狀態(tài)。
innobakupex命令的--apply-log選項(xiàng)可用于實(shí)現(xiàn)上述功能。如下面的命令:
root@hostname# innobackupex --user=databaseusername --password=QAZWSX123 --apply-log /databackups/2014-04-01_12-41-31/
/databackups/2014-04-01_12-41-31/這個(gè)目錄就是剛才使用完全備份自動(dòng)生成的備份目錄。
140401 12:47:58 ?innobackupex: completed OK!
出現(xiàn)這行,備份成功。
在實(shí)現(xiàn)“準(zhǔn)備”的過(guò)程中,innobackupex通常還可以使用--use-memory選項(xiàng)來(lái)指定其可以使用的內(nèi)存的大小,默認(rèn)通常為100M。如果有足夠的內(nèi)存可用,可以多劃分一些內(nèi)存給prepare的過(guò)程,以提高其完成速度。
切記,不能再剛整理(準(zhǔn)備)完成就用來(lái)恢復(fù),什么時(shí)候需要恢復(fù)就什么時(shí)候整理!
從一個(gè)完全備份中恢復(fù)數(shù)據(jù)
恢復(fù)不能啟動(dòng)mysql
innobackupex命令的--copy-back選項(xiàng)用于執(zhí)行恢復(fù)操作,其通過(guò)復(fù)制所有數(shù)據(jù)相關(guān)的文件至mysql服務(wù)器DATADIR目錄中來(lái)執(zhí)行恢復(fù)過(guò)程。innobackupex通過(guò)backup-my.cnf來(lái)獲取DATADIR目錄的相關(guān)信息。
[root@Master ~]# innobackupex --copy-back --user=larry --password=QAZWSX123 /backups/2014-04-01_12-41-31/
......
......
......
140401 12:56:00 ?innobackupex: completed OK!
出現(xiàn)上面這行則執(zhí)行成功。
然后在mysql數(shù)據(jù)目錄更改其文件及目錄的所有者和屬組。
root@hostname# chown -R mysql:mysql /var/lib/mysql
最后啟動(dòng)mysql。
service mysql start
驗(yàn)證數(shù)據(jù)備份恢復(fù)的完整性。
查看數(shù)據(jù)庫(kù)及數(shù)據(jù)表。
建議:在完成備份的恢復(fù)過(guò)程后,我們應(yīng)當(dāng)立即做一次完整備份。
[root@Master data]# innobackupex --user=databaseusername --password=QAZWSX123 /databackups
數(shù)據(jù)庫(kù)的增量備份:
第一次的增量備份:
root@hostname# innobackupex --incremental /backups/ --incremental-basedir=/backups/2014-04-01_13-06-56/
說(shuō)明:
--incremental 明確說(shuō)明我們的操作是增量備份
--incremental-basedir= 明確說(shuō)明我們是相對(duì)于誰(shuí)做增量(上次完全/上次增量),如果每一次都相對(duì)于上次的完全備份做增量備份,那就是差異備份!
需要注意的是,增量備份僅能應(yīng)用于InnoDB或XtraDB表,對(duì)于MyISAM表而言,執(zhí)行增量備份時(shí)其實(shí)進(jìn)行的是完全備份。
本文轉(zhuǎn)自ting2junshui51CTO博客,原文鏈接:?http://blog.51cto.com/ting2junshui/1729696,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的percona innobackupex 使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Django 中 cookie的使用
- 下一篇: 请不要做浮躁的人——转给即将上路或者正在