1. 程式人生 > >mongodb配置檔案詳解,記憶體限制,使用者驗證 yaml格式

mongodb配置檔案詳解,記憶體限制,使用者驗證 yaml格式

mongodb配置檔案詳解,記憶體限制,使用者驗證 yaml格式

2019年05月27日 17:18:30 西門小鳳 閱讀數 275更多

分類專欄: MongoDB

版權宣告:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連結和本宣告。

本文連結:https://blog.csdn.net/weixin_43886133/article/details/90607193

 

mongodb 單節點配置檔案詳解


mongodb 3.0及以上版本基本都是使用 yaml 語法格式的配置檔案, 啟動 mongo 例項如果不是指定配置檔案或引數命令啟動, 會按照預設的引數啟動。

 

常用基本配置檔案引數

storage:
  # mongod 程序儲存資料目錄,此配置僅對 mongod 程序有效
  dbPath: /data/mongodb/db
  是否開啟 journal 日誌持久儲存,journal 日誌用來資料恢復,是 mongod 最基礎的特性,通常用於故障恢復。64 位系統預設為 true,32 位預設為 false,建議開啟,僅對 mongod 程序有效。
  journal:
    enabled: true
 # 儲存引擎型別,mongodb 3.0 之後支援 “mmapv1”、“wiredTiger” 兩種引擎,預設值為“mmapv1”;官方宣稱 wiredTiger 引擎更加優秀。
  engine: mmapv1

systemLog:
  # 日誌輸出目的地,可以指定為 “file” 或者“syslog”,表述輸出到日誌檔案,如果不指定,則會輸出到標準輸出中(standard output)
  destination: file
  # 如果為 true,當 mongod/mongos 重啟後,將在現有日誌的尾部繼續新增日誌。否則,將會備份當前日誌檔案,然後建立一個新的日誌檔案;預設為 false。
  logAppend: true
  # 日誌路徑
  path: /var/log/mongodb/mongod.log

net:
 # 指定埠
  port: 27017
  # 繫結外網 op 多個用逗號分隔
  bindIp: 0.0.0.0
  maxIncomingConnections: 10000
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

記憶體優化相關的配置

MongoDB 在使用過程中, 記憶體佔用會越來越大, 甚至達到危險的狀態, 而且會一直保持最高狀態,
官網上有相關的內容:https://docs.mongodb.com/v3.4/core/wiredtiger/index.html
以下根據官網, 增加限制記憶體的配置, 啟動mongo使用配置檔案啟動

storage:
  dbPath: /data/mongodb/db
  journal:
    enabled: true
  engine: wiredTiger
    # 如下配置僅對 wiredTiger 引擎生效(3.0 以上版本)  
  	wiredTiger:
  	  # wiredTiger 快取工作集(working set)資料的記憶體大小,單位:GB
      # 此值決定了 wiredTiger 與 mmapv1 的記憶體模型不同,它可以限制 mongod 對記憶體的使用量,而 mmapv1 則不能(依賴於系統級的 mmap)。預設情況下,cacheSizeGB 的值為假定當前節點只部署一個 mongod 例項,此值的大小為實體記憶體的一半;如果當前節點部署了多個 mongod 程序,那麼需要合理配置此值。如果 mongod 部署在虛擬容器中(比如,lxc,cgroups,Docker)等,它將不能使用整個系統的實體記憶體,則需要適當調整此值。預設值為實體記憶體的一半。
      engineConfig:
      	cacheSizeGB: 5

systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log
  
net:
  port: 27017
  bindIp: 0.0.0.0
  maxIncomingConnections: 10000
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

新增使用者認證

開啟使用者認證前需要建立一個root使用者 如:

use admin
db.createUser({
user:"root",
pwd:"root123",
roles:[
{
role:"userAdminAnyDatabase",
db:"admin"
}
]
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

然後在配置檔案中新增如下配置資訊

security:
  authorization: enabled
  • 1
  • 2

然後重啟mongo, 不然使用者認證不生效, 重啟後就可以建立其