偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

MySQL誤刪數(shù)據(jù)救命指南:必收藏

數(shù)據(jù)庫(kù) MySQL
首先看下MySQL誤刪數(shù)據(jù)排名最前的幾種是什么,然后說(shuō)幾點(diǎn)平時(shí)預(yù)防誤操作導(dǎo)致文件/數(shù)據(jù)丟失不成熟的建議,最后再說(shuō)萬(wàn)一發(fā)生誤操作時(shí),怎么以最快速度進(jìn)行補(bǔ)救。

 [[257152]]

 

首先看下MySQL誤刪數(shù)據(jù)排名最前的幾種是:

1.誤刪文件

2.誤刪庫(kù)、表

3.錯(cuò)誤全表刪除 / 更新

4.升級(jí)操作失誤

都來(lái)看看你***過(guò)幾個(gè),hoho。

簡(jiǎn)單說(shuō)下我親手造的一個(gè)大事故吧。

那大概是一個(gè)春暖花開(kāi)的季節(jié),我的內(nèi)心是激動(dòng)澎湃的,因?yàn)橐呀?jīng)安排了休假計(jì)劃。在這前幾天,已經(jīng)把一個(gè)新項(xiàng)目的數(shù)據(jù)庫(kù)環(huán)境都部署好了,包括自動(dòng)化備份。

等我美美的出去玩的時(shí)候,悲劇發(fā)生了,業(yè)務(wù)要求進(jìn)行數(shù)據(jù)回滾,但發(fā)現(xiàn)備份文件不可用,原因是 備份時(shí)指定的字符集和表字符集不一致。我勒個(gè)擦,原來(lái)該項(xiàng)目采用新的字符集,但是我沒(méi)有認(rèn)真檢查確認(rèn)并修改備份腳本,結(jié)果導(dǎo)致備份失效。***,因?yàn)檫@個(gè)事,當(dāng)季度績(jī)效結(jié)果被降檔,boss也為此背鍋~

好吧,回到正題,先說(shuō)幾點(diǎn)我平時(shí)預(yù)防誤操作導(dǎo)致文件/數(shù)據(jù)丟失不成熟的建議:

1.欲刪除文件時(shí),將rm命令改成mv,可在系統(tǒng)層面將rm命令做個(gè)alias(或參考 Windows / Mac OSX做法,刪除文件時(shí)先進(jìn)回收站)。

刪除數(shù)據(jù)庫(kù)、表時(shí),不要用drop命令,而是rename到一個(gè)專用歸檔庫(kù)里;

2.刪除表中數(shù)據(jù)時(shí),不要直接用delete或truncate命令,尤其是truncate命令,目前不支持事務(wù),無(wú)法回滾。

3.用delete命令刪除數(shù)據(jù)時(shí),應(yīng)當(dāng)先顯式開(kāi)啟事務(wù),這樣誤操作時(shí),還有機(jī)會(huì)進(jìn)行回滾。

4.要大批量刪除數(shù)據(jù)時(shí),可以將這些數(shù)據(jù)insert...select到一個(gè)新表,確認(rèn)無(wú)誤后再刪除。或者反其道行之,把要保留的數(shù)據(jù)寫到新表,然后將表重命名對(duì)掉。

5.執(zhí)行重要命令之前,先準(zhǔn)備好相關(guān)命令,再三確認(rèn)無(wú)誤才之行,對(duì)于新鳥(niǎo)而言,***請(qǐng)你的boss坐你旁邊鎮(zhèn)場(chǎng)幾次,否則極有可能會(huì)連累大家~

以上幾條,也是我自己奉行的原則。總之,要時(shí)刻保持對(duì)線上生產(chǎn)環(huán)境的敬畏之心。雖說(shuō)現(xiàn)在大部分操作可以靠平臺(tái)來(lái)完成了,但平臺(tái)也不是***的,不也發(fā)生過(guò)平臺(tái)本身的缺陷造成數(shù)據(jù)丟失、代碼回滾、部署失誤等事故嘛,我就不點(diǎn)名了。

做好備份,不管是物理備份還是邏輯備份!

做好備份,不管是物理備份還是邏輯備份!

做好備份,不管是物理備份還是邏輯備份!

重要的事情說(shuō)三遍都不嫌多。

說(shuō)完預(yù)防措施,我們?cè)僬f(shuō)萬(wàn)一發(fā)生誤操作時(shí),怎么以最快速度進(jìn)行補(bǔ)救。 我們分別列舉幾種常見(jiàn)的情況:

