亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MongoDB > 正文

MongoDB釋放空閑空間的幾種常用方法

2020-03-14 12:50:13
字體:
來源:轉載
供稿:網友

前言

當我們從MongoDB中刪除文檔或集合時,MongoDB并不會將已經占用了的磁盤空間釋放,它會一直維護已經占用了磁盤空間的數據文件,盡管數據文件中可能存在大大小小的空記錄列表(empty record list)。當客戶端程序再次插入文檔時,MongoDB會從空記錄列表中分配存儲空間給新文檔。那么為了更加有效的使用磁盤空間,我們需要對mongodb的數據文件做碎片整理以及未使用空間的回收。思想無非兩種:

1、對原數據進行重組

2、僅將數據復制出來,形成僅數據的完整備份

以下介紹幾種常用的實施方法:

1、compact

2、db.repairDatabase()

3、secondary節點重同步

4、db.copyDatabase()

一、compat

官網對該命令的定義:對集合中的所有數據和索引進行重寫和碎片整理。

使用方法

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

注意事項

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

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

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

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

5、在副本集上運行該命令時,要分別在每個節點執行

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

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

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

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

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

二、db.repairDatabase()

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

使用方法

use yourdatabase;db.repairDatabase();

注意事項

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

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

3、此命令會完全阻塞數據庫的讀寫,謹慎操作

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

5、在使用MMAPv1存儲引擎的secondary節點上執行該命令可以壓縮集合數據

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

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

8、非常消耗時間

三、secondary節點重同步

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

使用方法

首先必須確保數據有完整的備份。

1、若是primary節點,先強制將之變為secondary節點,否則跳過此步驟:

 rs.stepdown(120);

2、然后在primary上刪除secondary節點:

 rs.remove("IP:port");

3、刪除secondary節點dbpath下的所有文件。

4、將節點重新加入集群,然后使之自動進行數據的同步:

 rs.add("IP:port");

5、等數據同步完成后,循環1-4的步驟可以將集群中所有節點的磁盤空間釋放

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

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

四、db.copyDatabase()

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

如:

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

    將源庫sourceDB??截悶镈istDB。

當然,該命令支持遠程復制。

該命令的完整語法為:

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

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

注意事項

1、db.copyDatabase()不會阻塞源數據庫和目標數據庫數據的讀寫,因此可能會出現兩份數據不一致的情況

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

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

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

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

6、某些不同版本的MongoDB間不支持此種復制方法,詳見鏈接:https://docs.mongodb.com/manual/reference/method/db.copyDatabase/

除此之外,還有一些方法,像使用導入/導出的方法(mongodump/mongorestore),這種方法在數據量非常大的情況是不適用的,因為導入導出的方法使用的全量的形式,要保證有足夠的空閑空間來存放導入的數據。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。 


