安裝RPM包
rpm -ql percona-xtrabackup-24-2.4.7-1.el7.x86_64
建立備份目錄
mkdir /extrabackup
備份文件
innobackupex --user=root --password=Root123! /extrabackup/
查看備份文件
ls /extrabackup/2017-06-20_11-26-38 -hl
刪除數據目錄
rm -rf /var/lib/mysql/*
查看數據目錄文件
ls /var/lib/mysql/
開始還原:
innobackupex --copy-back /extrabackup/
修改數據目錄的屬主和屬組並啓動MySQL服務:
chown -R mysql:mysql /var/lib/mysql/
systemctl restart mysqld
增備是備份上次以來發生變化的頁面,經過增備能夠減輕存儲以及系統資源開銷。增量備份主要針對於InnoDB,由於InnoDB採用了日誌序列號(LSN)的方式。InnoDB的LSN是一個增加的序列,相似於Oracle的SCN,記錄了InnoDB的變化狀況。增量備份則是備份特定的LSN以後變化的狀況。經過按序重組這些LSN便可將數據庫恢復到故障點或任意時刻。
第一次增量備份
innobackupex --user=root --password=Root123! --incremental /extrabackup/ --incremental-basedir=/extrabackup/2017-06-20_11-26-38/
第二次增量備份
innobackupex --user=root --password=Root123! --incremental /extrabackup/ --incremental-basedir=/extrabackup/2017-06-20_13-08-11/
整合完整備份和增量備份:
對於增量備份的Prepare階段,有2個須要注意的地方,一個是提交的事務須要replayed,一個未提交的事務須要rollback。
若是在Prepare階段replay了已提交的事務以及回滾了未提交的事務,則後續的增量備份沒法添加到當前全備。所以在Prepare階段全備應使用--redo-only選項。
對於存在屢次增量的情形,僅僅只有最後一個增量不須要使用--redo-only 選項。若是使用了的話,rollback將由服務器啓動的時候來完成。
innobackupex --user=root --password=Root123! --apply-log --redo-only /extrabackup/2017-06-20_11-26-38/
innobackupex --user=root --password=Root123! --apply-log --redo-only /extrabackup/2017-06-20_11-26-38/ --incremental-dir=/extrabackup/2017-06-20_13-08-11/
innobackupex --user=root --password=Root123! --apply-log /extrabackup/2017-06-20_11-26-38/ --incremental-dir=/extrabackup/2017-06-20_13-10-08/
開始還原:
innobackupex --copy-back /extrabackup/2017-06-20_11-26-38/
修改數據目錄的屬主和屬組,啓動OK。
chown -R mysql.mysql /var/lib/mysqld/
小結
a、增量備份是基於增量或全備的基礎之上完成的。
b、增量備份的基礎是InnoDB引擎使用了LSN機制,非InnoDB引擎不存在增量備份的說法,每次都是全備。
c、對於增量備份的恢復期間須要對已提交的事務前滾,未提交的事務回滾。
d、增量備份的恢復應按照備份的順利逐個逐個replay,須要使用--apply-log --redo-only選項。
e、僅僅最後一個增量備份不須要使用--redo-only選項。
f、若是要作徹底恢復或時點恢復,須要結合binlog來實現。