1.執(zhí)行DROP DATABASE / DROP TABLE命令誤刪庫(kù)表,如果碰巧采用共享表空間模式的話,還有恢復(fù)的機(jī)會(huì)。如果沒(méi)有,請(qǐng)直接從備份文件恢復(fù)吧。神馬,你連備份文件都沒(méi)有?那麻煩退出DBA屆吧,一個(gè)連備份都懶得做的人,不配成為DBA的。

2.接上,采用共享表空間模式下,誤刪后立刻殺掉(kill -9)mysql相關(guān)進(jìn)程(mysqld_safe、mysqld),然后嘗試從ibdataX文件中恢復(fù)數(shù)據(jù)。

3.誤刪除正在運(yùn)行中的MySQL表ibd或ibdataX文件。請(qǐng)立即申請(qǐng)對(duì)該實(shí)例進(jìn)行維護(hù),當(dāng)然,不是指把實(shí)例關(guān)閉,而是把業(yè)務(wù)暫停,或者把該實(shí)例從線上環(huán)境摘除,不再寫入新數(shù)據(jù),然后利用linux系統(tǒng)的proc文件特點(diǎn),把該ibd文件從內(nèi)存中拷出來(lái),再進(jìn)行恢復(fù),因?yàn)榇藭r(shí)mysqld實(shí)例在內(nèi)存中是保持打開(kāi)該文件的,切記這時(shí)不要把mysqld實(shí)例關(guān)閉了。

4.接上,把復(fù)制出來(lái)的ibdataX或ibd文件拷貝回datadir后,重啟mysqld進(jìn)入recovery模式,innodb_force_recovery 選項(xiàng)從 0 - 6 逐級(jí)測(cè)試,直至能備份出(整個(gè)實(shí)例或單表的)所有數(shù)據(jù)后,再重建實(shí)例(或單表),恢復(fù)數(shù)據(jù)。

5.未開(kāi)啟事務(wù)模式下,執(zhí)行delete誤刪數(shù)據(jù)。意識(shí)到后立即將mysqld(以及mysqld_safe)進(jìn)程殺掉(kill -9),不要任何猶豫,然后再用工具將表空間數(shù)據(jù)讀取出來(lái)。因?yàn)閳?zhí)行delete刪除后,實(shí)際數(shù)據(jù)并沒(méi)被物理清除,只是先打上deleted-mark標(biāo)簽,后續(xù)再統(tǒng)一清理,因此還有時(shí)間差。

5.執(zhí)行truncate誤清整表。如果沒(méi)使用共享表空間模式的話,基本別想了,走備份恢復(fù)+binlog吧。

6.執(zhí)行不帶where條件的update,或者update錯(cuò)數(shù)據(jù)。也別費(fèi)勁了,走備份恢復(fù)+binlog吧。

責(zé)任編輯:龐桂玉 來(lái)源: 今日頭條
相關(guān)推薦

2018-11-26 09:55:07

MySQL誤刪數(shù)據(jù)數(shù)據(jù)庫(kù)

2021-03-05 13:08:56

MySQL數(shù)據(jù)庫(kù)命令

2024-04-22 08:17:23

MySQL誤刪數(shù)據(jù)

2019-01-31 10:53:53

企業(yè)數(shù)據(jù)遷移云端

2020-03-27 15:40:10

MySQL索引數(shù)據(jù)庫(kù)

2012-01-06 20:30:20

DCIM數(shù)據(jù)中心

2020-07-02 09:55:32

運(yùn)維架構(gòu)技術(shù)

2017-04-01 18:30:47

MySQL誤刪除數(shù)據(jù)庫(kù)

2019-11-25 10:46:54

Java數(shù)據(jù)庫(kù)收藏

2018-04-28 15:28:44

數(shù)據(jù)庫(kù)MySQL誤刪除

2022-12-01 14:02:02

MySQL數(shù)據(jù)文件

2024-08-09 10:06:09

2019-12-27 10:33:43

運(yùn)維架構(gòu)技術(shù)

2011-03-28 13:43:05

WebjQueryHTML 5

2018-05-10 06:58:08

2009-06-10 14:00:31

Jboss虛擬主機(jī)安裝

2009-10-15 17:20:42

數(shù)據(jù)中心技術(shù)

2022-11-03 07:48:27

CSSat-rule

2019-10-11 09:55:53

數(shù)據(jù)工具架構(gòu)

2022-07-27 11:10:27

Kubectl命令運(yùn)維
點(diǎn)贊
收藏

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