安裝MongoDB
1耳胎、mongo文件說明
名稱 | 說明 |
---|---|
mongod | 是數(shù)據(jù)庫服務端友题,不能暴露再公共網(wǎng)絡都办,主要實現(xiàn)服務器端數(shù)據(jù)庫的數(shù)據(jù)處理美侦、數(shù)據(jù)訪問管理及其他后臺管理系谐。 |
mongo | 客戶端 shell 程序巾陕。 |
mongos | 路由管理程序讨跟,用于分片集群環(huán)境下系統(tǒng)訪問的路由管理。 |
mongostat | 運行狀態(tài)監(jiān)控工具鄙煤。 |
mongotop | 監(jiān)控工具晾匠,對讀寫數(shù)據(jù)進行統(tǒng)計。 |
mongodump | 導出備份工具(二進制)梯刚。 |
mongorestore | 備份數(shù)據(jù)恢復工具凉馆,跟mongodump一起使用(二進制)。 |
mongoexport | 以JSON或CSV格式導出數(shù)據(jù)庫數(shù)據(jù)亡资。 |
mongoimport | 備份數(shù)據(jù)恢復工具澜共,跟mongoexport一起使用。 |
bsondump | 將BSON文件轉(zhuǎn)換為可閱讀的格式锥腻。 |
mongofiles | 把任何數(shù)據(jù)類型文件上傳到MongoDB中嗦董。 |
mongooplog | 以Oplog輪詢方式,實現(xiàn)對遠程服務器上的數(shù)據(jù)同步到本地磁盤瘦黑。 |
mongoperf | 測試磁盤IO性能的工具京革。 |
2、安裝mongo
# 添加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
3幸斥、docker運行mongo匹摇,so easy !
# 新建綁定目錄
[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
就可以了廊勃。
1、網(wǎng)絡配置說明:
net:
port: localhost
# 綁定可訪問的IP地址演顾,IP地址用","隔開供搀,默認localhost
bindIp: <string>
# 是否綁定所有IP,默認 false
bindIpAll: false
# 最大并發(fā)連接數(shù)钠至,默認65536
maxIncomingConnections: 65536
# 客戶端請求內(nèi)容驗證葛虐,默認true
wireObjectCheck: true
compression:
# 數(shù)據(jù)壓縮,默認:snappy棉钧,還支持zlib屿脐。zlib壓縮率高,但是慢宪卿。
# snappy 比 zlib 更快的诵,但文件相對要大 20% 到 100%。
compressors: snappy
serviceExecutor: <string>
2佑钾、存儲配置說明
storage:
# 實例存儲數(shù)據(jù)的目錄西疤,不要隨意修改,需要和安裝時一直休溶。
dbPath: /data/db
# 索引重建代赁,Mongod重啟會刪除不完整索引扰她,然后嘗試重建不完整索引
indexBuildRetry: true
# 數(shù)據(jù)庫修復臨時存儲路徑
repairPath: <string>
# 數(shù)據(jù)操作記錄日志,只適用于Mongod
journal:
enabled: true
# Mongod從內(nèi)存想數(shù)據(jù)操作記錄日志提交數(shù)據(jù)的最大間隔時間(ms)
commitIntervalMs: <num>
# 給每個數(shù)據(jù)庫建立獨立的子文件路徑
directoryPerDB: false
# 數(shù)據(jù)刷新到數(shù)據(jù)庫文件的間隔時間(秒)
syncPeriodSecs: 60
# 數(shù)據(jù)庫存儲引擎(wiredTiger/MMAPv1/inMemory)
engine: wiredTiger
# 相對于MMAPv1芭碍,wiredTiger可以壓縮最大80%的空間
wiredTiger:
engineConfig:
# 數(shù)據(jù)在內(nèi)存中的緩存空間徒役,默認:50%RAM-1G或256M
cacheSizeGB: <number>
# 壓縮方式(none/snappy/zlib),壓縮wiredTiger日志
journalCompressor: snappy
# Mongod是否將索引和集合文件分開存放
directoryForIndexes: false
collectionConfig:
# 集合數(shù)據(jù)的壓縮方式(none/snappy/zlib)
blockCompressor: snappy
indexConfig:
# 啟用索引數(shù)據(jù)的前綴壓縮功能
prefixCompression: true
3窖壕、審計日志說明
auditLog:
# syslog:以json格式保存身份驗證到syslog
# console:以json格式輸出信息到標準輸出
# file:以json格式輸出信息到文件
destination: <string>
# JSON:輸出json格式文件忧勿;BSON:輸出bson二進制格式文件
format: <string>
path: <string>
filter: <string>
審計filter的相關(guān)配置:
{
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 | 記錄審計事件的行動,詳細信息和結(jié)果瞻讽。 |
ts |
document | 文檔包含”$date”日期鍵值對鸳吸,其中是以時間戳格式的值 |
local |
document | 文檔包含ip鍵值對,及port鍵值對 |
remote |
document | 文檔包含與事件相關(guān)聯(lián)的遠程連接ip鍵值對和port鍵值對 |
users |
array | 用戶識別文檔數(shù)組卸夕。由于MongoDB允許登錄不同的用戶數(shù)據(jù)庫层释,該數(shù)組可以有一個以上的用戶。每個文檔包含用戶名的user字段和該用戶身份驗證數(shù)據(jù)庫的db字段快集。 |
roles |
array | 指定給用戶的角色的文檔數(shù)組贡羔,每個文檔包含角色名稱的role字段和該角色關(guān)聯(lián)的數(shù)據(jù)庫的db字段。 |
param |
document | 定義審計事件的具體細節(jié)个初, 審計事件操作乖寒、細節(jié)和結(jié)果 |
result |
integer | 錯誤代碼 |
查看示例:審計創(chuàng)建集合和刪除掉集合
auditLog:
destination: file
format: BSON
path: /var/lib/mongo/auditLog.bson
filter: ‘{ atype : {$in: [“createCollection”,”dropCollection” ] } }’