您现在的位置是:网站首页> 编程资料编程资料
MongoDB的安装及配置文件选项全解_MongoDB_
2023-05-27
573人已围观
简介 MongoDB的安装及配置文件选项全解_MongoDB_
安装部分
1. 安装包
1.1 mongodb-org
可以自动安装以下的四个包
1.2 mongodb-org-server
mongod进程和配置文件,启动脚本
1.3 mongodb-org-mongos
mongos进程
1.4 mongodb-org-shell
mongo shell
1.5 mongodb-org-tools
其他mongodb工具,mongoimport,mongoexport,mongodump,mongrestore,mongofiles,bsondump,mongooplog,mongoperf,mongostat,mongotop,(mongosniff)
2. 脚本文件
2.1 /etc/rc.d/init.d/mongod
启动脚本
2.2 /etc/mongod.conf
配置文件
3. 安装mongodb
3.1 配置yum源
/etc/yum.repos.d/mongodb.repo -> [mongodb] name=MongoDB Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/ gpgcheck=0 enabled=1
如果是32bit系统
[mongodb] name=MongoDB Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/i686/ gpgcheck=0 enabled=1
3.2 安装mongodb版本
sudo yum install mongodb-org
安装指定版本mongodbyum install mongodb-org-2.6.1 mongodb-org-server-2.6.1 mongodb-org-shell-2.6.1 mongodb-org-mongos-2.6.1 mongodb-org-tools-2.6.13.3 为了避免无意识的升级
/etc/yum.conf -> exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools
注意mongodb的默认端口和SELinux服务的状态。
数据文件目录:/var/lib/mongo ,日志文件目录: /var/log/mongo。
改变/var/lib/mongo和/var/log/mongo权限为mongodb的运行者。
4.1 启动mongodb
sudo service mongod start
4.2 证实mongodb启动成功
检查mongodb日志文件/var/log/mongodb/mongod.log。
把mongodb加入开机启动服务:
sudo chkconfig mongod on
4.3 关闭mongodb服务
sudo service mongod stop
4.4 重启mongodb服务
sudo service mongod restart
4.5 开始使用mongodb
配置文件部分
MongoDB引入一个YAML-based格式的配置文件。2.4版本以前的仍然兼容。
我的mongodb配置文件:
systemLog: destination: file path: "/var/log/mongo/mongod.log" quiet: true logAppend: true timeStampFormat: iso8601-utc storage: dbPath: "/var/lib/mongo" directoryPerDB: true indexBuildRetry: false preallocDataFiles: true nsSize: 16 # quota: # enforced: false # maxFilesPerDB: 8 smallFiles: false syncPeriodSecs: 60 # repairPath: "/var/lib/mongo/_tmp" journal: enabled: true # debugFlags: 1 commitIntervalMs: 100 processManagement: fork: true pidFilePath: "/var/run/mongodb/mongod.pid" net: # bindIp: 192.168.11.52 port: 27017 http: enabled: true RESTInterfaceEnabled: false # ssl: # mode: "requireSSL" # PEMKeyFile: "/etc/ssl/mongodb.pem" operationProfiling: slowOpThresholdMs: 100 mode: "slowOp" security: keyFile: "/var/lib/mongo/mongodb-keyfile" clusterAuthMode: "keyFile" authorization: "disabled" replication: oplogSizeMB: 50 replSetName: "repl_test" secondaryIndexPrefetch: "all"
设置选项:
1. systemLog
systemLog.verbosity
integer
日志文件输出的级别,越大级别越低。
systemLog.quite
boolean
在quite模式下会限制输出信息:
数据库命令输出,副本集活动,连接接受事件,连接关闭事件。
systemLog.traceAllExceptions
string
打印verbose信息来调试,用来记录证额外的异常日志。
systemLog.syslogFacility
string,默认为user
指定syslog日志信息的设备级别。需要指定--syslog来使用这个选项。
systemLog.path string
发送所有的诊断信息日志,默认重启后会覆盖。
systemLog.logAppend
boolean
是否启用追加日志。
systemLog.destination
string
指定一个文件或syslog。如果指定为文件,必须同时指定systemLog.path
systemLog.timeStampFormat
string,默认为iso8601-local
日志信息中的时间戳格式:
ctime,iso8601-utc,iso8601-local
2. processManagement
processManagement.pidFilePath
string
指定进程的ID,与--fork配合使用,不指定则不会创建。
processManagement.fork
boolean,默认为false
是守护进程在后台运行。
3. net
net.port
interger,默认为27017
mongodb实例监听的端口号。
net.bindIp
string,2.6版本默认为127.0.0.1
指定mongodb实例绑定的ip,为了绑定多个ip,可以使用逗号分隔。
net.maxIncomingConnections
integer 默认为1000000
mongodb实例接受的最多连接数,如果高于操作系统接受的最大线程数,设置无效。
net.wireObjectCheck
boolean,默认为true
检查文档的有效性。会稍微影响性能。
net.http.enabled
boolean,默认为false
打开http端口,会导致更多的不安全因素。
net.unixDomainSocket.enabled
boolean,默认为false
停止UNIX domain socket监听。
mongodb实例会一直监听UNIX
socket,除非net.unixDomainSocket.enabled设置为true,bindIp没有设置,bindIp没有默认指定为127.0.0.1。
net.unixDomainSocket.pathPrefix
string,默认为/tmp
unix Socket所在的路径。
net.ipv6
boolean,默认为false
打开IPV6功能,默认为关闭的。
net.http.JSONPEnabled
boolean,默认为false
运行json访问http端口,打开会导致更多的不安全因素。
net.http.RESTInterfaceEnabled
boolean,默认为false
即使http接口选项关闭,打开也会暴露http接口,会导致更多的不安全因素。
4. security
security.keyFile
string
指定分片集或副本集成员之间身份验证的key文件存储位置。
security.clusterAuthMode
string
集群认证中利用到这个模式,如果使用x.509安全机制,可以在这里指定。
keyFile,sendKeyFile,sendX509,x509
默认的mongodb发行版是不支持ssl的,可以使用专业版的或重新自行编译mongodb。
security.authorization
string,默认为disabled
打开访问数据库和进行操作的用户角色认证。
enabled,disabled
5. operationProfiling
operationProfiling.slowOpThresholdMs
integer,默认100
指定慢查询时间,单位毫秒,如果打开功能,则向system.profile集合写入数据。
operationProfiling.mode
integer,默认0
改变分析日志输出级别。
0,1,2,分别对应关闭,仅打开慢查询,记录所有操作。
6. storage
storage.dbPath
string
指定数据文件的路径。
storage.directoryPerDB
boolean,默认关闭
指定存储每个数据库文件到单独的数据目录。如果在一个已存在的系统使用该选项,需要事先把存在的数据文件移动到目录。
storage.indexBuildRetry
boolean,默认为true
指定数据库在索引建立过程中停止,重启后是否重新建立索引。
storage.preallocDataFiles
boolean,默认true
是否预先分片好数据文件。
storage.nsSize
integer,默认16
指定命名空间的大小,即.ns后缀的文件。最大为2047MB,16M文件可以提供大约24000个命名空间。
storage.quota.enforced
boolean,默认false
限制每个数据库的数据文件数目。可以通过maxFilesPerDB调整数目。
storage.quota.maxFilesPerDB
integer,默认为8
限制每个数据库的数据文件数目。
storage.smallFiles
boolean,默认为false
限制mongodb数据文件大小为512MB,减小journal文件从1G到128M,适用于有很多数量小的数据文件。
storage.syncPeriodSecs
number,默认60
mongodb文件刷新频率,尽量不要在生产环境下修改。
storage.repairPath
string,默认为指定dbpath下的_tmp目录。
指定包含数据文件的根目录,进行--repair操作。
storage.journal.enabled
boolean,默认64bit为true,32bit为false
记录操作日志,防止数据丢失。
storage.journal.debugFlags
integer
提供数据库在非正常关闭下的功能测试。
storage.journal.commitIntervalMs
number,默认为100或30
journal操作的最大间隔时间。可以是2-300ms之间的值,低的值有助于持久化,但是会增加磁盘的额外负担。
如果journal和数据文件在同一磁盘上,默认为100ms。如果在不同的磁盘上为30ms。
如果强制mongod提交日志文件,可以指定j:true,指定后,时间变为原来的三分之一。
7. replication
replication.oplogSizeMB
integer,默认为磁盘的5%
指定oplog的最大尺寸。对于已经建立过oplog.rs的数据库,指定无效。
replication.replSetName
string
指定副本集的名称。
replication.secondaryIndexPrefetch
string,默认为all
指定副本集成员在接受oplog之前是否加载索引到内存。默认会加载所有的索引到内存。
none,不加载;all,加载所有;_id_only,仅加载_id。
8. sharding
sharding.clusterRole
string
指定分片集的mongodb角色。
configsvr,配置服务器,端口27019;sh
相关内容
- 详解MongoDB中用sharding将副本集分配至服务器集群的方法_MongoDB_
- MongoDB常用操作汇总_MongoDB_
- windows下安装mongodb以及node.js连接mongodb实例_MongoDB_
- 利用MongoDB中oplog机制实现准实时数据的操作监控_MongoDB_
- MongoDB学习之Text Search文本搜索功能_MongoDB_
- MongoDB数据更新方法干货篇_MongoDB_
- MongoDB数据查询方法干货篇_MongoDB_
- MongoDB的索引_MongoDB_
- MongoDB的查询方法_MongoDB_
- MongoDB的基础知识简介_MongoDB_
