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

Mongodb?刪除集合數(shù)據(jù)后釋放磁盤空間的操作步驟

 更新時間:2023年11月20日 10:35:54   作者:Ethanchen's?notes  
Mongodb當(dāng)集合數(shù)據(jù)占用比較多,對其進(jìn)行清理后,集合存儲空間下降,但磁盤空間并沒釋放,對于具有活動更新的集合來說,有一些可重用的空間是正常的,過多的可重用空間通常是刪除大量數(shù)據(jù)的結(jié)果,這篇文章主要介紹了Mongodb?刪除集合數(shù)據(jù)后如何釋放磁盤空間,需要的朋友可以參考下

刪除集合

在Mongodb當(dāng)集合數(shù)據(jù)占用比較多,對其進(jìn)行清理后,集合存儲空間下降,但磁盤空間并沒釋放,對于具有活動更新的集合來說,有一些可重用的空間是正常的。過多的可重用空間通常是刪除大量數(shù)據(jù)的結(jié)果。

如果您有許多大量集合需要壓縮(或者想要盡可能的釋放磁盤空間),請重新同步副本集的次要成員

如果compact最終沒有釋放足夠的空間, 通過初始同步將通過復(fù)制另一個成員的數(shù)據(jù)來重建所有數(shù)據(jù)文件。

compact 如果您確實決定在生產(chǎn)環(huán)境中運行,可以考慮將通過以下方式最大限度地減少影響:

  • 副本集部署(理想情況下至少三個數(shù)據(jù)承載成員,沒有仲裁者)
  • compact 一次在一臺輔助設(shè)備上運行操作。
  • 配置 secondary 為 hidden 在操作期間,競爭流量將是基本復(fù)制。
  • 重新分配主節(jié)點。
  • 壓縮舊的主數(shù)據(jù)庫。

集合數(shù)據(jù)如下:

local_rs1:PRIMARY> db.version()
4.4.15
# Primary 
local_rs1:PRIMARY> db.myCompact.count()
500000
local_rs1:PRIMARY> db.runCommand( { collStats: "myCompact" } ).totalSize
20520960
# 11747328 + 8773632 = 20520960
root@ubuntu-x64_01:/data/mongodb/data/test# ls -tl | grep 3518756157035530607 
-rw------- 1 mongodb mongodb 11747328 11月 17 10:53 collection-8--3518756157035530607.wt
-rw------- 1 mongodb mongodb  8773632 11月 17 10:53 index-9--3518756157035530607.wt
# -------------------------------------
# SECONDARY 1
local_rs1:SECONDARY> db.myCompact.count()
500000
local_rs1:SECONDARY> db.runCommand( { collStats: "myCompact" } ).totalSize
20492288
# 11661312 + 8830976 = 20492288
root@ubuntu-x64_01:/data/mongodb27018/data/test# ls -lt | grep 7679634562768091767
-rw------- 1 mongodb mongodb 11661312 11月 17 10:53 collection-8-7679634562768091767.wt
-rw------- 1 mongodb mongodb  8830976 11月 17 10:53 index-9-7679634562768091767.wt
# -------------------------------------
# SECONDARY 2 
local_rs1:SECONDARY> db.myCompact.count()
500000
local_rs1:SECONDARY> db.runCommand( { collStats: "myCompact" } ).totalSize
20533248
# 11702272 + 8830976 = 20533248
root@ubuntu-x64_01:/data/mongodb27019/data/test# ls -lt | grep 265063963681791421
-rw------- 1 mongodb mongodb 11702272 11月 17 10:53 collection-8-265063963681791421.wt
-rw------- 1 mongodb mongodb  8830976 11月 17 10:53 index-9-265063963681791421.wt

刪除集合所有數(shù)據(jù),執(zhí)行 db.collection.deleteMany() 方法。 Compact 操作阻塞行為是特定于版本的。

版本阻止行為
4.4 之前compact 阻止所有讀寫活動。
4.4compact 阻止這些操作:
db.collection.drop()
db.collection.createIndex()
db.collection.createIndexes()
db.collection.dropIndex()
db.collection.dropIndexes()
collMod
所有其他操作都是允許的。
4.4.17后compact 阻止這些操作:
db.collection.drop()
db.collection.createIndex()
db.collection.createIndexes()
db.collection.dropIndex()
db.collection.dropIndexes()
collMod
所有其他操作都是允許的。
鎖定順序發(fā)生變化。

