生產(chǎn)環(huán)境中在MySQL中誤操作是非常正常的,所以就需要用到mysql的增量備份恢復(fù)。
增量備份是我們經(jīng)常用到的,它可以指定某個誤操作的時間以及位置點(diǎn)進(jìn)行數(shù)據(jù)恢復(fù),更加準(zhǔn)確的恢復(fù)我們想要還原的數(shù)據(jù)。
以下實驗為大家演示誤操作使用增量備份進(jìn)行數(shù)據(jù)的恢復(fù)。
成都創(chuàng)新互聯(lián)公司:2013年至今為各行業(yè)開拓出企業(yè)自己的“網(wǎng)站建設(shè)”服務(wù),為近千家公司企業(yè)提供了專業(yè)的網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計和網(wǎng)站推廣服務(wù), 按需網(wǎng)站制作由設(shè)計師親自精心設(shè)計,設(shè)計的效果完全按照客戶的要求,并適當(dāng)?shù)奶岢龊侠淼慕ㄗh,擁有的視覺效果,策劃師分析客戶的同行競爭對手,根據(jù)客戶的實際情況給出合理的網(wǎng)站構(gòu)架,制作客戶同行業(yè)具有領(lǐng)先地位的。
1、配置文件中開啟二進(jìn)制日志,并重啟mysql
2、創(chuàng)建測試數(shù)據(jù)庫,寫入內(nèi)容
3、查看二進(jìn)制日志,截斷日志,完成完全備份
mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql_bin.000001 //查看二進(jìn)制日志
mysqladmin -uroot -pabc123 flush-logs //刷新截斷,形成一個新日志
mysqldump -uroot -pabc123 school > /opt/school.sql //完全備份school數(shù)據(jù)庫
4、查看新生成的二進(jìn)制文件
5、添加兩條數(shù)據(jù),再次查看新生成的二進(jìn)制文件
mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002 //再次查看新生成的二進(jìn)制文件
6、模擬誤操作、查看二進(jìn)制文件中誤操作的位置點(diǎn)時間點(diǎn)
7、刪除list表,先進(jìn)行完全備份恢復(fù)
source /opt/school.sql //進(jìn)行完全備份恢復(fù)
再次查看表,完全備份的數(shù)據(jù)已恢復(fù)
8、再次截斷日志,然后進(jìn)行增量備份恢復(fù)
mysqladmin -uroot -pabc123 flush-logs 再次截斷日志
(此處截斷日志,是為了恢復(fù)正確數(shù)據(jù)的時候不會被前面的操作覆蓋)
恢復(fù)到誤操作前時間點(diǎn)前的操作
mysqlbinlog --no-defaults --stop-datetime='2018-09-03 22:18:29' /usr/local/mysql/data/mysql_bin.000002 | mysql -uroot -pabc123
恢復(fù)添加jerry的那部分?jǐn)?shù)據(jù)
mysqlbinlog --no-defaults --start-datetime='2018-09-03 22:19:27' /usr/local/mysql/data/mysql_bin.000002 | mysql -uroot -pabc123
可以查看到五條數(shù)據(jù)都已被恢復(fù)