一、增量備份定義:
- 增量備份是備份上次備份后新產(chǎn)生的數(shù)據(jù)版确,所以在執(zhí)行增量備份之前 必須要先有一次備份赏寇,否則無(wú)法得知那些數(shù)據(jù)是新數(shù)
- 通常增量備份前的首次備份是完全備份
- 通常每周的周二到周日可以對(duì)數(shù)據(jù)都做增量備份
二嫁赏、增量備份percona軟件說(shuō)明:
- 第三方軟件
percona
提供的備份命令innobackupex
可以實(shí)現(xiàn)對(duì)數(shù)據(jù)的備份和恢復(fù) - 還可以使用
percona
來(lái)實(shí)現(xiàn)完全備份的功能 -
percona
每次備份數(shù)據(jù)取具,其選擇的備份目錄每次都要不一樣 -
percona
的特點(diǎn)是:在線熱備不鎖表脖隶,適合生產(chǎn)環(huán)境下備份業(yè)務(wù) -
percona
恢復(fù)數(shù)據(jù)時(shí),必須要停止數(shù)據(jù)庫(kù)服務(wù)
三暇检、增量備份語(yǔ)法格式及參數(shù)說(shuō)明:
完全備份格式
innobackupex -uroot -p密碼 備份目錄 [參數(shù)]
增量備份格式
innobackupex -uroot -p密碼 備份目錄 --incremental 新數(shù)據(jù)存放目錄 --incremental-basedir=上次備份目錄 [參數(shù)]
準(zhǔn)備恢復(fù)數(shù)據(jù)格式
innobackupex --apply-log --redo-only 完全備份目錄
合并數(shù)據(jù)格式(合并的順序要與增量備份的順序一致)
innobackupex --apply-log --redo-only 完全備份目錄 --incremental-dir=新數(shù)據(jù)存放目錄
拷貝數(shù)據(jù)格式
innobackupex --copy-back 完全備份目錄
類型 | 參數(shù) | 說(shuō)明 |
---|---|---|
備份 | --no-timestamp | 不用時(shí)間戳創(chuàng)建子目錄存儲(chǔ)備份數(shù)據(jù) |
--incremental /newdir | 備份新數(shù)據(jù)newdir :新數(shù)據(jù)備份目錄 |
|
--incremental-basedir=/olddir | 上次備份olddir :上次備份目錄 |
|
恢復(fù) | --apply-log --redo-only | 準(zhǔn)備恢復(fù)數(shù)據(jù) |
--incremental-dir | 合并數(shù)據(jù)中指定增量備份數(shù)據(jù)存放目錄 | |
--copy-back | 將合并完的完全備份數(shù)據(jù)拷貝數(shù)據(jù)到默認(rèn)/自定義數(shù)據(jù)庫(kù)目錄下 |
四产阱、增量備份及恢復(fù)數(shù)據(jù)具體操作步驟:
- 安裝命令軟件
- 備份:完全備份+增量備份
- 準(zhǔn)備恢復(fù)數(shù)據(jù)并合并
- 恢復(fù)數(shù)據(jù)
第一步:安裝命令軟件
- 安裝軟件包
[root@host50 ~]# yum -y install libev-4.15-1.el6.rf.x86_64.rpm
[root@host50 ~]# yum -y install percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm
# 查看幫助
[root@host50 ~]# man innobackupex
第二步:備份
- 周一 執(zhí)行完全備份
[root@host50 ~]# innobackupex -uroot -p密碼 /fullbak
--no-timestamp
- 周二~周日 執(zhí)行增量備份
[root@host50 ~]# innobackupex –uroot –p密碼 --incremental /new2
--incremental-basedir=/fullbak --no-timestamp
[root@host50 ~]# innobackupex –uroot –p密碼 --incremental /new3
--incremental-basedir=/new2 --no-timestamp
[root@host50 ~]# innobackupex -uroot -p密碼 --incremental /new4
--incremental-basedir=/new3 --no-timestamp
[root@host50 ~]# innobackupex -uroot -p密碼 --incremental /new5
--incremental-basedir=/new4 --no-timestamp
[root@host50 ~]# innobackupex -uroot -p密碼 --incremental /new6
--incremental-basedir=/new5 --no-timestamp
[root@host50 ~]# innobackupex -uroot -p密碼 --incremental /new7
--incremental-basedir=/new6 --no-timestamp
第三步:準(zhǔn)備恢復(fù)數(shù)據(jù)并合并
- 準(zhǔn)備恢復(fù)數(shù)據(jù)
# 告訴innobackupex從什么位置開始合并數(shù)據(jù)
[root@host51 ~]# innobackupex --apply-log --redo-only /opt/fullbak/
- 合并數(shù)據(jù)(需要恢復(fù)哪一天的就合并到哪一天)
# 合并周二增量備份數(shù)據(jù)
[root@host51 ~]# innobackupex --apply-log --redo-only /fullbak/
--incremental-dir=/opt/new2
# 合并周三增量備份數(shù)據(jù)
[root@host51 ~]# innobackupex --apply-log --redo-only /fullbak/
--incremental-dir=/opt/new3
# 合并周四增量備份數(shù)據(jù)
[root@host51 ~]# innobackupex --apply-log --redo-only /fullbak/
--incremental-dir=/opt/new4
# 合并周五增量備份數(shù)據(jù)
[root@host51 ~]# innobackupex --apply-log --redo-only /fullbak/
--incremental-dir=/opt/new5
# 合并周六增量備份數(shù)據(jù)
[root@host51 ~]# innobackupex --apply-log --redo-only /fullbak/
--incremental-dir=/opt/new6
# 合并周日增量備份數(shù)據(jù)
[root@host51 ~]# innobackupex --apply-log --redo-only /fullbak/
--incremental-dir=/opt/new7
第四步:恢復(fù)數(shù)據(jù)
- 停止數(shù)據(jù)庫(kù)服務(wù)
[root@host51 ~]# systemctl stop mysqld
- 清空數(shù)據(jù)庫(kù)目錄(必須要清空目錄信息,否則無(wú)法恢復(fù))
[root@host51 ~]# rm -rf /var/lib/mysql/*
- 恢復(fù)數(shù)據(jù)
# 把合并后的數(shù)據(jù)拷貝到數(shù)據(jù)庫(kù)目錄下
[root@host51 ~]# innobackupex --copy-back /opt/fullbak
# 修改數(shù)據(jù)庫(kù)目錄的所有者和組用戶為mysql
[root@host51 ~]# chown -R mysql:mysql /var/lib/mysql
# 重啟數(shù)據(jù)庫(kù)服務(wù)
[root@host51 ~]# systemctl start mysqld