自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

不小心刪除了公司數(shù)據(jù)庫,是什么樣一種體驗(yàn)?

數(shù)據(jù)庫
本案例適用于人為 SQL 語句造成的誤操作或者沒有主從復(fù)制等的熱備情況宕機(jī)時(shí)的修復(fù)。

[[200368]]

人生大起大落落落落落落,實(shí)在是太刺激了,下面這真是一個(gè)悲傷的故事。

[[200369]]

那年公司 ERP 系統(tǒng)剛進(jìn)行升級(jí)。

因?yàn)楣娟懤m(xù)上了 MES 和 PDM 系統(tǒng)。為了加快整個(gè)公司信息化平臺(tái)的統(tǒng)一,請(qǐng)了個(gè)第三方公司來做中間接口。

然后故事開始了。

[[200370]]

某一個(gè)晚上,第三方人員問我要 ERP 的 SA 密碼。

我很警惕:“你要干嘛?”

“我測試一下中間表。”

“有沒有寫表的操作?”

“沒有,只有讀表的操作。”

于是我放心的給了 SA 密碼。給了 VPN 權(quán)限通道。放她進(jìn)來了。

十分鐘后…..

[[200371]]

她帶著哭腔打電話來(是的,對(duì)方做測試的是個(gè) 93 年的萌妹子。)

“吳哥哥,服務(wù)器中毒了。。。。”

我當(dāng)時(shí)還在逛果殼呢,一聽她說我服務(wù)器中毒了,我表示無比淡定。還以大哥的經(jīng)驗(yàn)教訓(xùn)了一頓她。

“叫你不要往我服務(wù)器傳插件嘛,這次幫你解決一下,下次不準(zhǔn)了喲。”

我認(rèn)為是小 case 呢,不就中毒了嘛,系統(tǒng)往回滾一天就好了。

然后悲劇的事情就出現(xiàn)了,遠(yuǎn)程進(jìn)不去,于是我就去機(jī)房本地登錄,居然也進(jìn)不去。

我不死心,強(qiáng)制重啟,居然還是進(jìn)不去。我的服務(wù)器系統(tǒng)就這樣崩了。。。

好在那幾天在做開發(fā),系統(tǒng)沒有啟用,于是我和我的老板匯報(bào)了這個(gè)情況:

“老大,我們服務(wù)器系統(tǒng)崩了。”

“哦,那就搞好它讓它別崩。” 果然是霸道總裁啊。

[[200372]]

當(dāng)時(shí)數(shù)據(jù)和應(yīng)用服務(wù)器我都是分開跑的,所以應(yīng)用服務(wù)器奔潰了,我覺得也沒多大事,就重新做系統(tǒng)吧。于是我重新做了個(gè)系統(tǒng),然后喊萌妹子上來搭平臺(tái)。

“小劉啊,你可害慘我了,一個(gè)下午給你重做服務(wù)器系統(tǒng)了,我基礎(chǔ)環(huán)境都配置好了,你上來搭平臺(tái)吧。”

萌妹子那是無比的歉意啊,又是答應(yīng)請(qǐng)我吃飯又是答應(yīng)請(qǐng)我看電影的。我都想系統(tǒng)再崩潰一次了。

按理說這樣應(yīng)該是沒問題了,就在我走出機(jī)房,在外面抽了根煙,45 度仰望了一下天空,聯(lián)想了一下和萌妹子點(diǎn)個(gè) 9 分熟的牛排,在喝一口二鍋頭這樣浪漫的晚餐的時(shí)候。電話來了。

來電話的是萌妹子的老板。

“小吳,我想找一下 information.db 和 mfmedia.db 這兩個(gè)總表沒找到,你給我找一下。”

我都蒙了,從來沒人問過我這樣的問題,難道她老板不是 IT 行業(yè)的。

“數(shù)據(jù)庫文件都在目錄樹里啊,自己去找啊。”

“沒有。”

于是我登上服務(wù)器一看,我傻了。所有的表都空了,所有的表都靜靜的躺在那,但是里面都空了。。。

