1. 程式人生 > >xtrabackup安裝部署(二)

xtrabackup安裝部署(二)

最新 生成 完全 操作 amp 是否 net end mkdir

在官網中,復制相關鏈接下載最新版本(建議使用當前發布版本前6個月左右的穩定版本)

https://www.percona.com/downloads/XtraBackup/LATEST/

1、下載和安裝

#下載rpm安裝包
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.3/binary/redhat/6/x86_64/percona-xtrabackup-2.3.3-1.el6.x86_64.rpm

1.2 安裝依賴

yum install -y perl-DBD-MySQL per-DBI perl-Time-HiRes libaio*

1.3 安裝rpm

rpm -ivh percona-xtrabackup-2.3.3-1.e16.x86_64.rpm

warning: percona-xtrabackup-2.3.3-1.e16.x86_64.rpm: Header V4 DSA/SHA1 Signature,key ID cd2efd2a: NOKEY
error: Faild dependencies:
lidev.so4()(64bit) is needed by percona-xtrabackup-2.3.3-1.e16.x86_64

1.4 安裝libv.so()(64bit)

地址:http://
rpmfind.net/linux/RPM/index.html 搜索libev.so.4()(64bit),下載 rpm -ivh libev-4.04-2.e16.x86_64.rpm

1.5 安裝Xtrabackup

rpm -ivh percona-xtrabackup-2.3.3-1.e16.x86_64.rpm

Preparing...             ########################################### [100%] 
1:percona-xtrabackup     ########################################### [100
%]

安裝方法二:

#使用yum安裝
安裝percona源
rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm
#使用yum安裝percona-xtrabackup:
yum -y install percona-xtrabackup

1.6、檢查安裝結果

rpm -qa |grep xtraback

percona-xtrabackup-2.3.3-1.e16.x86_64
rpm -ql percona-xtrabackup-2.3.3-1.e16.x86_64
/usr/bin/innobackupex/usr/bin/xtrabackup
/usr/bin/doc/percona-xtrabackup-2.3.3
/usr/bin/doc/percona-xtrabackup-2.3.3/COPYING
/usr/share/man/man1/innobackupex.1.gz/usr/share/man/man1/xtrabackup.1.gz

Xtrabackup常用參數

技術分享圖片
 --user=USER                     #指定備份用戶,不指定的話為當前系統用戶
 --password=PASSWD               #指定備份用戶密碼
 --port=PORT                     #指定數據庫端口
 --defaults-group=GROUP-NAME     #在多實例的時候使用
 --host=HOST                     #指定備份的主機,可以為遠程數據庫服務器
 --apply-log                     #回滾日誌
 --database                      #指定需要備份的數據庫,多個數據庫之間以空格分開
 --defaults-file                 #指定mysql的配置文件
 --copy-back                     #將備份數據復制回原始位置
 --incremental                   #增量備份,後面跟要增量備份的路徑
 --incremental-basedir=DIRECTORY #增量備份時使用指向上一次的增量備份所在的目錄
 --incremental-dir=DIRECTORY     #增量備份還原的時候用來合並增量備份到全量,用來指定全備路徑
 --redo-only                     #對增量備份進行合並
 --rsync                         #加快本地文件傳輸,適用於non-InnoDB數據庫引擎。不與--stream共用
 --safe-slave-backup
 --no-timestamp                  #生成的備份文件不以時間戳為目錄.
View Code

2、備份與恢復

2.1、全量備份與恢復

技術分享圖片

完全備份目錄:/data/backup/full

完全備份與增量備份每次命令操作成功的標誌是,日誌結尾處打印【completed OK!

#全量備份:

innobackupex --user=root --password /data/backup/full

說明:
上面的命令在我的/data/backup/full 目錄生成了一個文件夾【2017-01-20_10-52-43】
一般情況下,這個備份不能用於恢復,因為備份的數據中可能含有尚未提交的事務或者已經提交的事務但尚未同步至數據文件的事務,此時數據文件處於不一致的狀態。
因此,我們現在就是要通過回滾未提交的事務及同步已經提交的事務至數據文件也使得數據文件處於一致性狀態。
innobackupex --user=root --password --defaults-file=/data/mysql/my.cnf --apply-log /data/backup/full/2017-01-20_10-52-43
#--apply-log 參數就是開啟恢復過程