compact 嘗試減少集合中數(shù)據(jù)和索引所需的存儲空間,向操作系統(tǒng)釋放不需要的磁盤空間。此操作的有效性取決于工作負(fù)載,并且無法恢復(fù)任何磁盤空間。如果您已從集合中刪除大量數(shù)據(jù)并且不打算替換它,則此命令非常有用。

測試刪除 60% (300000/500000)集合數(shù)據(jù),如下:

# PRIMARY 
local_rs1:PRIMARY> db.myCompact.find().limit(2)
{ "_id" : ObjectId("6556d1a2ff3d41b00910281b"), "uid" : 0, "username" : "compact0", "create_at" : ISODate("2023-11-17T02:36:18.883Z") }
{ "_id" : ObjectId("6556d1a2ff3d41b00910281c"), "uid" : 1, "username" : "compact1", "create_at" : ISODate("2023-11-17T02:36:18.894Z") }
local_rs1:PRIMARY> db.myCompact.deleteMany({ "uid" : { $lt: 300000 } })
{ "acknowledged" : true, "deletedCount" : 300000 }
local_rs1:PRIMARY> db.myCompact.count()
200000

以上清理數(shù)據(jù)后,磁盤空間和集合存儲大小并沒有減小。 如下

# PRIMARY 
local_rs1:PRIMARY> db.myCompact.count()
200000
local_rs1:PRIMARY> db.runCommand( { collStats: "myCompact" } ).totalSize
28233728
root@ubuntu-x64_01:/data/mongodb/data/test# ls -tl | grep 3518756157035530607 
-rw------- 1 mongodb mongodb 15519744 11月 17 11:47 collection-8--3518756157035530607.wt
-rw------- 1 mongodb mongodb 12713984 11月 17 11:47 index-9--3518756157035530607.wt
# ----------------------------
# SECONDARY 1 
local_rs1:SECONDARY> db.myCompact.count()
200000
local_rs1:SECONDARY> db.runCommand( { collStats: "myCompact" } ).totalSize
30523392
root@ubuntu-x64_01:/data/mongodb27018/data/test# ls -lt | grep 7679634562768091767
-rw------- 1 mongodb mongodb 16674816 11月 17 13:09 collection-8-7679634562768091767.wt
-rw------- 1 mongodb mongodb 13848576 11月 17 13:09 index-9-7679634562768091767.wt
# ----------------------------
# SECONDARY 2
local_rs1:SECONDARY> db.myCompact.count()
200000
local_rs1:SECONDARY>  db.runCommand( { collStats: "myCompact" } ).totalSize
20516864
root@ubuntu-x64_01:/data/mongodb27019/data/test# ls -tl | grep 265063963681791421
-rw------- 1 mongodb mongodb 11702272 11月 17 13:14 collection-8-265063963681791421.wt
-rw------- 1 mongodb mongodb  8814592 11月 17 13:14 index-9-265063963681791421.wt

Compact 集合

對于副本集, 您可以在存儲副本集中的集合和索引上使用 compact ,但是有一些重要的注意事項:

  • 主節(jié)點不會將compact命令復(fù)制到輔助節(jié)點。

  • 您應(yīng)該盡可能在輔助節(jié)點上運行compact。如果您無法在輔助節(jié)點上運行compact,請使用 force 選項。

  • 從 MongoDB 4.4.17 開始:

    • compact 運行時輔助節(jié)點可以進(jìn)行復(fù)制。

    • 允許讀取。

壓縮輔助節(jié)點。compact 在輔助節(jié)點之一上運行。完成后 compact ,依次在剩余的每個輔助節(jié)點上重復(fù)該操作。