注:相關教程知識閱讀請移步到MongoDB頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美制服另类日韩| 成人黄色在线播放| 亚洲成人在线视频播放| 国内外成人免费激情在线视频网站| 亚洲小视频在线观看| 欧美日韩精品在线播放| 日韩中文字幕欧美| 欧美在线影院在线视频| 91精品国产91久久| 日韩精品免费综合视频在线播放| 欧美午夜性色大片在线观看| 日韩av电影免费观看高清| 欧美日本精品在线| 国产精品情侣自拍| 2021久久精品国产99国产精品| 在线视频国产日韩| 欧美成年人在线观看| 91精品国产高清自在线| 日韩动漫免费观看电视剧高清| 亚洲人av在线影院| 亚洲丁香婷深爱综合| 日韩一级裸体免费视频| 国产91九色视频| 欧美日韩美女视频| 成人国产亚洲精品a区天堂华泰| 98视频在线噜噜噜国产| 久久精品中文字幕免费mv| 欧美日韩中文字幕在线视频| 精品久久久久久中文字幕一区奶水| 亚洲精选中文字幕| 亚洲精品成人久久电影| 成人av色在线观看| 亚洲永久在线观看| 欧美疯狂做受xxxx高潮| 成人www视频在线观看| 国产一区二区三区毛片| 欧美日韩电影在线观看| 久久在精品线影院精品国产| 欧美极品少妇xxxxⅹ裸体艺术| 51色欧美片视频在线观看| 亚洲一区二区三区毛片| 久久久中精品2020中文| 精品激情国产视频| 国产精品久久久久久久久男| 精品视频在线导航| 国产精品久久久久久久电影| 亚洲欧美日韩国产中文专区| 亚洲精品www| 日韩av色综合| 欧美一级片久久久久久久| 国产精品一区av| 国产精品成人aaaaa网站| 国产做受高潮69| 久久成人人人人精品欧| 亚洲日本中文字幕| 久久久久久久久久婷婷| 久久久久久久激情视频| 精品久久久久久久久久| 51色欧美片视频在线观看| 日本欧美精品在线| 亚洲va欧美va在线观看| 最近2019年日本中文免费字幕| 亚洲国产欧美日韩精品| 亚洲xxxx在线| 亚洲黄色av网站| 国产精品电影网| 国产精品久久久久久久久借妻| 亚洲第一偷拍网| 国产精品一区二区久久国产| 久久国产精彩视频| 国产欧美 在线欧美| 91av在线不卡| 日韩中文字幕在线免费观看| 欧美性在线视频| 亚洲精品国产品国语在线| 国产精品r级在线| yw.139尤物在线精品视频| 一区二区成人av| 亚洲成人三级在线| 欧美日韩在线视频首页| 成人在线观看视频网站| 欧美性受xxxx黑人猛交| 日韩中文字幕国产精品| 国产精品电影久久久久电影网| 国产精品一区久久久| 亚洲福利在线看| 久热爱精品视频线路一| 日韩中文字幕精品视频| 国产精品视频一区二区三区四| 欧美中文字幕精品| 亚洲成人精品久久| 成人免费看黄网站| 国产精品一区电影| 1769国内精品视频在线播放| 97视频免费在线看| 91九色精品视频| 九九热最新视频//这里只有精品| 国内精品400部情侣激情| 欧美一区二区.| 亚洲欧美日本精品| 国产精品成人一区| 欧美极品美女视频网站在线观看免费| 情事1991在线| 日本在线观看天堂男亚洲| 久久天天躁狠狠躁夜夜爽蜜月| 伊人久久五月天| 亚洲激情免费观看| 欧美激情视频三区| 国产精品成av人在线视午夜片| 成人精品一区二区三区电影黑人| 欧亚精品在线观看| 亚洲天堂av图片| 国产91免费观看| 国产97色在线| 欧美性资源免费| 久久亚洲成人精品| 中文字幕亚洲欧美日韩高清| 欧洲亚洲女同hd| 久久精品国产精品亚洲| 日韩精品免费综合视频在线播放| 亚洲综合成人婷婷小说| 操日韩av在线电影| 亚洲自拍小视频免费观看| 亚洲精品成人av| 久久久久久av| 国产97人人超碰caoprom| 日韩a**站在线观看| 九九精品在线播放| 欧美国产日韩中文字幕在线| 成人xxxxx| 日韩欧美黄色动漫| 国产日韩专区在线| 国产精品极品美女粉嫩高清在线| 欧美电影免费观看高清| 欧美日韩国产一中文字不卡| 日韩欧美亚洲一二三区| 欧美丰满少妇xxxx| 亚洲精品白浆高清久久久久久| 欧美成人自拍视频| 精品人伦一区二区三区蜜桃网站| 国产亚洲成av人片在线观看桃| 国产一区二区三区视频在线观看| 亚洲精品第一国产综合精品| 国产精品网红直播| 国产精品视频专区| 国产成+人+综合+亚洲欧洲| 国产99久久精品一区二区 夜夜躁日日躁| 精品综合久久久久久97| 亚洲第一区在线观看| 久久91亚洲人成电影网站| 精品自拍视频在线观看| 成人激情视频小说免费下载| 日韩国产欧美精品一区二区三区| 欧美久久精品午夜青青大伊人| 久久免费成人精品视频| 亚洲电影成人av99爱色| 日韩欧美国产一区二区| 九九视频直播综合网| 国产精品久久久久久久久久小说| 国产精品福利在线观看网址| 亚洲欧美日韩精品久久亚洲区| 97国产精品视频人人做人人爱| 亚洲欧美综合另类中字| 国产精欧美一区二区三区|