中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

MongoDB中怎么釋放空閑空間

本篇文章給大家分享的是有關(guān)MongoDB中怎么釋放空閑空間,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

創(chuàng)新互聯(lián)專注于臨城企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,購物商城網(wǎng)站建設(shè)。臨城網(wǎng)站建設(shè)公司,為臨城等地區(qū)提供建站服務(wù)。全流程按需定制開發(fā),專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

一、compat

官網(wǎng)對該命令的定義:對集合中的所有數(shù)據(jù)和索引進行重寫和碎片整理。

使用方法

use yourdatabase;
db.runCommand({ compact : 'yourCollection' });

注意事項

1、在執(zhí)行命令前請保證你有比較新的備份

2、在使用MMAPv1存儲引擎的MongoDB上compact需要數(shù)據(jù)文件所在分區(qū)至少有2G的空閑空間

3、在使用WiredTiger存儲引擎的MongoDB上,compact命令將重寫集合和索引,且釋放未使用的空間,但使用MMAPv1存儲引擎的MongoDB上,該命令只對集合的數(shù)據(jù)文件進行碎片整理并重新創(chuàng)建其索引。不會釋放空間,在使用MMAPv1存儲引擎的MongoDB上回收空間,建議使用第三種方法“secondary節(jié)點重同步”

4、使用MMAPv1存儲引擎的MongoDB中的Capped Collections,是無法被壓縮的,但使用WiredTiger存儲引擎的MongoDB在執(zhí)行compact時會進行壓縮。

5、在副本集上運行該命令時,要分別在每個節(jié)點執(zhí)行

6、該命令只能在mongod實例上執(zhí)行,不能再mongos實例上運行。也就是說針對分片集群的compact操作要分別在每個分片節(jié)點上執(zhí)行。

7、一般該命令運行在secondary節(jié)點上,在執(zhí)行時,會強制節(jié)點進入RECOVERING狀態(tài),RECOVERING狀態(tài)的實例讀寫操作將被阻塞

8、再碰到特殊情況要停止運行該命令時,可通過db.currentOp()查詢進程信息,然后通過db.killOp()干掉進程

9、compact可能會增加數(shù)據(jù)文件的總大小和數(shù)量,尤其是第一次運行時。但這不會增加總集合使用的磁盤空間,因為存儲大小是數(shù)據(jù)庫文件中分配的數(shù)據(jù)量,而不是文件系統(tǒng)上文件的大小/數(shù)量

10、使用MMAPv1存儲引擎的MongoDB中的Capped Collections,是無法被壓縮的,但使用WiredTiger存儲引擎的MongoDB在執(zhí)行compact時會進行壓縮。

二、db.repairDatabase()

官網(wǎng)該命令的定義:通過丟無效或損壞的數(shù)據(jù)老重建數(shù)據(jù)庫和索引。類似于文件系統(tǒng)修復(fù)命令fsck。所以此命令主要是用于修復(fù)數(shù)據(jù)。

使用方法

use yourdatabase;
db.repairDatabase();

注意事項

1、db.repairDatabase()主要用于修復(fù)數(shù)據(jù)。若你擁有數(shù)據(jù)的完整副本,且有權(quán)限訪問,請使用第三種方法“secondary節(jié)點重同步”

2、在執(zhí)行命令前請保證你有比較新的備份

3、此命令會完全阻塞數(shù)據(jù)庫的讀寫,謹(jǐn)慎操作

4、此命令執(zhí)行需要數(shù)據(jù)文件所在位置有等同于所有數(shù)據(jù)文件大小總和的空閑空間再加上2G

5、在使用MMAPv1存儲引擎的secondary節(jié)點上執(zhí)行該命令可以壓縮集合數(shù)據(jù)

6、在使用WiredTiger存儲引擎的MongoDB庫上執(zhí)行不會有壓縮的效果

7、再碰到特殊情況要停止運行該命令時,可通過db.currentOp()查詢進程信息,然后通過db.killOp()干掉進程

8、非常消耗時間

三、secondary節(jié)點重同步

