Xtrabackup熱備份mysql工具使用

下載地址:
    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&gt; use db5;
    mysql&gt; 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&gt; 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>
相關文章
相關標籤/搜索