最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MongoDB磁盤空間占滿導(dǎo)致數(shù)據(jù)庫被鎖定的解決方法

 更新時間:2024年04月28日 11:05:50   作者:小蘋果1357  
我在實際項目中,遇到一個問題,隨著數(shù)據(jù)每天的不斷增加,導(dǎo)致mongodb的磁盤空間站滿了,數(shù)據(jù)庫被鎖了,無法使用,所以本文給大家介紹了清理MongoDB數(shù)據(jù)和磁盤空間的方法,需要的朋友可以參考下

一、問題

1、我在實際項目中,遇到一個問題,隨著數(shù)據(jù)每天的不斷增加,導(dǎo)致mongodb的磁盤空間站滿了,數(shù)據(jù)庫被鎖了,無法使用。

2、故障表現(xiàn)

  • 部署的應(yīng)用程序突然無法將數(shù)據(jù)寫入數(shù)據(jù)庫,但是可以正常讀取數(shù)據(jù)。
  • 管理人員通過客戶端連接數(shù)據(jù)庫進(jìn)行排查時,可以寫入一條數(shù)據(jù),返回錯誤信息:not authorized on xxxx to execute command

3、檢查磁盤空間是否被耗盡

登錄mongodb管理控制臺,查看實例的狀態(tài),會發(fā)現(xiàn)已被鎖定,并且磁盤空間占用已經(jīng)100%

優(yōu)化之前數(shù)據(jù)和磁盤情況:

二、解決方案

1、兩種方案:

(1)通過變更配置方案,擴(kuò)充磁盤空間,來提升實例的磁盤空間

(2)刪除數(shù)據(jù)庫中的數(shù)據(jù),回收磁盤碎片以提升磁盤利用率,來減少數(shù)據(jù)存儲空間,降低磁盤占用空間

我選擇了第二種方案,因為我的數(shù)據(jù)庫中,有很多非必要的數(shù)據(jù)可以刪除,可以騰出不少磁盤空間。

2、注意問題

這里一定要注意,并不是在MongoDB實例數(shù)據(jù)庫中刪除數(shù)據(jù),就能夠釋放MongoDB實例的磁盤空間。在刪除云數(shù)據(jù)庫MongoDB實例的數(shù)據(jù)后,這些被刪除數(shù)據(jù)使用的存儲空間會被標(biāo)記為空閑,隨后寫入的新數(shù)據(jù)可能會被直接存儲到這部分空閑的存儲空間中,也可能會先擴(kuò)展文件的存儲空間再存儲到文件末尾。上述情況將導(dǎo)致一部分空閑的存儲空間不會被使用,這些未被使用的空閑存儲空間被稱之為磁盤碎片,磁盤碎片越多,磁盤利用率就越低。

3、背景信息

(1)執(zhí)行db.runCommand({collStats: <collection_name>}) 命令訪問節(jié)點(diǎn)時,返回結(jié)果有兩個關(guān)鍵字:sizestorageSize。其中,size表示集合的邏輯存儲大小,storageSize表示集合的物理存儲大小。在執(zhí)行remove命令刪除文檔后,size的值會減少,但是,storageSize的值不一定會減少。當(dāng)storageSize大于size時,表示已產(chǎn)生磁盤碎片。

(2)compact是云數(shù)據(jù)庫MongoDB的壓縮命令,執(zhí)行compact命令可以回收刪除數(shù)據(jù)后產(chǎn)生的磁盤碎片,實現(xiàn)壓縮磁盤空間的目的,從而提升磁盤利用率。

4、刪除數(shù)據(jù)庫數(shù)據(jù)

這里以表valueOpenData為例子,針對主節(jié)點(diǎn),進(jìn)行演示操作,之前已經(jīng)清理了一部分表的磁盤空間,現(xiàn)已經(jīng)不是100%。

刪除數(shù)據(jù),是不會減少磁盤空間的,這個一定要注意。

執(zhí)行刪除方案,刪除某一段時間之前的數(shù)據(jù):

db.valveOpenData.deleteMany({  
    "dataReadTime": {    
        "$lte": ISODate("2022-12-30T23:59:59Z")  
    }  
})

5、查看集合需回收的磁盤碎片空間

刪除數(shù)據(jù) 清理磁盤之前的總磁盤占用情況

刪除數(shù)據(jù)清理磁盤之前的磁盤占用空間

刪除數(shù)據(jù)清理磁盤之前的數(shù)據(jù)庫情況

執(zhí)行查看集合需回收的磁盤碎片空間語句

db.valveOpenData.stats().wiredTiger["block-manager"]["file bytes available for reuse"]

結(jié)果:可清理磁盤碎片 9161187328 byte

6、回收單節(jié)點(diǎn)或副本集實例的磁盤碎片 

單節(jié)點(diǎn)實例只有一個StandAlone節(jié)點(diǎn),您只需要連接主節(jié)點(diǎn)(Primary節(jié)點(diǎn)),執(zhí)行compact命令回收主節(jié)點(diǎn)(Primary節(jié)點(diǎn))的磁盤碎片。

副本集實例具有多個節(jié)點(diǎn),您需要分別連接主節(jié)點(diǎn)(Primary節(jié)點(diǎn))和從節(jié)點(diǎn)(Secondary節(jié)點(diǎn)),在不同節(jié)點(diǎn)上執(zhí)行compact命令回收相應(yīng)節(jié)點(diǎn)的磁盤碎片,執(zhí)行的回收命令相同。

我這里回收的是主節(jié)點(diǎn)(Primary節(jié)點(diǎn))磁盤碎片。

執(zhí)行語句

db.runCommand({compact:"valveOpenData"})

強(qiáng)制執(zhí)行語句

db.runCommand({compact:"valveOpenData",force:true})

