在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

誤刪ElasticSearch生產(chǎn)數(shù)據(jù)庫后的復(fù)盤

倩倩 ? 來源:AI前線 ? 作者:Hugo Rocha ? 2022-09-22 14:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

項(xiàng)目背景

這件事情發(fā)生在幾年前時,當(dāng)時我在一家初創(chuàng)的電子商務(wù)公司就職,主要負(fù)責(zé)領(lǐng)導(dǎo)兩支團(tuán)隊(duì)開發(fā)幾項(xiàng)核心后臺功能。后臺的作用是管理在前端當(dāng)中向全球用戶開放的信息,這些信息又分別由不同的團(tuán)隊(duì)維護(hù)。雖然這家公司歷史不長,但已經(jīng)在全球市場上建立起影響力,坐擁數(shù)十萬用戶群體。

其中一支團(tuán)隊(duì)開發(fā)了支持大部分后臺流程和工具的主要后臺產(chǎn)品目錄,存放著庫存、產(chǎn)品信息管理、訂單履行流程等大量內(nèi)容。這個組件相當(dāng)關(guān)鍵,大多數(shù)后臺服務(wù)、應(yīng)用程序和業(yè)務(wù)流程都會以某種方式進(jìn)行訪問。具體情況可以參考下圖:

0892c20e-3a39-11ed-9e49-dac502259ad0.png

圖一:非規(guī)范化讀取模型的簡化架構(gòu)示意

該平臺采用的是微服務(wù)架構(gòu),其中產(chǎn)品目錄屬于讀取模型,包含由多個不同領(lǐng)域事件流建立而成的非規(guī)范化信息,再由其他微服務(wù)加以管理。產(chǎn)品目錄本身由一個 ElasticSearch 數(shù)據(jù)庫支持,其中容納共 1700 萬種產(chǎn)品,具體涉及產(chǎn)品元數(shù)據(jù)、庫存、生產(chǎn)信息、可用性、定價等,而且全部都向 REST API 開放。我們之所以使用 ElasticSearch,主要是因?yàn)樾枰浜洗罅坎煌N類的過濾器(共有 50 多種不同過濾器,其中一些還帶有文本搜索功能)。

再談 ElasticSearch

正常來講,沒人能直接向數(shù)據(jù)庫發(fā)起寫入(我們在不同用例中使用到了多種技術(shù),包括 SQLServer、MongoDB 和 Cassandra 等),但 ElasticSearch 卻是個例外。畢竟在傳統(tǒng)上,ElasticSearch 應(yīng)該是由工程團(tuán)隊(duì),而非基礎(chǔ)設(shè)施或 DBA 團(tuán)隊(duì)進(jìn)行管理。與其他數(shù)據(jù)庫技術(shù)不同,ElasticSearch 是通過 REST 接口訪問的。通常,URL 具有以下格式(當(dāng)時我們使用的是 ElasticSearch 版本 5):{cluster_endpoint}/{index_name}/{type}/{document_id}(例如: elastic.com/productIndex/product/152474145)這種類型在后續(xù)版本中被刪除了。

其中任何類型的操作都是通過 HTTP 調(diào)用或者 SQL 腳本完成的。就是說在 ElasticSearch 當(dāng)中,我們肯定要用到 HTTP 請求。比如說根據(jù) REST 指南,如果用戶擁有一套產(chǎn)品目錄索引(ElasticSearch 中的索引基本相當(dāng)于 SQL 表)并想獲取特定產(chǎn)品,則需要執(zhí)行 GET elastic.com/productIndex/product/152474145。更新的時候,需要使用 PUT 或 PATCH 操作操作這個端點(diǎn),刪除的時候用 DELETE,創(chuàng)建的時候則是用 POST 或 PUT。另外,這些操作還可以指向 URL 中的不同部分,比如對 elastic.com/productIndex/product 執(zhí)行 GET 可以獲取類型信息,創(chuàng)建、刪除或者更新等操作也是同理。如果指向的是 elastic.com/productIndex,則代表獲取索引信息、更新、刪除或創(chuàng)建索引。

