MongoDB配置及通常操做 - MongoDB從入門到刪庫

安裝MongoDB

一、mongo文件說明mongodb

名稱 說明
mongod 是數據庫服務端,不能暴露再公共網絡,主要實現服務器端數據庫的數據處理、數據訪問管理及其餘後臺管理。
mongo 客戶端 shell 程序。
mongos 路由管理程序,用於分片集羣環境下系統訪問的路由管理。
mongostat 運行狀態監控工具。
mongotop 監控工具,對讀寫數據進行統計。
mongodump 導出備份工具(二進制)。
mongorestore 備份數據恢復工具,跟mongodump一塊兒使用(二進制)。
mongoexport 以JSON或CSV格式導出數據庫數據。
mongoimport 備份數據恢復工具,跟mongoexport一塊兒使用。
bsondump 將BSON文件轉換爲可閱讀的格式。
mongofiles 把任何數據類型文件上傳到MongoDB中。
mongooplog 以Oplog輪詢方式,實現對遠程服務器上的數據同步到本地磁盤。
mongoperf 測試磁盤IO性能的工具。

二、安裝mongodocker

# 添加yum源
[root@gz-tencent ~]# cat > /etc/yum.repos.d/mongodb-org-4.0.repo << EOF
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
EOF

# 安裝mongo
[root@gz-tencent ~]# sudo yum install -y mongodb-org
[root@gz-tencent ~]# sudo service mongod start
[root@gz-tencent ~]# sudo chkconfig mongod on

# 鏈接shell
[root@gz-tencent ~]# mongo

三、docker運行mongo,so easy !shell

# 新建綁定目錄
[root@gz-tencent]# mkdir -p ~/mongo/{mongod-1,mongos-1}/{etc,data}
# 運行mongod
docker run --name mongod-1 -p 27017:27017 -v /mongo/mongod-1/etc:/etc/mongo -v ~/mongo/mongod-1/data:/data/db -d mongo

MongoDB經常使用配置

如何使用配置文件運行mongodb?直接修改配置文件/etc/mongod.conf/etc/mongos.conf就能夠了。數據庫

一、網絡配置說明:json

net: 
   port: localhost
   # 綁定可訪問的IP地址,IP地址用","隔開,默認localhost
   bindIp: <string>
   # 是否綁定全部IP,默認 false
   bindIpAll: false
   # 最大併發鏈接數,默認65536
   maxIncomingConnections: 65536
   # 客戶端請求內容驗證,默認true
   wireObjectCheck: true
   compression:
      # 數據壓縮,默認:snappy,還支持zlib。zlib壓縮率高,可是慢。
      # snappy 比 zlib 更快,但文件相對要大 20% 到 100%。
      compressors: snappy
   serviceExecutor: <string>

二、存儲配置說明數組

storage:
   # 實例存儲數據的目錄,不要隨意修改,須要和安裝時一直。
   dbPath: /data/db
   # 索引重建,Mongod重啓會刪除不完整索引,而後嘗試重建不完整索引 
   indexBuildRetry: true
   # 數據庫修復臨時存儲路徑
   repairPath: <string>
   # 數據操做記錄日誌,只適用於Mongod
   journal:
      enabled: true
      # Mongod從內存想數據操做記錄日誌提交數據的最大間隔時間(ms)
      commitIntervalMs: <num>
   # 給每一個數據庫創建獨立的子文件路徑
   directoryPerDB: false
   # 數據刷新到數據庫文件的間隔時間(秒)
   syncPeriodSecs: 60
   # 數據庫存儲引擎(wiredTiger/MMAPv1/inMemory)
   engine: wiredTiger
   # 相對於MMAPv1,wiredTiger能夠壓縮最大80%的空間
   wiredTiger:
      engineConfig:
         # 數據在內存中的緩存空間,默認:50%RAM-1G或256M
         cacheSizeGB: <number>
         # 壓縮方式(none/snappy/zlib),壓縮wiredTiger日誌
         journalCompressor: snappy
         # Mongod是否將索引和集合文件分開存放
         directoryForIndexes: false
      collectionConfig:
         # 集合數據的壓縮方式(none/snappy/zlib)
         blockCompressor: snappy
      indexConfig:
         # 啓用索引數據的前綴壓縮功能
         prefixCompression: true

三、審計日誌說明緩存

auditLog:
   # syslog:以json格式保存身份驗證到syslog
   # console:以json格式輸出信息到標準輸出
   # file:以json格式輸出信息到文件
   destination: <string>
   # JSON:輸出json格式文件;BSON:輸出bson二進制格式文件
   format: <string>
   path: <string>
   filter: <string>

審計filter的相關配置:服務器

{
  atype: <String>,
  ts : { "$date": <timestamp> },
  local: { ip: <String>, port: <int> },
  remote: { ip: <String>, port: <int> },
  users : [ { user: <String>, db: <String> }, ... ],
  roles: [ { role: <String>, db: <String> }, ... ],
  param: <document>,
  result: <int>
}
字段 類型 記錄描述
atype string 記錄審計事件的行動,詳細信息和結果。
ts document 文檔包含」$date」日期鍵值對,其中是以時間戳格式的值
local document 文檔包含ip鍵值對,及port鍵值對
remote document 文檔包含與事件相關聯的遠程鏈接ip鍵值對和port鍵值對
users array 用戶識別文檔數組。因爲MongoDB容許登陸不一樣的用戶數據庫,該數組能夠有一個以上的用戶。每一個文檔包含用戶名的user字段和該用戶身份驗證數據庫的db字段。
roles array 指定給用戶的角色的文檔數組,每一個文檔包含角色名稱的role字段和該角色關聯的數據庫的db字段。
param document 定義審計事件的具體細節, 審計事件操做、細節和結果
result integer 錯誤代碼

查看示例:審計建立集合和刪除掉集合網絡

auditLog:
   destination: file
   format: BSON
   path: /var/lib/mongo/auditLog.bson
   filter: ‘{ atype : {$in: [「createCollection」,」dropCollection」 ] } }’
相關文章
相關標籤/搜索