執(zhí)行成功的返回結(jié)果如下:{ "ok" : 1 }  ,清理磁盤空間完成,你也可以多執(zhí)行幾次清理。

執(zhí)行查看集合需回收的磁盤碎片空間語句

db.valveOpenData.stats().wiredTiger["block-manager"]["file bytes available for reuse"]

結(jié)果:清理過后磁盤碎片 1072041984 byte

刪除數(shù)據(jù)清理磁盤之后的總磁盤占用情況

刪除數(shù)據(jù)清理磁盤之后的磁盤占用空間

刪除數(shù)據(jù)清理磁盤之后的數(shù)據(jù)庫情況

最終結(jié)果:一個表刪除數(shù)據(jù)、清理磁盤,清理出來差不多10G的磁盤空間

三、總結(jié)

對于不重要的數(shù)據(jù),為了防止數(shù)據(jù)量過大,占滿磁盤空間,需要定時清理過期或者不需要的數(shù)據(jù)。
最好寫個定時器定時刪除數(shù)據(jù)比較合適,但是要記得執(zhí)行回收磁盤碎片空間,只有執(zhí)行了回收后,才是真正回收了磁盤空間。

以上就是MongoDB磁盤空間占滿導(dǎo)致數(shù)據(jù)庫被鎖定的解決方法的詳細(xì)內(nèi)容,更多關(guān)于MongoDB磁盤空間占滿的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python實現(xiàn)爬蟲數(shù)據(jù)存到 MongoDB

    python實現(xiàn)爬蟲數(shù)據(jù)存到 MongoDB

    本文給大家分享的是使用python實現(xiàn)將爬蟲爬到的數(shù)據(jù)存儲到mongoDB數(shù)據(jù)庫中的實例代碼,有需要的小伙伴可以參考下
    2016-09-09
  • 在 Fedora 上安裝 MongoDB 服務(wù)器的方法教程

    在 Fedora 上安裝 MongoDB 服務(wù)器的方法教程

    Mongo是一個高性能、開源、無模式的、面向文檔的數(shù)據(jù)庫,它是最受歡迎的 NoSQL 數(shù)據(jù)庫之一。這篇文章主要介紹了在 Fedora 上安裝 MongoDB 服務(wù)器的方法,需要的朋友可以參考下
    2020-03-03
  • MongoDB Windows安裝服務(wù)方法與注意事項

    MongoDB Windows安裝服務(wù)方法與注意事項

    這篇文章主要介紹了MongoDB Windows安裝服務(wù)方法與注意事項的相關(guān)資料,MongoDB作為一個基于分布式文件存儲的數(shù)據(jù)庫,近兩年大受追捧。數(shù)據(jù)靈活的存取方式和高效的處理使得它廣泛用于互聯(lián)網(wǎng)應(yīng)用,需要的朋友可以參考下
    2016-12-12
  • 詳解MongoDB數(shù)據(jù)還原及同步解決思路

    詳解MongoDB數(shù)據(jù)還原及同步解決思路

    mongodb數(shù)據(jù)如何還原,同步到其他系統(tǒng)?其實實現(xiàn)方法很簡單,這篇文章主要介紹了MongoDB數(shù)據(jù)還原及同步解決思路,需要的朋友可以參考下
    2018-08-08
  • MongoDB聚合group的操作指南

    MongoDB聚合group的操作指南

    這篇文章主要給大家介紹了關(guān)于MongoDB聚合group的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • MongoDB在分片集群中添加新分片的操作方法

    MongoDB在分片集群中添加新分片的操作方法

    在MongoDB分片集群中添加新分片是一項重要的操作,可以通過增加分片來擴(kuò)展集群的存儲容量和處理能力,下面給大家介紹MongoDB在分片集群中添加新分片的操作步驟,感興趣的朋友跟隨小編一起看看吧
    2026-03-03
  • MongoDB視圖的修改與刪除的實現(xiàn)

    MongoDB視圖的修改與刪除的實現(xiàn)

    視圖為mongodb的操作和數(shù)據(jù)安全上提供了便利,本文主要介紹了MongoDB視圖的修改與刪除的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • 阿里云服務(wù)器部署mongodb的詳細(xì)過程

    阿里云服務(wù)器部署mongodb的詳細(xì)過程

    這篇文章主要介紹了阿里云服務(wù)器部署mongodb的過程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • 使用mongoose和bcrypt實現(xiàn)用戶密碼加密的示例

    使用mongoose和bcrypt實現(xiàn)用戶密碼加密的示例

    下面小編就為大家分享一篇使用mongoose和bcrypt實現(xiàn)用戶密碼加密的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • MongoDB中實現(xiàn)多表聯(lián)查的實例教程

    MongoDB中實現(xiàn)多表聯(lián)查的實例教程

    數(shù)據(jù)庫應(yīng)用在我們的生活中是很常見的,在編輯一些應(yīng)用以及軟件的時候都需要用到數(shù)據(jù)庫來存儲數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于MongoDB中實現(xiàn)多表聯(lián)查的相關(guān)資料,需要的朋友可以參考下
    2022-07-07

最新評論

凤凰县| 平罗县| 邵武市| 梅河口市| 靖州| 丽水市| 双流县| 阿克陶县| 邢台市| 平阴县| 兴宁市| 徐汇区| 克什克腾旗| 长岭县| 宁德市| 仪陇县| 吉林省| 紫阳县| 马龙县| 衡山县| 绥滨县| 德令哈市| 永安市| 潼关县| 泌阳县| 苏尼特右旗| 汾西县| 大姚县| 乌拉特后旗| 阿坝| 秭归县| 海晏县| 金溪县| 贵定县| 南宫市| 丰台区| 聂荣县| 日土县| 邮箱| 张掖市| 尼勒克县|