久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

mongodb中運維的示例分析

157次閱讀
沒有評論

共計 1982 個字符,預計需要花費 5 分鐘才能閱讀完成。

這篇文章主要介紹了 mongodb 中運維的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓丸趣 TV 小編帶著大家一起了解一下。

我們以管理員的視角來看 mongodb,作為一名管理員,我們經常接觸到的主要有 4 個方面:

1.  安裝部署

2.  狀態監控

3.  安全認證

4.  備份和恢復,

下面我們就一點一點的講解。

一:安裝部署

        我之前的文章都是采用 console 程序來承載,不過在生產環境中這并不是最佳實踐,誰也不愿意在機器重啟后滿地找牙似找 mongodb,在 mongodb 里面提供了一個叫做“服務寄宿”的模式,我想如果大家對 wcf 比較熟悉的話很容易聽懂。好了,我們實踐一下,這里我開一下 D 盤里面的 mongodb。

這里要注意的有兩點:

    1 logpath: 當我們使用服務寄宿的時候,用眼睛都能想明白肯定不會用 console 來承載日志信息了。

    2 install:   開啟安裝服務寄宿,很 happy 啊,把管理員的手工操作降低到最小,感謝 mongodb。

好了,console 程序叫我看 log 日志,那我就看看,發現 mongodb 已經提示我們如何開啟 mongodb,接著我照做就是了。 

還要提醒大家一點的就是,這些命令參數很多很復雜也就很容易忘,不過沒關系,數據庫給我們提供了一個 help 方法,我們可以拿 mongod 和 mongo 說事。

mongod:

mongo:

二:狀態監控

      監控可以讓我們實時的了解數據庫的健康狀況以及性能調優,在 mongodb 里面給我們提供了三種方式。

1:http 監視器

      這個我在先前的文章中也提到了,這里就不贅述了。

2:serverStatus()

    這個函數可以獲取到 mongodb 的服務器統計信息,其中包括:全局鎖,索引,用戶操作行為等等這些統計信息,對管理員來說非常重要。

    這里還是截個圖混個眼熟。

3:mongostat

      前面那些統計信息再牛 X,那也是靜態統計,不能讓我觀看實時數據變化,還好,mongodb 里面提供了這里要說的 mongodstat 監視器,這玩意會每秒刷新,在實際生產環境中大有用處,還是截張圖,很有意思,是不是感覺大軍壓境了。

三:  安全認證

      作為數據庫軟件,我們肯定不想誰都可以訪問,為了確保數據的安全,mongodb 也會像其他的數據庫軟件一樣可以采用用戶驗證的方法,那么該怎么做呢?其實很簡單,mongodb 提供了 addUser 方法,還有一個注意點就是如果在 admin 數據庫中添加將會被視為“超級管理員”。

上面的 admin 用戶將會被視為超級管理員,“jack”用戶追加的第三個參數表示是否是“只讀用戶”,好了,該添加的我們都添加了,我們第一次登錄時不是采用驗證模式,現在我們使用 –reinstall 重啟服務并以 –auth 驗證模式登錄。

好了,我們進入 test 集合翻翻數據看看情況,我們發現 jack 用戶始終都是沒有寫入的權限,不管是授權或者未授權。

四:備份和恢復

      這玩意的重要性我想都不需要我來說了吧,這玩意要是搞不好會死人的,mongodb 里面常用的手段有 3 種。

1:直接 copy

        這個算是最簡單的了,不過要注意一點,在服務器運行的情況下直接 copy 是很有風險的,可能 copy 出來時,數據已經遭到

        破壞,唯一能保證的就是要暫時關閉下服務器,copy 完后重開。

2:mongodump 和 mongorestore

      這個是 mongo 給我們提供的內置工具,很好用,能保證在不關閉服務器的情況下 copy 數據。

為了操作方便,我們先刪除授權用戶。

好了,我們轉入正題,這里我先在 D 盤建立一個 backup 文件夾用于存放 test 數據庫。

mongodb 中運維的示例分析

快看,數據已經備份過來了,太爽了,現在我們用 mongorestore 恢復過去,記住啊,它是不用關閉機器的。

提一點的就是 drop 選項,這里是說我將 test 數據恢復之前先刪除原有數據庫里面的數據,同樣大家可以通過 help 查看。

mongodb 中運維的示例分析

3:主從復制

    其實上面的 1,2 兩點都不能保證獲取數據的實時性,因為我們在備份的時候可能還有數據灌在內存中不出來,那么我們想說能不能把數據暴力的刷到硬盤上,當然是可以的,mongodb 給我們提供了 fsync+lock 機制就能滿足我們提的需求。

fsync+lock 首先會把緩沖區數據暴力刷入硬盤,然后給數據庫一個寫入鎖,其他實例的寫入操作全部被阻塞,直到 fsync+lock 釋放鎖為止。

這里就不測試了。

  加鎖: db.runCommand({fsync :1, lock :1})
  釋放鎖:db.$cmd.unlock.findOne()

感謝你能夠認真閱讀完這篇文章,希望丸趣 TV 小編分享的“mongodb 中運維的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持丸趣 TV,關注丸趣 TV 行業資訊頻道,更多相關知識等著你來學習!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-03發表,共計1982字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 白沙| 岑溪市| 汝南县| 博兴县| 渭南市| 维西| 于都县| 包头市| 成安县| 子长县| 津市市| 兴安盟| 济宁市| 聂荣县| 泰宁县| 福贡县| 苍南县| 岳池县| 恭城| 石狮市| 仙居县| 肇东市| 宁化县| 永顺县| 沈丘县| 马龙县| 昆明市| 华阴市| 泸溪县| 远安县| 古丈县| 鸡西市| 泰宁县| 陵水| 定日县| 永城市| 宜丰县| 宜川县| 鹿邑县| 惠水县| 平度市|