www.percona.com
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.3/binary/redhat/6/i386/percona-xtrabackup-2.3.3-1.el6.i686.rpm
yum install percona-xtrabackup-2.3.3-1.el6.i686.rpm
xtrabackup 選項 xtrabackup 工具備許多參數,具體可去官網查詢(xtrabackup 參數選項 | innobackupex 參數選項),這裏簡單介紹 innobackupex 一些經常使用的參數。 1) innobackupex 參數選項 --defaults-file=[MY.CNF] //指定配置文件:只能從給定的文件中讀取默認選項。 且必須做爲命令行上的第一個選項;必須是一個真實的文件,它不能是一個符號連接。 --databases=# //指定備份的數據庫和表,格式爲:--database="db1[.tb1] db2[.tb2]" 多個庫之間以空格隔開,若是此選項不被指定,將會備份全部的數據庫。 --include=REGEXP //用正則表達式的方式指定要備份的數據庫和表,格式爲 --include=‘^mydb[.]mytb’ ,對每一個庫中的每一個表逐一匹配,所以會建立全部的庫,不過是空的目錄。--include 傳遞給 xtrabackup --tables。 --tables-file=FILE //此選項的參數須要是一個文件名,此文件中每行包含一個要備份的表的完整名稱,格式爲databasename.tablename。該選項傳遞給 xtrabackup --tables-file,與--tables選項不一樣,只有要備份的表的庫纔會被建立。 注意:部分備份(--include、--tables-file、--database)須要開啓 innodb_file_per_table 。 --compact //建立緊湊型備份,忽略全部輔助索引頁,只備份data page;經過--apply-log中重建索引--rebuild-indexs。 --compress //此選項指示xtrabackup壓縮備份的InnoDB數據文件,會生成 *.qp 文件。 --decompress //解壓縮qp文件,爲了解壓縮,必須安裝 qpress 工具。 Percona XtraBackup不會自動刪除壓縮文件,爲了清理備份目錄,用戶應手動刪除 * .qp文件:find /data/backup -name "*.qp" | xargs rm。 --no-timestamp //指定了這個選項備份將會直接存儲在 BACKUP-DIR 目錄,再也不建立時間戳文件夾。 --apply-log //應用 BACKUP-DIR 中的 xtrabackup_logfile 事務日誌文件。通常狀況下,在備份完成後,數據尚且不能用於恢復操做,由於備份的數據中可能會包含還沒有提交的事務或已經提交但還沒有同步至數據文件中的事務。所以,此時數據文件仍處於不一致狀態。「準備」的主要做用正是經過回滾未提交的事務及同步已經提交的事務至數據文件使得數據文件處於一致性狀態。 --use-memory=# //此選項接受一個字符參數(1M/1MB,1G/1GB,默認100M),僅與--apply-log一塊兒使用,該選項指定prepare時用於崩潰恢復(crash-recovery)的內存。 --copy-back //拷貝先前備份全部文件到它們的原始路徑。但原路徑下不能有任何文件或目錄,除非指定 --force-non-empty-directories 選項。 --force-non-empty-directories //恢復時指定此選項,可以使 --copy-back 和 --move-back 複製文件到非空目錄,即原data目錄下能夠有其餘文件,可是不能有與恢復文件中同名的文件,不然恢復失敗。 --rsync //此選項可優化本地文件(非InnoDB)的傳輸。rsync工具一次性拷貝全部非InnoDB文件,而不是爲每一個文件單首創建cp,在備份恢復不少數據庫和表時很是高效。此選項不能和 --stream 一塊兒使用。 --incremental //這個選項告訴 xtrabackup 建立一個增量備份,而不是徹底備份。它傳遞到 xtrabackup 子進程。當指定這個選項,能夠設置 --incremental-lsn 或 --incremental-basedir。若是這2個選項都沒有被指定,--incremental-basedir 傳遞給 xtrabackup 默認值,默認值爲:基礎備份目錄的第一個時間戳備份目錄。 --incremental-basedir=DIRECTORY //該選項接受一個字符串參數,該參數指定做爲增量備份的基本數據集的完整備份目錄。它與 --incremental 一塊兒使用。 --incremental-dir=DIRECTORY //該選項接受一個字符串參數,該參數指定了增量備份將與完整備份相結合的目錄,以便進行新的完整備份。它與 --incremental 選項一塊兒使用。 --redo-only //在「準備基本完整備份」 和 「合併全部的增量備份(除了最後一個增備)」時使用此選項。它直接傳遞給xtrabackup的 xtrabackup --apply-log-only 選項,使xtrabackup跳過"undo"階段,只作"redo"操做。若是後面還有增量備份應用到這個全備,這是必要的。有關詳細信息,請參閱xtrabackup文檔。 --parallel=NUMBER-OF-THREADS //此選項接受一個整數參數,指定xtrabackup子進程應用於同時備份文件的線程數。請注意,此選項僅適用於文件級別,也就是說,若是您有多個.ibd文件,則它們將被並行複製; 若是您的表一塊兒存儲在一個表空間文件中,它將不起做用。 2) xtrabackup 參數選項 --apply-log-only //這個選項使在準備備份(prepare)時,只執行重作(redo)階段,這對於增量備份很是重要。
建立用於備份恢復的用戶 pxb 並賦予權限 grant reload,process,lock tables,replication client on *.* to 'pxb'@'localhost' identified by '123456'; 建立存放目錄 mkdir -pv /data/pxb 進行數據庫全備 innobackupex --defaults-file=/etc/my.cnf --user=pxb --password=123456 --socket=/tmp/mysql.sock /data/pxb 能夠看到整個備份過程:鏈接數據庫,開始拷貝redo log,拷貝innodb表文件,鎖表、拷貝非innodb表文件,中止拷貝redo log,解鎖。
xtrabackup 增量備份恢復mysql