国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Mysql二進制日志(binlog)恢復數據

yy13818512006 / 1747人閱讀

摘要:我們先來看下對數據庫的完全備份。總結如果允許數據丟失,可以直接使用直接恢復,否則可以通過二進制文件進行恢復?,F在看來其實也非常簡單了,找到開發服務器上的二進制日志文件就能恢復了,最后他又一個一個表開始建的,誰叫我當初又蠢又笨

開啟binlog

show binary logs 檢查bin log是否開啟,Mac OS系統安裝完Mysql沒有my.cnf配置文件,需要自己新建,我的Mysql配置文件放在/etc/my.cnf,將binlog開啟,默認如果不給值的話,log-bin 的會以mysqld-bin 為索引,創建mysqld-bin.00001等;重啟mysql。

定時備份與還原

一般我們會對mysql數據庫做定時備份,但是不能夠滿足我們的需求,因為可能會丟失數據,如果我們在每天的早上4點進行定時數據備份,在當天晚上9點,數據庫掛了,此時數據庫只能備份到當天4點之前的所有數據,4點-9點的數據沒辦法通過這種方式恢復,丟失了,這肯定是不能容忍的,通過二進制日志文件可以滿足我們的需求,只要不是服務器、硬盤問題,都能通過這種方式,進行數據恢復。我們先來看下對數據庫的完全備份。

mysqldump -uroot -ppassword test > /Users/ksmaster/GitHub/mysql_backup/test_DB0722-10:16.sql

本地生成test_DB0722-10:16.sql文件之后,假如數據庫數據被人為無意損壞或是數據表或庫被誤刪,我們都能夠通過生成的sql文件進行數據恢復,恢復當天4點之前的數據狀態。假如此處是把整個庫誤刪了,恢復如下:

mysql -uroot -ppassword test < /Users/ksmaster/GitHub/mysql_backup/test_DB0722-10:16.sql
利用二進制日志(binlog)還原

我預先創建了一個新的數據庫test,表user,之后查看二進制日志文件,因為我的是本地數據庫,二進制日志存放在/usr/local/mysql/data/目錄下,如mysql-bin.000001

我這里有兩個二進制文件,mysql-bin.000001和mysql-bin.000002,如果你沒有執行過flush logs或者沒有重啟mysql,一般來說只有一個mysql-bin.000001,我們先查看下mysql-bin.000001

sudo mysqlbinlog --no-defaults mysql-bin.000001 

截圖如下:
可以看到有創建數據庫、建表、插入數據等sql語句,還有at 417等,我們插入一些臟數據或者是錯誤數據,甚至是把數據庫刪除都可以,之后我們如何利用二進制文件進行數據恢復呢?

mysqlbinlog --no-defaults --stop-position="3263" mysql-bin.000001 > /Users/ksmaster/GitHub/mysql_backup/test_backup0722-11:30.sql

我們將mysql-bin.000001的sql語句導出到本地,這里我們只導出位于3263之前的語句,因為之后的數據是錯誤的我們不想要;然后進行恢復,我們先來看下到處到本地的sql語句是怎樣的:
這里貼代碼的話,無用的代碼太多,只截取部分看看是什么樣子的,其實就是執行過的sql語句,如果我們把數據誤刪了,我們可以利用導出的sql語句進行數據恢復:

mysql -uroot -ppassword < /Users/ksmaster/GitHub/mysql_backup/test_backup0722-11:30.sql

通過這種方式我們可以比較靈活的恢復自己想要的數據,并且沒有丟失數據,只要二進制文件在硬盤沒有損壞,都能恢復我們想要的數據。

總結

如果允許數據丟失,可以直接使用mysqldump直接恢復,否則可以通過二進制文件進行恢復。在這里突然想到我去年還在實習的時候,當時項目剛開始,主力成員加上我和技術經理就三個人,有次我打開了mysql workbench,有可能是我不小心碰到鍵盤了還是別人搞得,整個數據庫表全沒了...慶幸的是還好是開發環境,不是生產環境..到底是不是我搞的我到現在也不知道是不是我搞得,然后另一個同事就著急了,工作這么忙項目一個月之后上線,建表造數據這又得浪費一些時間,攤誰身上誰都不樂意,于是他去找另一個同事,看能不能恢復,最后也沒搞定。現在看來其實也非常簡單了,找到開發服務器上的二進制日志文件就能恢復了,最后他又一個一個表開始建的,誰叫我當初又蠢又笨...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75542.html

相關文章

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<