事件回溯

那是一個普通的禮拜五,一整天大家都在不停地開會,反正上班的日常就那個樣子。為了處理臨時任務(wù),比如幫助同事解決問題或者根據(jù)團(tuán)隊(duì)申請幫他們完成無權(quán)進(jìn)行的操作,我抓住了會議之間的一點(diǎn)點(diǎn)小閑暇。這時候,我看到一條請求希望通過 API 中本不可用的過濾器導(dǎo)出一些數(shù)據(jù)。這操作挺少見的,但考慮到對方團(tuán)隊(duì)很著急、理由又充分,我們還是決定出手相助。

于是趁著下場會議還有 15 分鐘,我迅速連上另一位高級管理員,想要快速訪問實(shí)時環(huán)境并執(zhí)行查詢。由于對 ElasticSearch 的直接訪問在本質(zhì)上就是對接 REST API,所以我們習(xí)慣性地使用 Postman 來執(zhí)行請求。

這位同事通過遠(yuǎn)程屏幕共享向我開放了操作平臺。其實(shí)我的工作習(xí)慣還好,一般會對實(shí)時操作先進(jìn)行一番代碼審查。所以我想先測試一下連接,確保自己拿到的 URL 正確無誤。于是我復(fù)制了實(shí)時端點(diǎn)和索引名稱(類似于我們前文討論過的 cluster_endpoint/index_name),并提交了一條 GET 請求。如果大家熟悉 Postman 界面,應(yīng)該會記得在下拉列表中選擇 HTTP 操作的過程:

08aaf130-3a39-11ed-9e49-dac502259ad0.png

圖二:在 Postman 界面中選擇 HTTP 操作

很遺憾,我在提交了請求之后,才注意到自己把操作錯選成了 DELETE,而不是 GET。操作的結(jié)果根本不是檢索索引信息,而是直接將其刪除。

這條請求要花幾秒鐘才會確認(rèn),所以我立刻按下了取消按鈕。取消操作立即提示成功,我的心里又涌起一絲希望,天真地認(rèn)為事情已經(jīng)過去、剛剛那些都是幻覺。

08c3b1d4-3a39-11ed-9e49-dac502259ad0.png

圖三:Postman 界面似乎可以取消尚未完成的請求

但很遺憾,知道我要取消的就只有 Postman 的客戶端;實(shí)際操作仍然一路狂奔,抵達(dá)了 ElasticSearch 服務(wù)器端。我試著用不加過濾條件的常規(guī)搜索確認(rèn)了索引總數(shù),而期待中的 1700 萬結(jié)果并沒有出現(xiàn),查詢返回的結(jié)果只有幾百條(我們的服務(wù)每秒大約發(fā)生 70 個事件,剩下的這幾百條應(yīng)該是刪除同時發(fā)生的產(chǎn)品創(chuàng)建 / 編輯操作)。

情況就是這么個情況,我不小心把產(chǎn)品目錄里 1700 萬條產(chǎn)品記錄、來自整個平臺數(shù)十項(xiàng)微服務(wù)的信息還有自己的職業(yè)聲譽(yù),全都搞砸了……

事情仍有轉(zhuǎn)機(jī)

跟老板通話之后,我們很快組織起作戰(zhàn)指揮室,處理各個服務(wù)區(qū)上報(bào)的問題。由于這套系統(tǒng)的本質(zhì)就是個讀取模型,而非任何特定信息的真實(shí)來源,所以我們“只需要”從其他服務(wù)那邊獲取信息就行。

所以擺在面前的選項(xiàng)就只有:

ElasticSearch 無法在發(fā)生重大變更時隨之調(diào)整 schema,它的基本策略還是將所有信息重新導(dǎo)入新的索引當(dāng)中。為此,我們設(shè)計(jì)了一款組件,能夠同步 REST API 以從其他微服務(wù)處獲取數(shù)據(jù),重新構(gòu)建每款產(chǎn)品。在它的幫助下,我們能夠解決上游服務(wù)發(fā)生的錯誤,應(yīng)對突發(fā)事件引起的一致性沖突。但是,獲取全部 1700 萬種產(chǎn)品的所有數(shù)據(jù)大概要花六天時間。管不了那么多了,我們決定馬上跑起來。

