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