Mysql第三方備份工具Xtrabackup使用說明

1Xtrabackup安裝

1)yum安裝方式:

yuminstallhttp://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm

yumlist | grep percona

yuminstall xtrabackup

 

2)apt安裝方式:

apt-keyadv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A

debhttp://repo.percona.com/apt VERSION main

deb-srchttp://repo.percona.com/apt VERSION main

apt-getupdate

apt-getinstall percona-xtrabackup

 

2、全備:

innobackupex--defaults-file=/etc/my.cnf --host=127.0.0.1 -port=3306 --user=root--password=123456 --slave-info --safe-slave-backup --no-timestamp  /data/mysqlbak/2015.sql1717

參數說明:

--slave-info會將Masterbinary log的文件名和偏移位置記錄打印出來,同時也保存到xtrabackup_slave_info文件中.

--safe-slave-backup會暫停SlaveSQL線程,等待到沒有打開的臨時表的時候開始備份.備份結束後SQL線程會自動啓動,這樣就可以確保一致性的複製狀態.

--no-timestamp 是讓innobackupex別自動生成一個時間戳的目錄名/home/mysqlbak/2013***,而是存放在/home/mysqlbak/base


3、全備恢復:

rm-rf /usr/local/mysql/data/*    ;#測試環境刪除數據目錄

innobackupex  --apply-log /data/mysqlbak/2015.sql1717  ;#準備

innobackupex  --copy-back /data/mysqlbak/2015.sql1717  ;#恢復

chown-R mysql.mysql /usr/local/mysql/data  ;#修改目錄權限

/etc/init.d/mysqlstart       #啓動mysql

 

4、部分備份:

innobackupex部分備份,有以下三個參數可選擇:

1.--databases="database1[.table1] ..." 比如: --databases="employees sales.orders"

2.--tables-file=tables.txt, tables.txt    文件每一行有一個database.table

3.--include=regexp,     支持正則,比如: --include='^database(1|2)\.reports'

在準備部分備份和拷貝恢復部分備份到一個空的datadir之後,請確保datadir中有”mysql”數據庫,否則MySQL無法啓動.
如果沒有,則需要先創建系統的數據庫再啓動。

 

5、增量備份:

進行第一次增量備份,需要在有一次完整備份的基礎上進行:

innobackupex  --defaults-file=/etc/my.cnf --host=127.0.0.1-port=3306 --user=root --password=123456 --no-timestamp  --incremental/data/mysqlbak/2015.sql1717-zengliang --incremental-basedir=/data/mysqlbak/2015.sql1717

333795

參數說明:

  –incremental        指定增量備份存放的目標目錄

  –incremental-basedir= 指定完整備份的目錄

#也可以每次都基於全備做增量備份,而不是基於上一次的增備。

 

6、增量恢復:

增量備份的還原操作跟完整的還原有點不一樣,首先必須使用–apply-log –redo-only對完整備份的目錄及所有增量備份目錄進行操作,然後就可以像還原完整備份時的操作了。

 

1)準備全備的日誌

innobackupex  --apply-log --redo-only  --use-memory=4G  /data/mysqlbak/2015.sql1717

 

2)把增量備份合併到全量備份中

innobackupex--defaults-file=/etc/mysql/my.cnf --host=127.0.0.1  -port=3306 --user=root --password=123456  --slave-info --safe-slave-backup --apply-log--use-memory=4G /data/mysqlbak/2015.sql1717 --incremental-dir=/data/mysqlbak/2015.sql1717-zengliang

 

3)把這個全備目錄拷貝到數據mysql數據目錄

innobackupex  --copy-back /data/mysqlbak/2015.sql1717

 

7、附xtrabackup參數說明:

--print-defaults        顯示默認選項。Xtrabackup默認情況會去讀my.cnf文件,讀取順序是/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf

--no-defaults          忽略任何my.cnf文件選項

--defaults-file=#        讀取指定的my.cnf文件

--defaults-extra-file=#   再讀取另外一個文件

--target-dir=name      目的目錄,默認目錄在./xtrabackup_backupfiles/,相對於datadir目錄

--backup              備份

--stats                計算datadir目錄統計信息

--prepare 從backup    恢復

--export                   在恢復時,創建文件導入到另一個數據庫

--apply-log-only       在恢復時,停止恢復進程不進行LSN只使用log

--print-param              打印出參數

--use-memory=#buffer_pool_size

--suspend-at-end       在備份時,創建xtrabackup_suspended文件,直到備份完成後刪掉

--throttle=#               限制IO總數

--log-stream               記錄標準輸出信息xtrabackup_logfile

--extra-lsndir=name    僅適用於backup,保存另一份xtrabackup_checkpoints文件

--incremental-lsn=name 僅適用於backup,增量備份

--incremental-basedir=name 僅適用於backup,增量備份目錄

--incremental-dir=name 僅適用於prepare,恢復指定目錄下的.delta文件和日誌文件

--tables=name          過濾某些表

--tables_file=name         過濾database.table列表文件

--create-ib-logfile

-h,--datadir=name datadir目錄

-t,--tmpdir=name tmpdir目錄

--parallel=#               默認爲1.傳輸數據文件的並行線程數。沒有任何流模式的影響

--innodb_*             有關innodb參數


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章