08de2f64-3a39-11ed-9e49-dac502259ad0.png

圖四:Catalog Updater 架構(gòu)——目錄重建組件

另外一個選擇就是使用事件流。大多數(shù)服務(wù)都能在必要時重新發(fā)布事件,某些關(guān)鍵區(qū)域還具備數(shù)據(jù)重播功能,這些數(shù)據(jù)可以跟正常使用中的變更順暢合流、為用戶服務(wù)。

而最大的希望也在于這里。在此之前的幾天,我們剛剛在 schema 當(dāng)中做了一次重大變更,所以需要創(chuàng)建新的索引版本來重新索引全部信息。因?yàn)樾枰瑫r在新舊兩個版本中接納新近變更,所以重新索引過程相當(dāng)漫長。我們此前已經(jīng)對舊索引做好了分析,而需要進(jìn)行重大變更的新功能其實(shí)不怎么重要,就是說現(xiàn)在我們手頭已經(jīng)有了一套完全可以接受的舊索引版本。雖然數(shù)據(jù)還是延遲了幾天,但畢竟要比空空如也好得多。所以在綜合討論了幾種方案之后,我們最終成功解決了這場突發(fā)危機(jī)。

經(jīng)驗(yàn)教訓(xùn) 備份與重建速度

備份的必要性已經(jīng)無需多言。我們的大多數(shù)數(shù)據(jù)庫都有備份,但卻沒有給 ElasticSearch 數(shù)據(jù)庫做好相應(yīng)的保護(hù)。另外,該數(shù)據(jù)庫本身屬于讀取模型,所以根據(jù)定義并不作為任何真實(shí)來源。理論上,讀取模型就不該需要備份,因?yàn)榭梢钥焖僦亟?,確保在發(fā)生重大事件時也不會造成太過嚴(yán)重的影響。由于讀取模型所容納的基本都是從其他來源推斷出的信息,所以很難確定到底值不值得做定期備份。但在實(shí)踐中,我們發(fā)現(xiàn)要在不影響用戶體驗(yàn)的同時重建模型,絕對是個令人頭痛的大麻煩。如果是只有幾百或幾千條記錄的小模型還好,但像我們這種覆蓋幾十個不同來源、承載上千萬條信息的讀取模型就完全是另一碼事了。

我們最終決定把兩種選項(xiàng)結(jié)合起來,成功將重建流程從六天縮短到了幾個小時。但由于這套數(shù)據(jù)庫太過重要,所以這幾個小時的宕機(jī)還是會給用戶造成重大影響,特別是在銷售季等特定活動期間。我們也可以想辦法進(jìn)一步縮短重建時長,但具體方案感覺有點(diǎn)過度設(shè)計(jì),而且會產(chǎn)生大量額外的基礎(chǔ)設(shè)施成本。所以我們決定只在風(fēng)險較高的時段內(nèi)進(jìn)行備份,例如在促銷季活動或其他關(guān)鍵業(yè)務(wù)執(zhí)行期間。

橫向擴(kuò)展根本指望不上

大家常說,選擇微服務(wù)的一大核心優(yōu)勢就是良好的橫向擴(kuò)展能力。但從圖四能夠看到,這種擴(kuò)展只能依賴于同步 API,所以橫向擴(kuò)展可以說根本指望不上。負(fù)責(zé)重建讀取模型的組件需要整整六天才能執(zhí)行完成,雖然理論上可以通過橫向擴(kuò)展把時間大大縮短,但問題是它仍然要靠 REST API 來檢索信息。它通過 REST 請求從其他各項(xiàng)微服務(wù)處請求數(shù)據(jù),構(gòu)建起非規(guī)范化視圖和持久化狀態(tài)。所以直接橫向擴(kuò)展會觸發(fā)大量指向其他服務(wù)的請求,而那些服務(wù)并沒有做好處理高強(qiáng)度額外負(fù)載的準(zhǔn)備,所以可能還需要再各自擴(kuò)展。這必然引發(fā)連鎖反應(yīng),最終令整個平臺走向崩潰的邊緣。另外,其中大多數(shù)微服務(wù)還高度依賴數(shù)據(jù)庫,所以微服務(wù)的擴(kuò)展又會引發(fā)相應(yīng)數(shù)據(jù)庫的擴(kuò)展。

