1. 程式人生 > >centos7 安裝 percona-xtrabackup 2.4.8-1

centos7 安裝 percona-xtrabackup 2.4.8-1

一、準備工作

更新下系統:
yum -y update

下載XtraBackup rpm包

安裝依賴包:

rpm -Uvh http://rpmfind.net/linux/epel/6/x86_64/Packages/l/libev-4.03-3.el6.x86_64.rpm
yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL perl-Digest-MD5

安裝XtraBackup

rpm -ivh percona-xtrabackup-24-2.4.8-1.el7.x86_64.rpm

二、安裝Percona-XtraBackup-2.4.9

#rpm -ivh percona-xtrabackup-24-2.4.9-1.el6.x86_64.rpm

安裝過程遇到libev.so.4問題

(1)解決 libev.so.4()(64bit)

可以自行去http://rpm.pbone.net搜尋系統所需要的rpm包進行下載安裝

#wget ftp://ftp.pbone.net/mirror/apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/libev-4.15-1.el6.rf.x86_64.rpm

#rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm

三、XtraBackup的使用

1.完全備份

#innobackupex --user=root --password=Mysql@123 /data/backup

但是一般情況下,這個備份是不能用於恢復的,因為備份的資料中可能會包含尚未提交的事務或已經提交但尚未同步至資料檔案中的事務。因此,此時資料檔案處於不一致的狀態,我們現在就是要通過回滾未提交的事務及同步已經提交的事務至資料檔案也使得資料檔案處於一致性狀態。

2.恢復備份

(1)恢復第一步:應用日誌

#innobackupex --defaults-file=/etc/my.cnf --user=root --password=Mysql@123 --apply-log /backup/db/2017-12-25_18-09-55    

(2)恢復第二步:拷貝檔案

先停止mysqld服務,然後清空資料檔案目錄,恢復完成後再設定許可權

# service mysqld stop

# mv /var/lib/mysql /var/lib/mysql_old

# mkdir -p /var/lib/mysql

# innobackupex --defaults-file=/etc/my.cnf --user=root --password=Mysql@123 --copy-back /backup/db/2017-12-25_18-09-55

# chown -R mysql.mysql /var/lib/mysql

# service mysqld start

innobackup的--copy-back選項用於執行恢復操作,它是通過複製所有資料相關檔案至MySQL資料目錄,因此,需要清空資料目錄。我這裡是將其重新命名,然後再重建目錄。最主要一步是將其許可權更改

3.增量備份

#innobackupex --user=root --password=Mysql@123 --incremental /backup/db --incremental-basedir=/backup/db/2017-12-25_18-09-55/

其中,--incremental-basedir指的是完全備份所在的目錄,此命令執行結束後,innobackupex命令會在/backup/db目錄中建立一個新的以時間命名的目錄以存放所有的增量備份資料。另外,在執行過增量備份之後再一次進行增量備份時,其--incremental-basedir應該指向上一次的增量備份所在的目錄。

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

增量備份,如果需要恢復的話需要做如下操作

#innobackupex --apply-log --redo-only /backup/db/2017-12-25_18-09-55/

#innobackupex --apply-log --redo-only /backup/db/2017-12-25_18-09-55/ --incremental-dir=/backup/db/2017-12-26_18-48-56/

如果存在多次增量備份的話,就需要多次執行,如:

#innobackupex --apply-log --redo-only BACKUPDIR 

#innobackupex --apply-log --redo-only BACKUPDIR --incremental-dir=INCREMENTDIR-1

#innobackupex --apply-log --redo-only BACKUPDIR --incremental-dir=INCREMENTDIR-2

BACKUP是全備目錄,INCREMENTDIR是增量備份目錄,上面是有2次增量備份,如果存在多次增量備份,則需要多次執行如上的命令

4.Xtrabackup的備份壓縮

Xtrabackup對備份的資料檔案支援“流”功能,即可以將備份的資料通過STDOUT傳輸給tar程式進行歸檔,而不是預設的直接儲存至某備份目錄中。要使用此功能,僅需要使用--stream選項即可。如:

#innobackupex --user=root --password=123456 --stream=tar /data/backup | gzip > /data/backup/`date +%F_%H-%M-%S`.tar.gz