[[200373]]

不可能啊,我數(shù)據(jù)庫是放在另外一臺(tái)服務(wù)器上的,怎么可能會(huì)沒有了。

于是我問萌妹子:“XXX,你到底做了什么操作啊,為毛我數(shù)據(jù)庫都沒了。”

萌妹子說:“我啥也沒干啊,只是按照步驟一路點(diǎn) YES。”

我才想起來,在第一次配置基礎(chǔ)環(huán)境的時(shí)候,建賬套會(huì)提示是否初始環(huán)境,如果點(diǎn)是了,數(shù)據(jù)庫就會(huì)被初始化,然后這位萌妹子傻傻的點(diǎn)了是。

[[200374]]

“你知道不知道你干了什么,公司 06 年到現(xiàn)在所有的數(shù)據(jù),財(cái)務(wù)的,供應(yīng)鏈的,進(jìn)銷存的全部都在這臺(tái)服務(wù)器里,200 多個(gè) G 數(shù)據(jù),因?yàn)槟阋粋€(gè)是,全沒了。”

萌妹子也嚇蒙了,話都說不出來了。

沒辦法,我再給我老板打電話。

“老板,有個(gè)好消息,有個(gè)壞消息。”

“直接說壞的。” 我就喜歡我們老板這么直接。

“恩。。恩。。那個(gè)。。就是那個(gè)。ERP 的數(shù)據(jù)沒了。”

“哦,那就找回來。” 老板還是那么的霸氣。我特么都要愛上他了。

“老板,我想你沒明白這個(gè)的嚴(yán)重性。ERP 數(shù)據(jù)沒了,從 06 年開始的都沒了,這意味著就算找回來,整理所有的表,排錯(cuò)也需要 3 天左右時(shí)間,到時(shí)候所有的生產(chǎn)都要暫時(shí)停止。如果找不回來,我們可能就要倒閉了。”

我忽然有種掌握天下蒼生的感覺。。。

對(duì)面沉默了 5 秒后,爆吼了一句:“吳 XX,你給我滾到我辦公室來!!”

中間和老板手握手談心,被老板親切慰問的細(xì)節(jié)跳過不表。

當(dāng)時(shí)公司高層對(duì)數(shù)據(jù)安全還沒有那么重視,之前預(yù)算做的項(xiàng)目,我已經(jīng)做了備份的計(jì)劃書,一直沒被審批下來,現(xiàn)在估計(jì)悔得腸子都清了。

于是我開始漫長的數(shù)據(jù)恢復(fù)之旅。

我之前已經(jīng)做了個(gè)本地備份的計(jì)劃,每天晚上會(huì)備份一次。我把希望都放在了它身上。等我把備份的數(shù)據(jù)庫附件上去,發(fā)現(xiàn)時(shí)間居然都是兩個(gè)星期之前的。

而且還有一些新表都沒有,我聯(lián)系對(duì)方,對(duì)方告知研發(fā)人員兩個(gè)星期前做測試的時(shí)候把備份計(jì)劃關(guān)了。。。

我心里萬頭草泥馬奔騰而過。

最后沒有辦法,把老服務(wù)器又翻了出來,翻出之前的老數(shù)據(jù),開始轉(zhuǎn)換。

期間老板給我短信:“數(shù)據(jù)恢復(fù)進(jìn)行的怎么樣了呢。”

“報(bào)告,正在穩(wěn)步進(jìn)行中,按照目前的狀況,可恢復(fù)的可能性超過 90%。” 別問我 90% 怎么算出來的,我就是哄他才這樣說的。

“唉,真是心急呀,睡都睡不著。小吳呀,當(dāng)初要是聽你的,上了備份該多好呀。” 現(xiàn)在知道后悔了,哼哼。

“老大別擔(dān)心,我會(huì)搞定的。” 是的,作為一位負(fù)責(zé)的員工,我就是這么讓老大心安。