2.2、 恢復操作演練

 1)關閉數據庫,備份原數據,創建新的數據目錄

執行過程:
[root@mysql 3306]# /data/3306/mysql stop
Stoping MySQL...
[root@mysql 3306]# mv /data/3306/data/ /data/3306/data_bak
[root@mysql 3306]# mkdir /data/3306/data

恢復全備必須恢復到空目錄裏,不然 會報錯。

 2)執行innobackupex恢復命令

[root@mysql 3306]# innobackupex --defaults-file=/data/3306/my.cnf --user=root --password=123456 --copy-back /data/backup/full/2017-01-20_10-52-43

 3)對新目錄授權,此操作需要在innobackupex恢復命令後

chow -R mysql.mysql /data/mysql/data

 4)重啟服務後,並檢查數據是否恢復。

[root@mysql 3306]# /data/3306/mysql start
Starting MySQL
[root@mysql 3306]# ps -ef|grep 3306

#登錄數據查看已經恢復的數據文件。

2.2、增量備份與恢復

技術分享圖片

技術分享圖片

技術分享圖片

環境備份目錄說明:

 增量備份目錄1/data/backup/inc1

 增量備份目錄2/data/backup/inc2

1#全量備份

innobackupex  --defaults-file=/data/3306/my.cnf  --user=root --password=123456 /data/backup/full

2)第一次增量備份

innobackupex  --defaults-file=/data/3306/my.cnf  --user=root --password=123456 --incremental /data/backup/inc1 --incremental-basedir=/data/backup/full/2017-01-20_10-52-43

# --incremental-basedir 指的是完全備份所在的目錄

# 此命令執行結束後,innobackupex命令會在/data/backup目錄中創建一個新的以時間命名的目錄以存放所有的增量備份數據。

# 另外,在執行過增量備份之後再一次進行增量備份時,其--incremental-basedir應該指向上一次的增量備份所在的目錄。

# 需要註意的是,增量備份僅能應用於InnoDBXtraDB表,對於MyISAM表而言,執行增量備份時其實進行的是完全備份。

2)第二次增量備份

innobackupex  --defaults-file=/data/3306/my.cnf  --user=root --password=123456 --incremental /data/backup/inc2  --incremental-basedir=/data/backup/inc1/2017-01-20_11-04-31

# 如果需要恢復的話需要先執行如下操作

innobackupex --apply-log --redo-only /data/backup/full/2017-01-20_10-52-43
innobackupex --apply-log --redo-only /data/backup/full/2017-01-20_10-52-43 --incremental-dir=/data/backup/inc1/2017-01-20_11-04-31

# 如果存在多次增量備份的話,就多次執行如下命令。此處執行針對的是第二次增量備份

innobackupex --apply-log --redo-only /data/backup/full/2017-01-20_10-52-43 --incremental-dir=/data/backup/inc2/2017-01-20_11-06-41

# 恢復操作演練,需先停掉服務器並遷移已有的數據目錄,詳情見全量備份

# 執行恢復命令

innobackupex --defaults-file=/data/3306/my.cnf --user=root --password=123456 --copy-back  /data/backup/full/2017-01-20_10-52-43

補充說明:

指定使用 --databases 可以指定庫來備份
innobackupex --default-file=/data/3306/my.cnf --user-root --password-123456 --databases="dadong" /data/backup/
#指定表來備份
innobackupex --default-file=/data/3306/my.cnf --user=root --password=12345 --databases="dadong test" /data/backup/
#指定壓縮包備份 --stream
innobackupex --default-file=/data/3306/my.cnf --user=root --password=123456 --stream=tar /backup/full/|gzip >/backup/full/back_$(date +%F).tar.gz

xtrabackup安裝部署(二)