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