欧洲精品久久久av无码电影,日日噜噜夜夜爽爽,精品无码国产自产拍在线观看蜜,人妻少妇被粗大爽9797pw,羞国产在线拍揄自揄视频,国产白嫩漂亮美女在线观看,天码欧美日本一道免费,av大片在线无码免费

      歡迎來(lái)到同城快修-附近家電維修、家電清洗、家電安裝服務(wù)平臺(tái)

      24小時(shí)家電維修熱線:

      400—1558638

      當(dāng)前位置:主頁(yè) > 空調(diào) > 維修資訊 >

      誤刪系統(tǒng)怎么辦(誤刪系統(tǒng)軟件怎么辦)

      發(fā)布日期:2023-02-02 12:00:21 瀏覽:
      誤刪系統(tǒng)怎么辦(誤刪系統(tǒng)軟件怎么辦)

      前沿拓展:


      MySQL解決方案工程師

      由MySQL解決方案工程師來(lái)介紹您所關(guān)心的MySQL

      作者介紹

      劉寶珍,架構(gòu)師,目前就職于大型資產(chǎn)管理公司的科技子公司,擁有多年的大型私有云的規(guī)劃和設(shè)計(jì)工作經(jīng)驗(yàn),熟悉軟件的開發(fā)流程,目前醉心于研究基于DDD和敏捷的軟件的開發(fā)模式,對(duì)分布式架構(gòu)有深入的理解,同時(shí)也希望同各位朋友交流軟件架構(gòu)和云計(jì)算架構(gòu)的經(jīng)驗(yàn)。

      注:本文轉(zhuǎn)載自訂閱號(hào)MySQL解決方案工程師,由徐軼韜編輯修訂。

      本文通過(guò)記錄真實(shí)案例的形式,對(duì)故障排除的過(guò)程進(jìn)行總結(jié)和反思。文中不但描述了劉老師解決問(wèn)題的思路,還清晰的記載了解決問(wèn)題的方法。仔細(xì)閱讀此文,你會(huì)發(fā)現(xiàn)劉老師對(duì)故障的排除和修復(fù)有著清晰的思路和嚴(yán)謹(jǐn)?shù)膱?zhí)行方法。

      另外,通過(guò)此文,還可以發(fā)現(xiàn)劉老師的一大愛好,去GitHub查找資源,并加以利用。這一舉動(dòng)不但體現(xiàn)了開源軟件的優(yōu)勢(shì),也體現(xiàn)了開源愛好者的理念。接下來(lái),讓我們閱讀劉老師的原文。

      一、背景和思路

      2020年2月25日,微信的朋友圈大量轉(zhuǎn)載微盟遭遇了系統(tǒng)重大故障,36小時(shí)內(nèi)尚未恢復(fù)核心生產(chǎn)數(shù)據(jù),從而想到本人在兩周前處理的一個(gè)案例,開發(fā)人員誤刪除了生產(chǎn)數(shù)據(jù),本人恢復(fù)的一個(gè)過(guò)程,同時(shí)給這個(gè)故障的處理過(guò)程做一個(gè)總結(jié),也對(duì)學(xué)過(guò)的知識(shí)做一個(gè)梳理,希望對(duì)運(yùn)維的同學(xué)們有一個(gè)警示作用。

      2月13日23:00接到微信通知,能否幫忙恢復(fù)數(shù)據(jù)。

      系統(tǒng)環(huán)境信息如下:

      操作系統(tǒng):RHEL7.5工作流平臺(tái):開源activity業(yè)務(wù)應(yīng)用:調(diào)用activity,生成該應(yīng)用的流程數(shù)據(jù)工作流使用的數(shù)據(jù)庫(kù):MYSQL 5.7社區(qū)版,一主兩備23:05,開始介入數(shù)據(jù)丟失的故障

      確認(rèn)一個(gè)大概解決問(wèn)題的思路:

      1、找到是什么人在什么時(shí)間點(diǎn)做了什么操作?

      2、這個(gè)操作對(duì)系統(tǒng)的影響有多大,是否對(duì)其他系統(tǒng)有影響?確認(rèn)這個(gè)操作是不是正常業(yè)務(wù)體現(xiàn)?

      3、確認(rèn)數(shù)據(jù)庫(kù)里受到影響的日志的時(shí)間段。

      4、在仿真環(huán)境復(fù)盤整個(gè)故障。

      5、制定技術(shù)恢復(fù)方案,在仿真環(huán)境驗(yàn)證數(shù)據(jù)恢復(fù)方案。

      6、在仿真環(huán)境驗(yàn)證數(shù)據(jù)恢復(fù)后應(yīng)用是否正常。

      7、備份生產(chǎn)環(huán)境數(shù)據(jù),應(yīng)用數(shù)據(jù)恢復(fù)方案到生產(chǎn)環(huán)境。

      8、生產(chǎn)環(huán)境綠燈測(cè)試,無(wú)誤后,恢復(fù)完成。

      由于恢復(fù)生產(chǎn)數(shù)據(jù)是重大的數(shù)據(jù)調(diào)整,需要報(bào)請(qǐng)領(lǐng)導(dǎo)批準(zhǔn),需要有完備的數(shù)據(jù)回退方案。

      二、數(shù)據(jù)恢復(fù)過(guò)程及技術(shù)分析

      用了5分鐘理清了處理這個(gè)問(wèn)題思路,接下來(lái)就是考慮具體的數(shù)據(jù)恢復(fù)了。在處理這個(gè)問(wèn)題過(guò)程中,有兩個(gè)難點(diǎn)需要解決。

      1、確認(rèn)要恢復(fù)的binlog的開始和結(jié)束。

      2、根據(jù)binlog的開始和結(jié)束,確認(rèn)數(shù)據(jù)恢復(fù)方案,以及是否需要需要排除在這個(gè)時(shí)間段發(fā)生的其他干擾數(shù)據(jù)。

      首先解決第一個(gè)問(wèn)題:

      1、詢問(wèn)開發(fā)人員,開發(fā)人員給出晚間大概20:20左右操作rest接口,調(diào)用了activity(以下簡(jiǎn)稱工作流)平臺(tái)刪除流程模板的操作,導(dǎo)致該流程模板下所有的流程實(shí)例全部被刪除,在該流程模板下有5個(gè)在途的流程尚未處理完成。

      2、根據(jù)開發(fā)人員的描述,登錄到工作流平臺(tái)的數(shù)據(jù)庫(kù),查看數(shù)據(jù)庫(kù)在20:20左右的binlog 文件,并對(duì)11號(hào)binlog文件進(jìn)行備份。

      3、將binlog拷貝到一個(gè)開發(fā)的服務(wù)器,通過(guò)mysqlbinlog進(jìn)行解析。解析命令為:mysqlbinlog v base64output=decoderows skipgtids=true startdatetime=&39;20200213 20:10:00&39; stopdatetime=&39;20200213 21:30:00&39; d {$DBNAME} mysqlbin.000011 >>aa.log dbname做了脫敏處理。

      4、觀察解析后的sql,在20:20分并未發(fā)現(xiàn)大量的刪除操作,確認(rèn)開發(fā)人員的話不可信,做故障診斷的第一原則:任何人的話都不能全信,也不可能不信,帶著疑問(wèn)來(lái)找到論據(jù)證明他的說(shuō)法。

      5、繼續(xù)翻看解析的binlog,20:30開始出現(xiàn)大量的delete和update等操作,開始懷疑這一點(diǎn)是不是有問(wèn)題的時(shí)間段。

      6、將這一段的sql進(jìn)行歸納總結(jié),歸納需要操作幾個(gè)表,對(duì)這個(gè)幾個(gè)表的操作類型,以及操作的數(shù)據(jù)的類別(業(yè)務(wù)ID)。同工作流平臺(tái)的同事進(jìn)行確認(rèn),刪除一個(gè)工作流的模板,是不是涉及到這些表的變更,工作流平臺(tái)的同事確認(rèn)是這個(gè)過(guò)程,數(shù)據(jù)恢復(fù)的希望誕生了!

      7、根據(jù)以前的經(jīng)驗(yàn)積累,github上有個(gè)開源項(xiàng)目binlog2sql,可以將binlog的event翻譯成sql語(yǔ)句,也可以翻譯成反向sql,頓時(shí)覺得這個(gè)問(wèn)題應(yīng)該很“容易”解決了。

      8、根據(jù)以上思考,開始在仿真環(huán)境里安裝binlog2sql工具,該工具就是一個(gè)python的程序,需要安裝好python環(huán)境以及需要的三方庫(kù)即可,具體的使用方式請(qǐng)參考:https://github.com/danfengcao/binlog2sql,同時(shí)也再次感謝工具的作者曹老師。

      9、在仿真環(huán)境里,恢復(fù)生產(chǎn)環(huán)境有問(wèn)題的實(shí)例,同時(shí)在工作流平臺(tái)將應(yīng)用的jdbc的url指向新的恢復(fù)好的實(shí)例。

      以上幾個(gè)過(guò)程,已經(jīng)解決了第一個(gè)問(wèn)題,接下來(lái)我們要解決第二個(gè)問(wèn)題。

      1、在以上的步驟里,已經(jīng)在仿真環(huán)境復(fù)盤了生產(chǎn)環(huán)境的故障,同時(shí)在也仿真環(huán)境里里安裝了binlog轉(zhuǎn)成sql的工具。

      2、使用binlog2sql的工具,解析出來(lái)錯(cuò)誤執(zhí)行的sql,讓工作流的平臺(tái)的同時(shí)進(jìn)行確認(rèn),同時(shí)讓工作流的同事,確認(rèn)在這個(gè)時(shí)間段內(nèi)沒(méi)有其他的應(yīng)用也在操作這個(gè)數(shù)據(jù)庫(kù)。

      3、工作流的同事確認(rèn)sql全部為誤操作產(chǎn)生的sql。具體的確認(rèn)方式如下:

      在仿真環(huán)境模擬創(chuàng)建一個(gè)工作流模板。在這個(gè)模板上創(chuàng)建幾個(gè)測(cè)試實(shí)例通過(guò)接口去刪除這個(gè)工作流模板,觀察應(yīng)用產(chǎn)生的sql,以此來(lái)確認(rèn)本人提供的sql是否正確。

      同時(shí),工作流平臺(tái)確認(rèn)在問(wèn)題時(shí)間段內(nèi)無(wú)其他應(yīng)用操作,感覺勝利在望了,該問(wèn)題可以輕松解決了。

      4、通過(guò)binlog2sql生產(chǎn)反向sql,把sql應(yīng)用于仿真環(huán)境,問(wèn)題就能解決了,仔細(xì)觀察反向sql文件,發(fā)現(xiàn)里面有一些亂碼,查看亂碼字段所在的表,發(fā)現(xiàn)表的定義是這樣的:

      表中有個(gè)字段為longblob字段,產(chǎn)生的insert的sql無(wú)法執(zhí)行,這個(gè)問(wèn)題該怎么處理?

      5、這個(gè)問(wèn)題到這里陷入了僵局,眼看馬上就能解決的問(wèn)題,發(fā)現(xiàn)有一個(gè)表數(shù)據(jù)無(wú)法通過(guò)sql進(jìn)行插入,詢問(wèn)工作流平臺(tái)同事,這個(gè)表是否很重要,得到答復(fù),沒(méi)有這個(gè)表的數(shù)據(jù),系統(tǒng)無(wú)法運(yùn)轉(zhuǎn)。

      6、換個(gè)思路考慮一下,既然sql是通過(guò)二進(jìn)制的binlog生成的,可以考慮生成反向的二進(jìn)制binlog,然后把這一段反向的binlog應(yīng)用到數(shù)據(jù)庫(kù),這個(gè)問(wèn)題就解決了。

      7、帶著這個(gè)思路,去github里翻看了項(xiàng)目。果然還真有一個(gè):https://github.com/MeituanDianping/MyFlash 再次非常感謝美團(tuán)點(diǎn)評(píng)開源的myflash項(xiàng)目。

      8、利用myflash生成了反向二進(jìn)制文件,把文件應(yīng)用到數(shù)據(jù)庫(kù),工作流平臺(tái)在仿真環(huán)境測(cè)試,數(shù)據(jù)完美再現(xiàn)。

      三、問(wèn)題的反思

      通過(guò)以上分析,基本上就可以輕松解決這個(gè)問(wèn)題。對(duì)自己提出幾個(gè)問(wèn)題:

      1、為什么不用備份恢復(fù)的方式進(jìn)行數(shù)據(jù)庫(kù)恢復(fù)?

      在這個(gè)系統(tǒng)上,數(shù)據(jù)已經(jīng)備份了,每天都有全備,不能使用這個(gè)恢復(fù)的原因,工作流平臺(tái)里有很多應(yīng)用的流程引擎,一旦做了基于時(shí)間點(diǎn)恢復(fù),別的應(yīng)用的系統(tǒng)數(shù)據(jù)一塊被恢復(fù)了,將會(huì)導(dǎo)致別的系統(tǒng)會(huì)丟失一部分?jǐn)?shù)據(jù)。

      2、為什么不基于表的數(shù)據(jù)恢復(fù)?

      因?yàn)楣ぷ髁髌脚_(tái)是一個(gè)開源的平臺(tái),數(shù)據(jù)模型之間的關(guān)聯(lián)性特別強(qiáng),如果基于表的恢復(fù),容易導(dǎo)致數(shù)據(jù)的約束出現(xiàn)問(wèn)題。

      反思:

      1、 為什么在生產(chǎn)環(huán)境出現(xiàn)丟失數(shù)據(jù)的情況?

      開發(fā)人員在生產(chǎn)上線過(guò)程越過(guò)了仿真環(huán)境,直接上生產(chǎn),對(duì)生產(chǎn)上線過(guò)程并不嚴(yán)謹(jǐn),雖然有管理流程,但是對(duì)流程的過(guò)程執(zhí)行不力。

      2、研發(fā)人員的技術(shù)能力,研發(fā)人員對(duì)activity并不熟悉,對(duì)于修改流程模板的流程也不熟悉,提高研發(fā)人員的技術(shù)能力必須要提上日程。

      四、后續(xù)問(wèn)題

      結(jié)合以上分析過(guò)程,需要指定一些輔助策略來(lái)完善發(fā)布流程。

      1、發(fā)布流程自動(dòng)化,應(yīng)用代碼發(fā)布自動(dòng)化發(fā)布,盡量避免人為參與。

      2、應(yīng)用發(fā)布流程標(biāo)準(zhǔn)化,所有的腳本和上線的新的應(yīng)用的步驟必須經(jīng)過(guò)驗(yàn)證才能上線。

      作者丨劉寶珍 編輯修訂丨徐軼韜

      來(lái)源丨MySQL解決方案工程師(ID:mysqlse)

      dbaplus社群歡迎廣大技術(shù)人員投稿,投稿郵箱:editor@dbaplus.cn

      拓展知識(shí):

      主站蜘蛛池模板: 日韩成年人视频| 老子影院午夜伦不卡无码| 中文av在线播放| 亚洲妇女无套内射精| 亚洲综合无码久久精品综合| 99视频30精品视频在线观看23245| av最新在线| 国产av第一区| 别揉我奶头~嗯~啊~一区二区三区 久久99青青精品免费观看 | 亚洲中文字幕无码天然素人| 黄色性视频| 色在线综合| 人妻少妇av无码一区二区| 免费人成视频x8x8入口| 99视频在线免费观看| 日韩欧美亚洲视频| 性做久久久久久| 成人无码h动漫在线网站免费| 欧美草逼视频| 日韩色小说| 国产精品无码素人福利不卡| 天堂在/线中文在线资源8| 丰满岳跪趴高撅肥臀尤物在线观看| 国产一区二区高清视频| 精品国产性色无码av网站| 性动态图av无码专区| 国产玖玖| 美女131爽爽爽做爰视频| 久久婷婷激情综合色综合俺也去 | 日本人与黑人做爰视频| 国产午夜福利视频在线| 性久久久久久久| 免费久久精品国产片| 黄视频在线播放| www.成人网.com| 国产精品久久婷婷六月丁香| 欧美人善z0zo性伦交高清| 综合天天| 国产精品国产三级国产普通话蜜臀| 欧美另类videossexo高潮| 中文字幕丰满伦子无码ab |