欧美日韩国产一区,亚洲一区视频,色综合久久久久,私密按摩师舌头伸进去了,99re6这里只有精品,夜夜性日日交xxx性hd

精華

大妖怪版MySQL從刪庫到跑路

  • • 發表于 8年前
  • • 作者 大妖怪
  • • 8193 人瀏覽
  • • 36 條評論
  • • 最后編輯時間 8年前
  • • 來自 [其它]

原創聲明:本文為作者原創,未經允許不得轉載,經授權轉載需注明作者和出處

事情是這樣的,寫寫改改搞了好久,總算把新功能搞定了,昨天早上過來很開心啊,過來就更新表結構。我是這樣操作的,點這個:

然后這樣把測試數據庫和線上數據庫同步:

本來好好的,可是該死的,我竟然第一步點了數據同步還沒發現。當我點了確定后悠哉了半天才趕緊終止掉,好吧,可此時數據已經覆蓋了一大半了,留我一臉懵逼愣在這;
當時第一反應是找阿里云系統快照,畢竟我記得是設置了自動策略的,然而當我打開策略,我又懵逼了,0個快照!!!好吧,這個后來才知道今年啥時候給取消自動快照了需要手動備份。為了這個,還和阿里云客服妹子發生了以下對話才死心:

跟阿里妹子對話完已經是39分鐘后了(還是做了加急處理的)于是我又趕緊去找我自己備份的,發現最近備份的也在一周前,好吧這時候運營黑著臉過來講電話被打爆了。
還不死心的我于是又去百度谷歌了半天,發現還有一種方法說不定可以恢復,于是趕緊去服務器找一種叫做binlog的二進制文件,里面是MySQL的操作日志,聽說一般情況是這個binlog是關閉的,抱著試試看的心態,我竟然真的在服務器里面找到了這玩意:

9兆多的操作記錄(⊙﹏⊙)b,于是我把文件同步到本地繼續去百度谷歌一下:
首先,我們可以用這么一條語句去查看操作記錄:

mysqlbinlog binlog文件路徑

也可以基于時間查看:

mysqlbinlog --start-date="時間" --stop-date="時間" binlog文件路徑

反正就是刷刷的我的那些什么update操作記錄,什么delete操作記錄就出來了,跑了半分鐘啊,我的心當時在滴血。
然后,就是恢復了,我們需要用到這樣一條語句(恢復到這個時間之前的數據):

mysqlbinlog --stop-date="時間" binlog文件路徑 | mysql -u root -p

在這個過程中,我遇到了一個這樣的問題:

查了半天原因是因為有些要恢復的數據的id被占用了。于是我清空了線下所有的數據。終于,恢復成功了,什么!最重要的票務信息只恢復了三條?

可是我查了一下中間缺的絕對不止這么多。反正搞不定就,于是我又查到了另一種方法:
根據操作記錄位置獲取:

mysqlbinlog --start-position=開始位置編號 --stop-position=結束位置編號  binlog文件路徑 | mysql -u root -p

當然恢復結果還是三條。。。。。
另外期間還用到了將二進制操作記錄轉成sql文件命令:

mysqlbinlog --start-date="開始時間" --stop-date="結束時間" binlog文件路徑 > /sql文件路徑.sql

然后無論如何恢復,購票記錄都只有那三條。
然后今天只好手工通過沒有被覆蓋到的支出記錄造了一整天。

總結:
操作正式數據庫一定要做好備份!
操作正式數據庫最好通過SQL腳本更新不要直接用Navicat之類的軟件操作
數據庫最好放到類似阿里云RDS上
一定要定期檢查備份比如阿里云系統快照
實在搞不定提前買好機票跑路吧

分享到:
36條評論
Ctrl+Enter
作者

大妖怪

大妖怪

APP:1 帖子:76 回復:200 積分:7517

已加入社區[3076]天

夢里巷口,可有你倚門回首

作者詳情》
Top