我們確實(shí)進(jìn)行了擴(kuò)展,只是把擴(kuò)展量控制在很保守的水平。而即使是這樣,其他服務(wù)也有點(diǎn)招架不住,出現(xiàn)了可以感知到的影響?,F(xiàn)在來看,整個微服務(wù)架構(gòu)并不像我們想象中那樣高度解耦,反而很像是當(dāng)初的單體架構(gòu)。更要命的是,它沒有分布式的優(yōu)勢、卻得了分布式的病,管理起來異常麻煩。

所以在重建組件時,我們選擇了純事件流的方法。這種方式雖然也有問題,但至少能讓系統(tǒng)真正具有解耦性。就是說組件的擴(kuò)展只影響對應(yīng)資源,這才是真正具備橫向擴(kuò)展能力的設(shè)計(jì)。這里還有另一個設(shè)計(jì)難題,就是事件應(yīng)該大一些還是小一些。至少對讀取模型來說,事件還是越大越好。我們還用到一項(xiàng)有趣的策略,就是使用了帶有 Kafka 壓縮主題的文檔,借此大大提升速度和擴(kuò)展能力。這種方法能把重建策略從批處理轉(zhuǎn)化成流處理。與通過 HTTP 請求獲取數(shù)據(jù)不同,事件流上的數(shù)據(jù)有著更低的獲取難度和更快的獲取速度,原因就是它的網(wǎng)絡(luò)延遲更低,而且不用靠中間服務(wù)從數(shù)據(jù)庫內(nèi)獲取數(shù)據(jù),一切就在事件流上。另外,事件流的真解耦性也讓整個過程實(shí)現(xiàn)了橫向擴(kuò)展,再不用擔(dān)心對其他服務(wù)產(chǎn)生意外影響。

基于角色的訪問機(jī)制

事件發(fā)生之后,我們開始全力推行基于角色的訪問控制。之前我們使用的是舊版 ElasticSearch,它只提供非常基礎(chǔ)的用戶身份驗(yàn)證,而更靠譜的 XPack 在這個版本里是要收費(fèi)的。不過在后續(xù)更新中,XPack 也被加入了免費(fèi)許可證套餐,真正是好用又不貴了。

所以,我們遷移到了 ElasticSearch 版本 7 并創(chuàng)建了不同的讀寫角色。最終,只有應(yīng)用程序能夠定期直接寫入數(shù)據(jù)庫,用戶最多只能直接讀取。

責(zé)任不在人,而在流程

每當(dāng)出現(xiàn)問題,我總會向技術(shù)團(tuán)隊(duì)強(qiáng)調(diào),最大的責(zé)任不在于人,而在于糟糕的流程。我們需要分析流程中的哪個環(huán)節(jié)出了問題并找到解決辦法,避免任何人——無論是剛剛?cè)肼毜男聠T工,還是經(jīng)驗(yàn)豐富的老伙伴——再犯同樣的錯誤。

我一直秉持這樣的管理思路,也時時處處用這樣的方式管理工作、處理事件。雖然這事已經(jīng)過去幾年了,雖然我還是會偶爾想起這一切并尷尬地苦笑,但這個契機(jī)確實(shí)也給我們帶來了更合理的操作流程。我們調(diào)整了實(shí)時數(shù)據(jù)的訪問方式,消除了直接進(jìn)行寫入操作的權(quán)限。甚至對于讀取訪問,我們也開始采取更審慎的態(tài)度,畢竟惡意查詢很可能對 ElasticSearch 資源產(chǎn)生的可怕的影響,某些極端復(fù)雜的查詢(例如高深度分頁)甚至?xí)l(fā)集群崩潰(例如超過客戶端節(jié)點(diǎn)的內(nèi)存上限)。我想再強(qiáng)調(diào)一句,這不是要剝奪團(tuán)隊(duì)的自主權(quán),而是幫助大家盡量少犯錯。

