操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    在mongo中刪除數據并不會直接釋放磁盤,而是產生很多碎片。這些碎片會被mongo繼續利用。當有新數據插入時,會重復利用這些碎片,而不需要新申請磁盤空間。

    但是這會導致的問題是,磁盤可能一直處于高水位的使用水平,對運維來說是一個定時炸彈。因為碎片只會被所屬的庫使用,但我們經常會新建很多庫,這就導致磁盤越來越緊張。

    目前我摸索出的是三種方法

    1,將備節點清空,重新同步。

    在備節點同步的過程中,碎片空間會被整理。備節點同步過去的是完全的數據和索引。

    之后再進行一次主備切換。

    使備節點成為主節點。

    再將主節點數據清空,同步一次。

    最終使主備都達到釋放碎片的目的。

    優點:服務一直可用

    缺點:動作過大。要保證同步過程在同步窗口之內。建議將oplog盡量設置大一點

    2,使用compact命令

    compact是mongo中的壓縮命令。可以整理刪除數據產生的碎片。

    在WiredTiger 數據庫引擎下,該命令會將整理出的空間釋放給操作系統。

    在MMAPv1引擎下,compact會整理碎片,重建索引,但不會將未使用的空間釋放給系統,后續新插入的數據依然可以使用這些空間

    命令:

    進入要執行的數據庫

    db.runCommand({ compact: <collection name>,force:<boolen> } )

    對主備節點分別執行一次該命令

    在復制集模式下的一些注意:

    該命令會阻塞運行該命令的庫,一定要選擇好執行的時間

    compact命令不會自動復制到secondary節點執行,compact在每個節點成員中都是獨立的,在Primary,secondary中執行時都要使用force參數,

    當在secondary的collection上執行compact命令時,此secondary節點會變成RECOVERING狀態,且無法提供讀操作

    在capped collection中不必使用compact命令,因為它本身就是固定空間

    實驗:

    當前庫占了大約5.8G的磁盤

    然后我刪除了部分數據

    shard1:PRIMARY> db.runCommand({ compact: "fs.files"} )

    {

    "ok" : 0,

    "errmsg" : "will not run compact on an active replica set primary as this is a slow blocking operation. use force:true to force"

    }

    shard1:PRIMARY> db.runCommand({ compact: "fs.files",force:true} )

    這里會卡很久,數據庫操作會被鎖住

    實踐證明:能夠壓縮一些,但并不能達到數據實際的磁盤占用量

    3,做repairDatabase

    這個命令我沒有嘗試,謹慎使用。

    做repairDatabase要求剩余磁盤要足夠大。

    但是當我的磁盤告警時,已經不會有足夠的磁盤做repairDatabase了

    db.runCommand({repairDatabase:1})

    注:這個命令一定要謹慎使用,能不用的情況下盡量不用,因為會花費很多時間和性能

    官網的一句話是這樣說的:

    The repairDatabase command compacts all collections in the database. It is identical to running the compact command on each collection individually

    不建議直接repairDatabase,不如對需要做壓縮的集合進行compact

    總結

    個人覺得mongo的這種機制真的很蛋疼。

    大家還有沒有什么好方法,歡迎交流

    介紹

    在之前的文章中介紹過MongoDB的可視化管理工具,有Web端的,也有桌面端的,怎么用都大同小異,今天介紹的adminMongo也是一個MongoDB的Web端可視化管理工具,界面美觀,安裝操作簡單。而且依舊是開源免費的。



    特性


    • 從連接級別進行管理,以便輕松訪問多個數據庫
    • 創建/刪除數據庫
    • 備份/恢復數據庫
    • 創建/刪除/編輯集合
    • 創建/刪除/編輯文檔
    • 創建/刪除索引
    • 查詢文件收集統計
    • 以JSON格式導出集合
    • 服務器監控

    相關地址

    官網:

    https://adminmongo.markmoffat.com/


    Github:

    https://github.com/mrvautin/adminMongo

    安裝和使用

    由于我是在本地使用,環境自然是windows 10 1903,首先我們需要到Github上下載發布好的release版本,我們這里選擇windows版本的,同時還支持MacOS

    https://github.com/mrvautin/adminMongo/releases



    你可以選擇適合自己系統的版本下載,下載好后解壓



    解壓好后我們可以直接打開adminMongo.exe,這個時候可能是我機器問題,也可能是軟件本身問題,我打開后顯示空白,這個時候不用擔心,既然我們說了是Web端那么,我們打開瀏覽器

    http://127.0.0.1:1234/app/Local

    我本地已經利用windows服務注冊工具nssm將adminMongo.exe注冊成windows服務了



    你可以添加連接



    基本的增刪改查都是可以的








    服務器端監控




    源碼

    你可以自己克隆源碼自己構建部署


    1. git clone https://github.com/mrvautin/adminMongo.git && cd adminMongo
    2. npm install
    3. npm start or node app
    4. 瀏覽器打開 http://127.0.0.1:1234

    adminMongo將默認偵聽:localhost和port:1234。這可以通過在/config/app.json中添加配置文件來覆蓋,例如

    {
     "app": {
     "host": "10.0.0.1",
     "port": 4321,
     "password": "secureadminpassword",
     "locale": "de",
     "context": "dbApp",
     "monitoring": false
     }
    }
    

    國際化

    國際化功能本身不提供中文的,但是你可以通過自己添加語言文件來實現本地化,沒有翻譯的話默認是英文版本。

    總結

    使用adminMongo,也是因為之前文章介紹的YAPI(API客戶化平臺)的后臺數據庫使用的就是MongDB,剛好看到這個,然后就試用了下,目前已經在本地使用了,感覺非常方便,因此在此分享!

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有