# SECONDARY 1 
local_rs1:SECONDARY> db.myCompact.count()
200000
local_rs1:SECONDARY> db.runCommand( { collStats: "myCompact" } ).totalSize
30523392
# 釋放空間 23064576 = 22 MB 左右
local_rs1:SECONDARY> db.runCommand( { compact: "myCompact" } )
{
        "bytesFreed" : 23064576,
        "ok" : 1,
        "$clusterTime" : {
                "clusterTime" : Timestamp(1700198786, 1),
                "signature" : {
                        "hash" : BinData(0,"o2RnaYFH8J1pgLaIx2T+iLCkPdY="),
                        "keyId" : NumberLong("7236938018798436354")
                }
        },
        "operationTime" : Timestamp(1700198786, 1)
}
local_rs1:SECONDARY> db.runCommand( { collStats: "myCompact" } ).totalSize
7458816
# 4382720 + 3076096 = 7458816
root@ubuntu-x64_01:/data/mongodb27018/data/test# ls -lt | grep 7679634562768091767
-rw------- 1 mongodb mongodb  4382720 11月 17 13:26 collection-8-7679634562768091767.wt
-rw------- 1 mongodb mongodb  3076096 11月 17 13:26 index-9-7679634562768091767.wt

重新分配主節(jié)點。要讓當(dāng)前的初選下臺并觸發(fā)選舉,請使用該 rs.stepDown()方法。要提名特定輔助節(jié)點,請調(diào)整成員優(yōu)先級。

local_rs1:PRIMARY> rs.status()
{
        "set" : "local_rs1",
        "date" : ISODate("2023-11-17T05:41:07.931Z"),
        ........
        "members" : [
                {
                        "_id" : 1,
                        "name" : "192.168.88.11:27018",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        ......
                },
                {
                        "_id" : 3,
                        "name" : "192.168.88.11:27017",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY",
                        ......
                },
                {
                        "_id" : 4,
                        "name" : "192.168.88.11:27019",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        ......
                }
        ],
        "ok" : 1,
        "$clusterTime" : {
                "clusterTime" : Timestamp(1700199666, 1),
                "signature" : {
                        "hash" : BinData(0,"a5utef8Cjsp20W8DWtvzsmMn9Wo="),
                        "keyId" : NumberLong("7236938018798436354")
                }
        },
        "operationTime" : Timestamp(1700199666, 1)
}
local_rs1:PRIMARY> rs.stepDown()
{
        "ok" : 1,
        "$clusterTime" : {
                "clusterTime" : Timestamp(1700199726, 1),
                "signature" : {
                        "hash" : BinData(0,"qpsh46gaM9GKg8RMV799tA/o8uw="),
                        "keyId" : NumberLong("7236938018798436354")
                }
        },
        "operationTime" : Timestamp(1700199726, 1)
}

壓縮舊的主數(shù)據(jù)庫。下臺后,舊的主節(jié)點將成為輔助節(jié)點。compact 在舊主節(jié)點上運行。

local_rs1:SECONDARY> db.myCompact.count()
200000
local_rs1:SECONDARY> db.runCommand( { collStats: "myCompact" } ).totalSize
28233728
local_rs1:SECONDARY> db.runCommand( { compact: "myCompact" } )
{
        "bytesFreed" : 18976768,
        "ok" : 1,
        "$clusterTime" : {
                "clusterTime" : Timestamp(1700199986, 1),
                "signature" : {
                        "hash" : BinData(0,"D1zMSrcV9n2Deh/2u1Edw4s2pDk="),
                        "keyId" : NumberLong("7236938018798436354")
                }
        },
        "operationTime" : Timestamp(1700199986, 1)
}
local_rs1:SECONDARY> db.runCommand( { collStats: "myCompact" } ).totalSize
9256960
root@ubuntu-x64_01:/data/mongodb/data/test# ls -tl  | grep 3518756157035530607
-rw------- 1 mongodb mongodb  5341184 11月 17 13:46 collection-8--3518756157035530607.wt
-rw------- 1 mongodb mongodb  3915776 11月 17 13:46 index-9--3518756157035530607.wt

分片集群

對于分片集群 ,compact 僅適用于mongod實例。在分片環(huán)境中,運行 compact 分別在每個分片上作為維護(hù)操作。

注意: 你不能針對一個mongos實例 發(fā)出 compact

