chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

項目背景

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

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

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,主要是因為需要配合大量不同種類的過濾器(共有 50 多種不同過濾器,其中一些還帶有文本搜索功能)。

再談 ElasticSearch

正常來講,沒人能直接向數(shù)據(jù)庫發(fā)起寫入(我們在不同用例中使用到了多種技術(shù),包括 SQLServer、MongoDB 和 Cassandra 等),但 ElasticSearch 卻是個例外。畢竟在傳統(tǒng)上,ElasticSearch 應(yīng)該是由工程團隊,而非基礎(chǔ)設(shè)施或 DBA 團隊進行管理。與其他數(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 操作操作這個端點,刪除的時候用 DELETE,創(chuàng)建的時候則是用 POST 或 PUT。另外,這些操作還可以指向 URL 中的不同部分,比如對 elastic.com/productIndex/product 執(zhí)行 GET 可以獲取類型信息,創(chuàng)建、刪除或者更新等操作也是同理。如果指向的是 elastic.com/productIndex,則代表獲取索引信息、更新、刪除或創(chuàng)建索引。

事件回溯

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

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

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

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

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

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

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

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

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

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

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

事情仍有轉(zhuǎn)機

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

所以擺在面前的選項就只有:

ElasticSearch 無法在發(fā)生重大變更時隨之調(diào)整 schema,它的基本策略還是將所有信息重新導(dǎo)入新的索引當(dāng)中。為此,我們設(shè)計了一款組件,能夠同步 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)建新的索引版本來重新索引全部信息。因為需要同時在新舊兩個版本中接納新近變更,所以重新索引過程相當(dāng)漫長。我們此前已經(jīng)對舊索引做好了分析,而需要進行重大變更的新功能其實不怎么重要,就是說現(xiàn)在我們手頭已經(jīng)有了一套完全可以接受的舊索引版本。雖然數(shù)據(jù)還是延遲了幾天,但畢竟要比空空如也好得多。所以在綜合討論了幾種方案之后,我們最終成功解決了這場突發(fā)危機。

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

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

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

橫向擴展根本指望不上

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

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

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

基于角色的訪問機制

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

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

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

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

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

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

寫在最后

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

審核編輯 :李倩

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

    關(guān)注

    0

    文章

    525

    瀏覽量

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

    關(guān)注

    7

    文章

    3926

    瀏覽量

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

    關(guān)注

    0

    文章

    145

    瀏覽量

    7739

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

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

    將MongoDB數(shù)據(jù)庫文件拷貝到其他分區(qū),數(shù)據(jù)復(fù)制完成將MongoDB數(shù)據(jù)庫原先所在的分區(qū)進行了格式化操作。 結(jié)果發(fā)現(xiàn)拷貝過去的數(shù)據(jù)無法
    的頭像 發(fā)表于 07-01 11:13 ?148次閱讀
    <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 ?138次閱讀
    <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>?

    PLC數(shù)據(jù)中臺對接到MySQL數(shù)據(jù)庫并對接到生產(chǎn)看板

    工廠數(shù)據(jù)庫系統(tǒng)能夠存儲產(chǎn)品訂單信息、生產(chǎn)設(shè)備能力、原材料庫存等數(shù)據(jù)。將這些數(shù)據(jù)接入MES或ERP等系統(tǒng),能夠?qū)崿F(xiàn)生產(chǎn)管理的可視化應(yīng)用?;谶@
    的頭像 發(fā)表于 05-26 11:20 ?126次閱讀
    PLC<b class='flag-5'>數(shù)據(jù)</b>中臺對接到MySQL<b class='flag-5'>數(shù)據(jù)庫</b>并對接到<b class='flag-5'>生產(chǎn)</b>看板

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

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

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

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

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

    文件。將MongoDB數(shù)據(jù)庫文件拷貝到其他分區(qū),對MongoDB數(shù)據(jù)庫所在原分區(qū)進行了格式化操作。格式化完成數(shù)據(jù)庫文件拷回原分區(qū),并重
    的頭像 發(fā)表于 04-09 11:34 ?301次閱讀
    <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單實例,引擎類型為innodb,表空間類型為獨立表空間。該MySQL數(shù)據(jù)庫沒有備份,未開啟binlog。 人為
    的頭像 發(fā)表于 02-22 09:44 ?688次閱讀
    <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 ?562次閱讀
    MySQL<b class='flag-5'>數(shù)據(jù)庫</b>的安裝

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

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

    數(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 ?606次閱讀
    <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)管理還是很多的實際應(yīng)用都非常重要。小編這次聊一下數(shù)據(jù)庫事件觸發(fā)的應(yīng)用。示例使用了postgresql和Python。
    的頭像 發(fā)表于 12-13 15:14 ?632次閱讀

    數(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ù)庫無法進行查詢等操作;2、使用mysqlcheck和myisamchk無法修復(fù)數(shù)據(jù)庫
    的頭像 發(fā)表于 12-09 11:05 ?631次閱讀

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

    一個運行在存儲上的SQLServer數(shù)據(jù)庫,有1000多個文件,大小幾十TB。數(shù)據(jù)庫每10天生成一個NDF文件,每個NDF幾百GB大小。數(shù)據(jù)庫包含兩個LDF文件。 存儲損壞,數(shù)據(jù)庫
    的頭像 發(fā)表于 10-31 13:21 ?695次閱讀
    <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ù)庫報錯的數(shù)據(jù)恢復(fù)案例

    Oracle數(shù)據(jù)庫故障: 機房異常斷電,Oracle數(shù)據(jù)庫報錯:“system01.dbf需要更多的恢復(fù)來保持一致性,數(shù)據(jù)庫無法打開
    的頭像 發(fā)表于 09-30 13:31 ?723次閱讀
    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 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 ?700次閱讀
    <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ù)案例