好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > MongoDB釋放空閑空間的幾種常用方法

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

熱門標簽:老虎洗衣店地圖標注 電銷機器人是什么軟件 廣州長安公司怎樣申請400電話 杭州人工電銷機器人價格 蘋果汽車租賃店地圖標注 呼和浩特電銷外呼系統加盟 濟南電銷機器人加盟公司 怎么投訴地圖標注 云南外呼系統

前言

當我們從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。拷貝為DistDB。

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

該命令的完整語法為:

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),這種方法在數據量非常大的情況是不適用的,因為導入導出的方法使用的全量的形式,要保證有足夠的空閑空間來存放導入的數據。

總結

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

您可能感興趣的文章:
  • mongodb 集群重構和釋放磁盤空間實例詳解
  • 詳解清除MongoDB所占用的多余的磁盤空間的方法
  • OpenStack Ceilometer用MongoDB解決占用磁盤空間過大問題
  • 巧妙的利用Mongodb做地理空間查詢

標簽:遼陽 無錫 自貢 玉林 興安盟 雞西 泰安 廈門

巨人網絡通訊聲明:本文標題《MongoDB釋放空閑空間的幾種常用方法》,本文關鍵詞  MongoDB,釋,放空,閑空,間的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MongoDB釋放空閑空間的幾種常用方法》相關的同類信息!
  • 本頁收集關于MongoDB釋放空閑空間的幾種常用方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 两性午夜性刺激在线观看免费| 强迫闻脚踩脸羞辱女女| 免费看少妇高潮A片特黄| 免费的ppt下载网站| 一个人看的hd在线观看| 江湖血泪史| 人人妻人人澡人人爽人人欧美一区| 坐盗市偷拍wC女厕系列| 少妇借种激情日日躁| 电影碎块1982完整版在线观看 | 超h肉爽文健身教练| 《禁宫情妓》在线观看| 男女裸体做爰视频免费| 91蜜桃麻豆| 亚洲综合精品香蕉久久网97| 国产老头老妇女AAA片| 一级片高清| 91在线码无精品秘?蘑菇| 欲奴一样的大尺度欧美剧| 快穿被各种男人啪h男男视频| 工本口子库入口免费密码在哪 | 办公室诱惑电影| 无套暴躁白丝秘书| 他扯掉她的内裤猛地挺进电影| 探花视频在线观看手机| 电影情妇| 蜜臀久久99精品久久久兰草影视| 攻把受抱起来边啪边走漫画| 精品免费大国偷自产在线Av片| 日韩三级电影网站| 夫の前で人妻波多野结衣| 欧美成人做爰高潮片免费观看6季| 99久久国产精品久久99蜜覆| 日本中文字幕视频在线看| 91精产国品一二三产区蜜臀| 做受???高潮女调男视频| 黄色资源网址| 日本精品免费| 国产美女包臀裙一区二区| 性欧美XXXXX乱极品少妇| 听了会硬的30秒娇喘女语音|