到此這篇關(guān)于Mongodb 刪除集合數(shù)據(jù)后如何釋放磁盤空間的文章就介紹到這了,更多相關(guān)Mongodb釋放磁盤空間內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MongoDB中的push操作詳解(將文檔插入到數(shù)組)

    MongoDB中的push操作詳解(將文檔插入到數(shù)組)

    $push操作符添加指定的值到數(shù)組中,下面這篇文章主要給大家介紹了關(guān)于MongoDB中push操作(將文檔插入到數(shù)組)的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • windows安裝mongodb6.x并設(shè)置用戶名密碼的詳細(xì)過程

    windows安裝mongodb6.x并設(shè)置用戶名密碼的詳細(xì)過程

    這篇文章主要介紹了windows安裝mongodb6.x并設(shè)置用戶名密碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • 關(guān)于Mongodb參數(shù)說明與常見錯誤處理的總結(jié)

    關(guān)于Mongodb參數(shù)說明與常見錯誤處理的總結(jié)

    這篇文章主要給大家介紹了關(guān)于Mongodb參數(shù)說明與常見錯誤處理的相關(guān)資料,文中通過一步步的步驟介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2017-07-07
  • Navicat遠(yuǎn)程連接MongoDB最全實現(xiàn)方法以及報錯解決

    Navicat遠(yuǎn)程連接MongoDB最全實現(xiàn)方法以及報錯解決

    這篇文章主要給大家介紹了關(guān)于Navicat遠(yuǎn)程連接MongoDB最全實現(xiàn)方法以及報錯解決的相關(guān)資料,文中通過圖文將實現(xiàn)的步驟一步步介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用MongoDB具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2023-03-03
  • 【MongoDB for Java】Java操作MongoDB數(shù)據(jù)庫

    【MongoDB for Java】Java操作MongoDB數(shù)據(jù)庫

    本篇文章現(xiàn)在我們就用Java來操作MongoDB的數(shù)據(jù)。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • 教你使用mongoose實現(xiàn)多集合關(guān)聯(lián)查詢

    教你使用mongoose實現(xiàn)多集合關(guān)聯(lián)查詢

    這篇文章主要給大家介紹了關(guān)于如何使用mongoose實現(xiàn)多集合關(guān)聯(lián)查詢的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-02-02
  • MongoDB基礎(chǔ)命令以及操作示例詳解

    MongoDB基礎(chǔ)命令以及操作示例詳解

    Mongodb:是一種NoSQL數(shù)據(jù)庫,下面這篇文章主要給大家介紹了關(guān)于MongoDB基礎(chǔ)命令以及操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • 關(guān)于Mongodb 認(rèn)證鑒權(quán)你需要知道的一些事

    關(guān)于Mongodb 認(rèn)證鑒權(quán)你需要知道的一些事

    最近因為mongodb被黑了,早先我就疑惑過怎么這東西開啟服務(wù)就能用了,后來找了各方資料,知道MongoDB默認(rèn)是沒有鑒權(quán)的,所以這篇文章主要給大家介紹了關(guān)于Mongodb認(rèn)證鑒權(quán)你需要知道的一些事,需要的朋友可以參考下。
    2017-10-10
  • MongoDB 快速入門

    MongoDB 快速入門

    MongoDB 快速入門,想要學(xué)習(xí)MongoDB的朋友可以參考下。
    2011-10-10
  • mongodb?linux下集群搭建過程

    mongodb?linux下集群搭建過程

    這篇文章主要介紹了mongodb?linux下集群搭建過程,本例中,為每個集群(shard?config)三個mongo實例,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02

最新評論

东乌珠穆沁旗| 兴海县| 肃南| 阿尔山市| 库车县| 梓潼县| 天台县| 裕民县| 儋州市| 清丰县| 潞西市| 宣武区| 满城县| 马龙县| 道真| 涞源县| 阳西县| 永年县| 黎平县| 金坛市| 朝阳区| 中牟县| 桐柏县| 锡林浩特市| 当雄县| 南京市| 大冶市| 汝阳县| 普兰县| 油尖旺区| 宁远县| 高雄市| 阿勒泰市| 汉沽区| 通城县| 土默特左旗| 长汀县| 临汾市| 峨边| 铁岭市| 忻城县|