天天看點

xtrabackup簡析

xtrabackup:

    xtrabackup是由percona公司開發的。對innoDB引擎支援非常好。在備份的時候不用鎖表。如果是MYiSAM引擎的,則需要鎖表。

        xtrabackup 是複制 ib_logfile0(ib_logfile1)事務日志來實行複制的。此外,還提供了perpare 功能。在恢複的時候還可以和資料庫資料比對。如果有更新的則更新到備份中。避免了資料的丢失。同時還提供了壓縮機制減少存儲壓力。

 官網下載下傳rpm包位址:https://www.percona.com/downloads/XtraBackup  也 可以yum安裝

    yum方式安裝:(以下是官網提供的制作yum源的方法)

    建構yum倉庫

        #yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm

        (此時:/etc/yum.repos.d/目錄下多個倉庫  percona-release.repo)

        # yum  list | grep percona (檢視軟體包)

    安裝   #yum install percona-xtrabackup-20.x86_64 -y  (這裡選擇 20版本的)

    備份:

        innobackupex是perl腳本對xtrabackup的封裝,和功能擴充。xtrabackup需要連接配接到資料庫和datadir操作權限。

        指令:# innobackupex  --user=root --defaults-file=.../my.cnf  /mnt

            #user 是資料庫的使用者(非系統的root) 有密碼 的還可以加參數 --password=

            # --defaults-file 如果不設定會自動設定為 /etc/my.cnf(如果多執行個體需要注意)

             --database= 單獨對某個資料庫做備份 ,若是不添加此參數那就那就是對全庫做備份

            #/mnt是将備份存放的目錄

    恢複:(可以把 資料檔案夾下的檔案清空 ,但是保留資料檔案夾)

            # innobackupex --copy-back /mnt/2017-02-13_17-05-08/

            這裡如果my.cnf檔案位置不在/etc下。需要 加參數 --default-file=.../my.cnf

        如果在備份的同時資料庫依舊在寫入操作。則需要 prepare 操作。(復原日志)

            先是:prepare 操作,分析事物日志。然後在恢複。

            --user-memory:指定prepare階段可使用的記憶體,記憶體多則速度快,預設為10MB

            # innobackupex --apply-log /mnt/2017-02-13_17-05-08/

            # innobackupex --copy-back /mnt/2017-02-13_17_05_08/

    修改data目錄的屬組和屬主:# chown -R mysql:mysql ../data

        不然啟動的時候會提示找不到 。pid 檔案。

        啟動服務即可。

    壓縮備份:(流操作)

            #innobackupex --user=root --stream=tar --defaults-file=/etc/my.cnf /mnt|gzip ->/mnt/mysql.tar.gz

            這裡的defaults-file 可以省略。如果配置檔案在别處需要。指定。

            可用參數:

        --parallel=4:  加速備份,這個選項會指定xtrabackup備份檔案的線程數。

        特别注意的是:這裡解壓檔案  需要參數 i

        tar zixf ......tar.gz  不然解壓會出錯。

本文轉自 swallow_zys  51CTO部落格,原文連結:http://blog.51cto.com/12042068/1897409,如需轉載請自行聯系原作者