您好,登錄后才能下訂單哦!
說明:
所謂增量備份,就是備份自上一次備份之后增加或改變的文件或內(nèi)容。然而MySQL沒有提供直接的增量備份方法,但是卻可以通過MySQL的二進(jìn)制日志間接實(shí)現(xiàn)增量備份。下面有關(guān)操作方法進(jìn)行測(cè)試。
.
.
實(shí)驗(yàn)環(huán)境:裝有MySQL 5.7 數(shù)據(jù)庫的CentOS7虛擬機(jī)一臺(tái)
.
.
實(shí)驗(yàn)步驟如下:
.
.
1 .進(jìn)入配置文件添加二進(jìn)制日志
vim /etc/my.cnf
[mysqld]
在其中插入二進(jìn)制日志
log_bin=mysql-bin #二進(jìn)制日志
.
.
2 . 然后重啟數(shù)據(jù)庫,到日志文件目錄下查看一下
.
.
3 . 新建數(shù)據(jù)庫,并在其中新建數(shù)據(jù)表,寫入數(shù)據(jù)
.
.
4 .重新生成一個(gè)日志文件,這樣剛才的操作步驟都會(huì)保存在第一個(gè)二進(jìn)制文件中
mysqladmin -u root -p flush-logs#重新生成二進(jìn)制文件
.
.
5 . 將剛才新建的數(shù)據(jù)庫刪除,然后使用恢復(fù)命令恢復(fù)數(shù)據(jù)庫
mysqlbinlog --no-defaults mysql-bin.000001 | mysql -u root -p #日志文件恢復(fù)
.
.
6 . 可以查看到數(shù)據(jù)庫已經(jīng)被恢復(fù)好
.
.
7 .接下來,測(cè)試誤操作之后的恢復(fù)(兩種方法,一是利用時(shí)間點(diǎn),二是利用位置點(diǎn))先進(jìn)行時(shí)間點(diǎn)的操作
在表中插入數(shù)據(jù)
下一步,刪除表中一條數(shù)據(jù)(誤操作)
然后再插入一條數(shù)據(jù)
這樣,誤操作的一條命令已經(jīng)被覆蓋
.
.
8 . 重新生成一個(gè)二進(jìn)制日志
mysqladmin -u root -p flush-logs#創(chuàng)建新日志
.
.
9 . mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002#64位解碼查看日志文件,防亂碼
在其中需要找到兩個(gè)時(shí)間點(diǎn)
(1) 刪除數(shù)據(jù)的時(shí)間點(diǎn)
(2) 刪除之后下一步正確操作時(shí)間點(diǎn)
.
.
10 . 找到兩個(gè)時(shí)間點(diǎn)之后,用這兩個(gè)時(shí)間點(diǎn)進(jìn)行恢復(fù)
mysqlbinlog --no-defaults --stop-datetime='2018-09-03 16:38:08' /usr/local/mysql/data/mysql-bin.000002 | mysql -u root -p#恢復(fù)到錯(cuò)誤時(shí)間點(diǎn)
mysqlbinlog --no-defaults --start-datetime='2018-09-03 16:39:08' /usr/local/mysql/data/mysql-bin.000002 | mysql -u root -p#從下一個(gè)正確時(shí)間點(diǎn)恢復(fù)
.
.
11 . 這樣被誤刪除的數(shù)據(jù)就恢復(fù)好了
.
.
12 . 下面根據(jù)位置點(diǎn),再進(jìn)行恢復(fù)
同樣把數(shù)據(jù)恢復(fù)到誤刪除
.
.
13 . mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002 #64位解碼查看日志文件,防亂碼
找到錯(cuò)誤點(diǎn)執(zhí)行的命令后,復(fù)制上一次可正確執(zhí)行的位置(at后面就是位置號(hào))
然后找到下一次可執(zhí)行的命令,同樣復(fù)制上一次可正確執(zhí)行的位置
.
.
14 . 利用位置點(diǎn)進(jìn)行恢復(fù)
mysqlbinlog --no-defaults --stop-datetime='1950' /usr/local/mysql/data/mysql-bin.000002 | mysql -u root -p#恢復(fù)到錯(cuò)誤時(shí)間點(diǎn)
mysqlbinlog --no-defaults --start-datetime='2223' /usr/local/mysql/data/mysql-bin.000002 | mysql -u root -p#從下一個(gè)正確時(shí)間點(diǎn)恢復(fù)
最后查看結(jié)果,測(cè)試完成
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。