主要思想就是:刪除secondary節(jié)點中指定數(shù)據(jù),使之與primary重新開始數(shù)據(jù)同步。當(dāng)副本集成員數(shù)據(jù)太過陳舊,也可以使用重新同步。數(shù)據(jù)的重新同步與直接復(fù)制數(shù)據(jù)文件不同,MongoDB會只同步數(shù)據(jù),因此重同步完成后的數(shù)據(jù)文件是沒有空集合的,以此實現(xiàn)了磁盤空間的回收。

使用方法

首先必須確保數(shù)據(jù)有完整的備份。

1、若是primary節(jié)點,先強制將之變?yōu)閟econdary節(jié)點,否則跳過此步驟:

 rs.stepdown(120);

2、然后在primary上刪除secondary節(jié)點:

 rs.remove("IP:port");

3、刪除secondary節(jié)點dbpath下的所有文件。

4、將節(jié)點重新加入集群,然后使之自動進行數(shù)據(jù)的同步:

 rs.add("IP:port");

5、等數(shù)據(jù)同步完成后,循環(huán)1-4的步驟可以將集群中所有節(jié)點的磁盤空間釋放

針對一些特殊情況,不能下線secondary節(jié)點的,可以新增一個節(jié)點到副本集中,然后secondary就自動開始數(shù)據(jù)的同步了。

總的來說,重同步的方法是比較好的,第一基本不會阻塞副本集的讀寫,第二消耗的時間相對前兩種比較短

四、db.copyDatabase()

mongodb還支持在線復(fù)制數(shù)據(jù):db.copyDatabase("from","to","IP:port"),此種方法也能釋放空間,因為db.copyDatabase復(fù)制的數(shù)據(jù),而不是表示在磁盤中的數(shù)據(jù)文件。但,該命令在4.0版本起被棄用;3.x版本還能繼續(xù)使用

如:

 db.copyDatabase("sourceDB","DistDB");

    將源庫sourceDB??截悶镈istDB。

當(dāng)然,該命令支持遠程復(fù)制。

該命令的完整語法為:

db.copyDatabase(<源數(shù)據(jù)庫名稱>, <目標(biāo)數(shù)據(jù)庫名稱>, <源mongodb的IP:port>, <源數(shù)據(jù)庫連接需要的賬戶>,<密碼>, <mechanism>)

以上:命令必須在目標(biāo)數(shù)據(jù)庫服務(wù)器上執(zhí)行。若源數(shù)據(jù)庫與目標(biāo)數(shù)據(jù)庫存在于一個MongoDB服務(wù)器,<源mongodb的IP:port>, <源數(shù)據(jù)庫連接需要的賬戶>,<密碼>都可省略。<mechanism>是身份驗證類型,可選的。

注意事項

1、db.copyDatabase()不會阻塞源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫數(shù)據(jù)的讀寫,因此可能會出現(xiàn)兩份數(shù)據(jù)不一致的情況

2、db.copyDatabase()復(fù)制索引數(shù)據(jù)會鎖定數(shù)據(jù)庫,此操作也會對其他數(shù)據(jù)庫產(chǎn)生影響

3、db.copyDatabase()不要在mongos實例中使用

4、db.copyDatabase()不要用于復(fù)制包含分片集合的數(shù)據(jù)庫

5、在4.0版中更改:db.copyDatabase()僅支持SCRAM進行身份驗證fromhost,<mechanism>選項。

以上就是MongoDB中怎么釋放空閑空間,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

本文名稱:MongoDB中怎么釋放空閑空間
本文路徑:http://m.rwnh.cn/article26/pcddcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計搜索引擎優(yōu)化、全網(wǎng)營銷推廣、響應(yīng)式網(wǎng)站、域名注冊、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
西昌市| 枣强县| 滨州市| 将乐县| 武义县| 承德市| 信丰县| 吴江市| 阳山县| 凤台县| 金坛市| 阿克苏市| 松滋市| 饶平县| 大名县| 开化县| 井陉县| 酒泉市| 汝州市| 蓬溪县| 喜德县| 盐源县| 酒泉市| 元朗区| 抚宁县| 乐安县| 图木舒克市| 建瓯市| 侯马市| 密云县| 普格县| 长葛市| 新泰市| 铁岭市| 汾西县| 广德县| 乐山市| 沙田区| 睢宁县| 武义县| 兴城市|