“恩,那就交給你了哦,熬夜少抽點(diǎn)煙哦。” 哎呀,瞬間覺得我老大萌萌噠有沒有。

這里花了我一個(gè)晚上加一個(gè)白天。

數(shù)據(jù)轉(zhuǎn)換好了,還有一些時(shí)間差的數(shù)據(jù)沒法找到。于是通知各個(gè)部門,找單據(jù),開始往里面補(bǔ)單子,一條一條的按照業(yè)務(wù)流程補(bǔ)進(jìn)去。

為了協(xié)同更方便,在會(huì)議室加設(shè)了幾十臺(tái)電腦集體辦公。。。

在大家一片怨聲載道中,三天時(shí)間,終于把數(shù)據(jù)恢復(fù)了過來。三天內(nèi)我沒離開機(jī)房超過 10 米,吃喝拉撒都在機(jī)房,不對(duì),拉撒不在。

這件事情造成的后果:

1. 大部分員工放假三天,我加班三天三夜。

2. 本來很愛我的大部分員工因?yàn)閱螕?jù)事件,集體轉(zhuǎn)為黑我恨我了。

3. 公司立馬批了我的計(jì)劃,冷備,熱備,異地容災(zāi),全部上全了。

4.我揮刀自宮,自己罰了自己,扣除了自己一個(gè)月工資。

5.老板到現(xiàn)在還是在懷疑請(qǐng)的那家公司已經(jīng)被我們競爭對(duì)手收買,是故意來破壞我們的。

6.萌妹子拉黑了我。

[[200375]]

這真是個(gè)悲傷的故事。

看完了這個(gè)悲傷的故事,我們要回歸理性,MySQL 數(shù)據(jù)庫誤刪除后怎么辦?

在日常運(yùn)維工作中,對(duì)于數(shù)據(jù)庫的備份是至關(guān)重要的!數(shù)據(jù)庫對(duì)于網(wǎng)站的重要性使得我們對(duì) MySQL 數(shù)據(jù)庫的管理不容有失!

然而是人總難免會(huì)犯錯(cuò)誤,說不定哪天大腦短路了,誤操作把數(shù)據(jù)庫給刪除了,怎么辦?下面,就 MySQL 數(shù)據(jù)庫誤刪除后的恢復(fù)方案進(jìn)行說明。

[[200376]]

工作場景

MySQL 數(shù)據(jù)庫每晚 12:00 自動(dòng)完全備份。

某天早上上班,9 點(diǎn)的時(shí)候,一同事犯暈 drop 了一個(gè)數(shù)據(jù)庫!

需要緊急恢復(fù)!可利用備份的數(shù)據(jù)文件以及增量的 binlog 文件進(jìn)行數(shù)據(jù)恢復(fù)。

數(shù)據(jù)恢復(fù)思路

利用全備的 SQL 文件中記錄的 CHANGE MASTER 語句,binlog 文件及其位置點(diǎn)信息,找出 binlog 文件中增量的那部分。

用 MySQLbinlog 命令將上述的 binlog 文件導(dǎo)出為 SQL 文件,并剔除其中的 drop 語句。

通過全備文件和增量 binlog 文件的導(dǎo)出 SQL 文件,就可以恢復(fù)到完整的數(shù)據(jù)。

實(shí)例說明

首先,要確保 MySQL 開啟了 binlog 日志功能。在 /etc/my.cnf 文件里的 [mysqld] 區(qū)塊添加,如下圖,然后重啟 MySQL 服務(wù)。

1.在 ops 庫下創(chuàng)建一張表 customers

2.現(xiàn)在進(jìn)行全備份

 

參數(shù)說明:

-B:指定數(shù)據(jù)庫

-F:刷新日志

-R:備份存儲(chǔ)過程等

-x:鎖表

–master-data:在備份語句里添加 CHANGE MASTER 語句以及 binlog 文件及位置點(diǎn)信息

3.再次插入數(shù)據(jù)

 

4.此時(shí)誤操作,刪除了 test 數(shù)據(jù)庫

 