臨時請求會被提交給專管這類請求的實(shí)時工程團(tuán)隊(duì),所以正常來講大家根本不需要直接訪問數(shù)據(jù)庫。手動重復(fù)任務(wù)已經(jīng)被整合進(jìn)對應(yīng)服務(wù)的功能當(dāng)中,并通過應(yīng)用層加以適當(dāng)驗(yàn)證,這就消除了出現(xiàn)意外刪除或大量查詢的可能性??傮w來講,我們的調(diào)整就是要確保人們能夠用適當(dāng)?shù)墓ぞ咄瓿晒ぷ?、響?yīng)業(yè)務(wù)請求,而且始終保持安全穩(wěn)定。

寫在最后

其實(shí)在鬧出這事之前,我在很多文章里都讀到過類似的情景,但從沒想過有一天自己會成為故事的主角。那時候我的想法很簡單,“我做事是講套路的,絕對不會輕易下手。”但有時候,難以挽回的錯誤可能只需要一瞬間的分心、一瞬間的疏忽。這段經(jīng)歷教會了我要永遠(yuǎn)保持謙卑,我也大大方方把這個故事講給每位團(tuán)隊(duì)成員聽,讓他們知道技術(shù)負(fù)責(zé)人也一樣可能會犯低級錯誤。所以最重要的還是給自己加上點(diǎn)約束,避免我們“愚蠢的一面有機(jī)可乘”。

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • HTTP
    +關(guān)注

    關(guān)注

    0

    文章

    524

    瀏覽量

    32623
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3910

    瀏覽量

    66001
  • 微服務(wù)
    +關(guān)注

    關(guān)注

    0

    文章

    145

    瀏覽量

    7708

原文標(biāo)題:誤刪ElasticSearch生產(chǎn)數(shù)據(jù)庫后的復(fù)盤

