下載地址: https://pan.baidu.com/s/1qYvRDFY 熱備份工具,備份不鎖表。 備份時只備份表中記錄,不備份表結構 增量備份時,須要先徹底備份,在增量備份 yum install -y percona-xtrabackup-2.1.6-702.rhel6.x86_64.rpm [root@localhost opt]# rpm -ql percona-xtrabackup /usr/bin/innobackupex #支持myisam引擎鎖表備份 /usr/bin/innobackupex-1.5.1 #支持myisam引擎鎖表備份 /usr/bin/xbcrypt /usr/bin/xbstream /usr/bin/xtrabackup #5.1版本用這個 /usr/bin/xtrabackup_55 #給5.5版本用的備份腳本 /usr/bin/xtrabackup_56 #給5.6版本及以上的版本用的 /usr/share/doc/percona-xtrabackup-2.1.6 /usr/share/doc/percona-xtrabackup-2.1.6/COPYING /usr/bin/xtrabackup_56 的用法 --backup 備份數據 --target-dir=目錄名 備份文件存儲的位置(就是你把備份的數據存放哪裏) --datadir=/usr/local/mysql/ 數據庫目錄 --prepare 準備恢復數據 --incremental-basedir=目錄名 增量備份時,指定參考的完整備份路徑(增量備份的時候用的參數) --incrementar-dir=目錄名 準備恢復目錄時,指定增量備份的據經(把增量備份的數據還原的時候用的參數) 例題: 備份數據(在使用增量備份前,首先要來一次完整備份) 第一次完整備份(備份到/mydata下) [root@localhostopt]#xtrabackup_56 --backup \ --target-dir=/mydata/ \ --datadir=/usr/local/mysql/data 第一次增量備份(把增量備份的數據備份到/new1) [root@localhostopt]# xtrabackup_56 --backup \ --target-dir=/new1/ \ --datadir=/usr/local/mysql/data \ --incremental-basedir=/mydata/ 第二次增量備份把增量備份的數據備份到/new2) [root@localhost opt]# xtrabackup_56 --backup --target-dir=/new2/ --datadir=/usr/local/mysql/data --incremental --basedir/new1/ 數據恢復(我這裏的庫表操做是db5.liuwenzhi。但願下面出現了db5看得懂) 先恢復第一次完整備份的數據 模擬數據丟失 先備份一下: [root@localhost opt]#xtrabackup_56 --prepare --datadir=/usr/local/mysql/data/ --target-dir=/alldir/</p><p> mysql> use db5; mysql> delete from liuwenzhi; 拷貝ibd文件到/usr/local/mysql/data/db5/覆蓋 [root@localhost opt]# cp /alldir/db5/liuwenzhi.ibd /usr/local/mysql/data/db5</p><p> 重啓服務 [root@localhost opt]# /etc/init.d/mysqld restart 查看恢復內容(恢復到第一次完整備份的那裏) 查看lsn的位置量 [root@localhost opt]# cat /alldir/xtrabackup_checkpoints backup_type = full-prepared from_lsn = 0 to_lsn = 1997713 last_lsn = 1997713 compact = 0 mysql> select * from liuwenzhi; 再恢復第二次增量備份的數據 [root@localhost opt]# xtrabackup_56 --prepare --datadir=/usr/local/mysql/data/ --target-dir=/alldir/ --incremental-dir=/new1/ 在拷貝ibd文件到/usr/local/mysql/data/db5/覆蓋 [root@localhost opt]# select * from liuwenzhi; 查看lsn的位置量已更改 [root@localhost opt]# cat /alldir/xtrabackup_checkpoints backup_type = full-prepared from_lsn = 0 to_lsn = 2000761 last_lsn = 200076 compact = 0 第二次恢復同第一次操做同樣 每次增量還原後查看cat /alldir/xtrabackup_checkpoints的lsn位置變量是否是變了 最後注意的地方就是: 在還原的時候是要按你每次備份的順序還原。 如:增量備份1,2,3次。 還原的時候還原第三次的時候,必定是要第二次也要還原的。 這個備份就是靠lsn位的。lsn位有點像mysql的binlog日誌所記錄的信息差很少,它也有一個標記的位置。 也能夠使用binlog日誌備份,時間,或者位置變量這兩種方法吧。這個不太清除。</p>