此時(shí),全備之后到誤操作時(shí)刻之間,用戶寫入的數(shù)據(jù)在 binlog 中,需要恢復(fù)出來!

5.查看全備之后新增的 binlog 文件

這是全備時(shí)刻的 binlog 文件位置,即 mysql-bin.000002 的 106 行,因此在該文件之前的 binlog 文件中的數(shù)據(jù)都已經(jīng)包含在這個(gè)全備的 SQL 文件中了。

6.移動(dòng) binlog 文件,并導(dǎo)出為 SQL 文件

剔除其中的 drop 語句,查看 MySQL 的數(shù)據(jù)存放目錄,由下面可知是在 /var/lib/mysql 下,將 binlog 文件導(dǎo)出 SQL 文件,并 vim 編輯它刪除其中的 drop 語句。

 

注意:在恢復(fù)全備數(shù)據(jù)之前必須將該 binlog 文件移出,否則恢復(fù)過程中,會(huì)繼續(xù)寫入語句到 binlog,最終導(dǎo)致增量恢復(fù)數(shù)據(jù)部分變得比較混亂。

7.恢復(fù)數(shù)據(jù)

查看數(shù)據(jù)庫,看看 ops 庫在不在。

此時(shí)恢復(fù)了全備時(shí)刻的數(shù)據(jù)。接著,使用 002bin.sql 文件恢復(fù)全備時(shí)刻到刪除數(shù)據(jù)庫之間,新增的數(shù)據(jù)。

再次查看數(shù)據(jù)庫,發(fā)現(xiàn)全備份到刪除數(shù)據(jù)庫之間的那部分?jǐn)?shù)據(jù)也恢復(fù)了!!

以上就是 MySQL 數(shù)據(jù)庫增量數(shù)據(jù)恢復(fù)的實(shí)例過程!

最后,總結(jié)幾點(diǎn):

本案例適用于人為 SQL 語句造成的誤操作或者沒有主從復(fù)制等的熱備情況宕機(jī)時(shí)的修復(fù)。

恢復(fù)條件為 MySQL 要開啟 binlog 日志功能,并且要全備和增量的所有數(shù)據(jù)。

恢復(fù)時(shí)建議對(duì)外停止更新,即禁止更新數(shù)據(jù)庫。

先恢復(fù)全量,然后把全備時(shí)刻點(diǎn)以后的增量日志,按順序恢復(fù)成 SQL 文件,然后把文件中有問題的 SQL 語句刪除(也可通過時(shí)間和位置點(diǎn)),再恢復(fù)到數(shù)據(jù)庫。

 

責(zé)任編輯:武曉燕 來源: 知乎
相關(guān)推薦

2018-03-21 14:33:45

數(shù)據(jù)庫刪庫備份恢復(fù)

2016-10-17 08:58:23

Windows 7殺毒賬號(hào)

2020-10-26 08:56:32

技術(shù)總監(jiān)程序員

2019-08-01 14:12:49

Linuxrm命令lsof命令

2015-09-09 09:41:28

十年代碼

2016-10-17 19:14:28

2017-03-10 09:09:41

C語言體驗(yàn)

2010-04-13 11:23:18

Oracle數(shù)據(jù)庫

2021-01-05 22:49:37

Python編程語言Java

2021-05-11 16:20:02

網(wǎng)站HTTPHTTPS

2019-07-08 17:34:29

共享辦公ideaPod文印

2020-12-03 06:34:34

分支策略SIT

2023-03-10 08:27:07

for循環(huán)項(xiàng)目線性結(jié)構(gòu)

2021-07-28 05:01:29

Lombok前端測試

2019-04-03 14:51:18

CPU性能工藝

2019-07-29 14:38:35

服務(wù)器開發(fā)工具

2015-04-08 10:40:09

2021-04-30 08:21:22

Linux管道設(shè)計(jì)

2018-05-30 15:22:03

KotlinAndroid開發(fā)

2015-11-03 08:51:21

程序員怪物
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)