文章出處:【微信號:AI前線,微信公眾號:AI前線】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—MongoDB數(shù)據(jù)庫文件丟失的數(shù)據(jù)恢復(fù)案例

    將MongoDB數(shù)據(jù)庫文件拷貝到其他分區(qū),數(shù)據(jù)復(fù)制完成將MongoDB數(shù)據(jù)庫原先所在的分區(qū)進(jìn)行了格式化操作。 結(jié)果發(fā)現(xiàn)拷貝過去的數(shù)據(jù)無法
    的頭像 發(fā)表于 07-01 11:13 ?60次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—MongoDB<b class='flag-5'>數(shù)據(jù)庫</b>文件丟失的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫被加密如何恢復(fù)數(shù)據(jù)?

    SQL Server數(shù)據(jù)庫故障: SQL Server數(shù)據(jù)庫被加密,無法使用。 數(shù)據(jù)庫MDF、LDF、log日志文件名字被篡改。
    的頭像 發(fā)表于 06-25 13:54 ?74次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—SQL Server<b class='flag-5'>數(shù)據(jù)庫</b>被加密如何恢復(fù)<b class='flag-5'>數(shù)據(jù)</b>?

    MySQL數(shù)據(jù)庫是什么

    MySQL數(shù)據(jù)庫是一種 開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS) ,由瑞典MySQL AB公司開發(fā),被Oracle公司收購。它通過結(jié)構(gòu)化查詢語言(SQL)進(jìn)行數(shù)據(jù)存儲、管理和操作,廣
    的頭像 發(fā)表于 05-23 09:18 ?371次閱讀

    分布式存儲數(shù)據(jù)恢復(fù)—虛擬機(jī)上hbase和hive數(shù)據(jù)庫數(shù)據(jù)恢復(fù)案例

    分布式存儲數(shù)據(jù)恢復(fù)環(huán)境: 16臺某品牌R730xd服務(wù)器節(jié)點(diǎn),每臺服務(wù)器節(jié)點(diǎn)上有數(shù)臺虛擬機(jī)。 虛擬機(jī)上部署Hbase和Hive數(shù)據(jù)庫。 分布式存儲故障: 數(shù)據(jù)庫底層文件被誤刪
    的頭像 發(fā)表于 04-17 11:05 ?201次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)——MongoDB數(shù)據(jù)庫文件拷貝服務(wù)無法啟動的數(shù)據(jù)恢復(fù)

    文件。將MongoDB數(shù)據(jù)庫文件拷貝到其他分區(qū),對MongoDB數(shù)據(jù)庫所在原分區(qū)進(jìn)行了格式化操作。格式化完成數(shù)據(jù)庫文件拷回原分區(qū),并重
    的頭像 發(fā)表于 04-09 11:34 ?271次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)——MongoDB<b class='flag-5'>數(shù)據(jù)庫</b>文件拷貝<b class='flag-5'>后</b>服務(wù)無法啟動的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)——MySQL數(shù)據(jù)庫誤刪除表記錄的數(shù)據(jù)恢復(fù)案例

    本地服務(wù)器,安裝的windows server操作系統(tǒng)。 操作系統(tǒng)上部署MySQL單實(shí)例,引擎類型為innodb,表空間類型為獨(dú)立表空間。該MySQL數(shù)據(jù)庫沒有備份,未開啟binlog。 人為
    的頭像 發(fā)表于 02-22 09:44 ?636次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)——MySQL<b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>誤刪</b>除表記錄的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    MySQL數(shù)據(jù)庫的安裝

    MySQL數(shù)據(jù)庫的安裝 【一】各種數(shù)據(jù)庫的端口 MySQL :3306 Redis :6379 MongoDB :27017 Django :8000 flask :5000 【二】MySQL 介紹
    的頭像 發(fā)表于 01-14 11:25 ?537次閱讀
    MySQL<b class='flag-5'>數(shù)據(jù)庫</b>的安裝

    數(shù)據(jù)庫是哪種數(shù)據(jù)庫類型?

    數(shù)據(jù)庫是一種部署在虛擬計(jì)算環(huán)境中的數(shù)據(jù)庫,它融合了云計(jì)算的彈性和可擴(kuò)展性,為用戶提供高效、靈活的數(shù)據(jù)庫服務(wù)。云數(shù)據(jù)庫主要分為兩大類:關(guān)系型數(shù)據(jù)庫
    的頭像 發(fā)表于 01-07 10:22 ?481次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—Mysql數(shù)據(jù)庫表記錄丟失的數(shù)據(jù)恢復(fù)流程

    Mysql數(shù)據(jù)庫故障: Mysql數(shù)據(jù)庫表記錄丟失。 Mysql數(shù)據(jù)庫故障表現(xiàn): 1、Mysql數(shù)據(jù)庫表中無任何數(shù)據(jù)或只有部分
    的頭像 發(fā)表于 12-16 11:05 ?573次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—Mysql<b class='flag-5'>數(shù)據(jù)庫</b>表記錄丟失的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)流程

    數(shù)據(jù)庫事件觸發(fā)的設(shè)置和應(yīng)用

    數(shù)據(jù)庫無論對于生產(chǎn)管理還是很多的實(shí)際應(yīng)用都非常重要。小編這次聊一下數(shù)據(jù)庫事件觸發(fā)的應(yīng)用。示例使用了postgresql和Python。
    的頭像 發(fā)表于 12-13 15:14 ?607次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—MYSQL數(shù)據(jù)庫ibdata1文件損壞的數(shù)據(jù)恢復(fù)案例

    mysql數(shù)據(jù)庫故障: mysql數(shù)據(jù)庫文件ibdata1、MYI、MYD損壞。 故障表現(xiàn):1、數(shù)據(jù)庫無法進(jìn)行查詢等操作;2、使用mysqlcheck和myisamchk無法修復(fù)數(shù)據(jù)庫
    的頭像 發(fā)表于 12-09 11:05 ?589次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—通過拼接數(shù)據(jù)庫碎片恢復(fù)SQLserver數(shù)據(jù)庫

    一個運(yùn)行在存儲上的SQLServer數(shù)據(jù)庫,有1000多個文件,大小幾十TB。數(shù)據(jù)庫每10天生成一個NDF文件,每個NDF幾百GB大小。數(shù)據(jù)庫包含兩個LDF文件。 存儲損壞,數(shù)據(jù)庫
    的頭像 發(fā)表于 10-31 13:21 ?663次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—通過拼接<b class='flag-5'>數(shù)據(jù)庫</b>碎片恢復(fù)SQLserver<b class='flag-5'>數(shù)據(jù)庫</b>

    Oracle數(shù)據(jù)恢復(fù)—異常斷電Oracle數(shù)據(jù)庫報(bào)錯的數(shù)據(jù)恢復(fù)案例

    Oracle數(shù)據(jù)庫故障: 機(jī)房異常斷電,Oracle數(shù)據(jù)庫報(bào)錯:“system01.dbf需要更多的恢復(fù)來保持一致性,數(shù)據(jù)庫無法打開
    的頭像 發(fā)表于 09-30 13:31 ?699次閱讀
    Oracle<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—異常斷電<b class='flag-5'>后</b>Oracle<b class='flag-5'>數(shù)據(jù)庫</b>啟<b class='flag-5'>庫</b>報(bào)錯的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫出現(xiàn)823錯誤的數(shù)據(jù)恢復(fù)案例

    SQL Server數(shù)據(jù)庫故障: SQL Server附加數(shù)據(jù)庫出現(xiàn)錯誤823,附加數(shù)據(jù)庫失敗。數(shù)據(jù)庫沒有備份,無法通過備份恢復(fù)數(shù)據(jù)庫。
    的頭像 發(fā)表于 09-20 11:46 ?670次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—SQL Server<b class='flag-5'>數(shù)據(jù)庫</b>出現(xiàn)823錯誤的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫所在分區(qū)空間不足報(bào)錯的數(shù)據(jù)恢復(fù)案例

    Server數(shù)據(jù)庫故障: 存放SQL Server數(shù)據(jù)庫的D分區(qū)容量不足,管理員在E中生成了一個.ndf的文件并且將數(shù)據(jù)庫路徑指向E
    的頭像 發(fā)表于 07-10 13:54 ?903次閱讀
    主站蜘蛛池模板: 永久精品免费影院在线观看网站 | 精品福利在线视频 | 一丝不遮视频免费观看 | 女人色视频| 久久草在线播放 | 色婷婷六月丁香在线观看 | 午夜综合网 | 久99频这里只精品23热 视频 | 黄网站在线观看高清免费 | 成人美女隐私免费 | 日韩a级毛片| wwwww色| 亚洲男人a天堂在线2184 | 精品无码三级在线观看视频 | 中国免费黄色片 | 久久激情网 | 亚洲毛片免费在线观看 | 欧美日韩性大片 | 天天躁夜夜躁狠狠躁2021a | 48pao强力打造免费基地 | 色播影院性播影院私人影院 | 色女人在线 | 欧美一级在线观看 | 香港三澳门三日本三级 | h视频在线免费 | 国产老肥熟xxxx | 永久免费的拍拍拍网站 | 国内夫妇交换性经过实录 | 成人a一级毛片免费看 | 国产精品久久久久天天影视 | 亚洲精品久久久久久婷婷 | 一级爱片 | 99热99热| www天堂在线 | 色综合网天天综合色中文男男 | 操你啦网站 | 在线免费观看色视频 | 日本视频不卡 | 日本黄色网址大全 | 国产五月婷婷 | 亚洲欧美日韩综合一区 |