作者:容易 2013-07-24
七、安装后的目录结构
bin include lib
其中lib,include包含了库文件和头文件
bin目录包含了以下可执行文件
bsondump mongodump mongoimport mongorestore mongotop
mongo mongoexport mongooplog mongos
mongod mongofiles mongoperf mongostat
a)可执行文件介绍
bsondump 将bson格式的文件转储为json格式的数据
mongodump\mongorestore 将数据导出为bson格式的文件/将bson文件恢复为数据库
mongoimport\mongoexport将collection导出为json/csv格式数据/将数据导入数据库,类似mysqldump/mysqlimport
mongofiles GridFS管理工具
mongotop\mongostat 实时监控工具
mongod 数据库服务端,类似mysqld,每个实例启动一个进程,可以fork为Daemon运行
mongos 分片路由,如果使用了sharding功能,则应用程序连接的是mongos而不是mongod
mongo 客户端命令行工具,类似sqlplus/mysql,其实也是一个js解释器,支持js语法
mongooplog is a simple tool that polls operations from the replication oplog of a remote server, and applies them to the local server
mongoperf 是一个测试磁盘IO性能的工具 例如( echo "{nThreads:32,fileSizeMB:1000,r:true}" | mongoperf)
mongod 服务器配置参数介绍
Allowed options:
General options:
-h [ --help ] 显示帮助
--version 显示版本
-f [ --config ] arg 指定配置文件的路径
-v [ --verbose ] 显示详细信息 更详细的(包括多次获得更多的详细程度,比如 -vvvvv)
--quiet 是否为后台程序,默认不是
--port arg 指定端口号 默认27017
--bind_ip arg 指定绑定的ip默认绑定本机所以IP
--maxConns arg 并发连接数默认 20000
--logpath arg 指定日志文件的路径,备注必须指定到日志文件名,而非目录
--logappend 日志附加默认,否则会覆盖原有日志 默认是false,覆盖模式的,建议设置为true
--pidfilepath arg PID文件的具体路径,如果不指定将不创建PID文件,可以知道MDB的进程ID
--keyFile arg 为集群指定私钥认证(仅对副本集有?)
--setParameter arg Set a configurable parameter(启动某些特殊的功能集)
--nounixsocket disable listening on unix sockets(关闭unixsocket文件)
--unixSocketPrefix arg alternative directory for UNIX domain sockets (defaults to /tmp)(指定socket文件的路径默认/tmp)
--fork fork server process (启动为守护进程)
--syslog log to system's syslog facility instead of file or stdout(支持syslog)
--auth run with security(是否开启安全认证)
--cpu periodically show cpu and iowait utilization(周期性的显示cpu和io的使用情况)
--dbpath arg directory for datafiles - defaults to /data/db/ (设置数据文件的目录,默认/data/db/)
--diaglog arg 0=off 1=W 2=R 3=both 7=W+some reads (提供的方式,是只读,只写,还是读写都行,还是主要写+部分的读模式)
--directoryperdb each database will be stored in a separate directory (每个数据库将被存放在独立的目录)
--ipv6 enable IPv6 support (disabled by default)(启动IPV6默认关闭)
--journal enable journaling(启动数据更新日志,默认启动)
--journalCommitInterval arg how often to group/batch commit (ms)(日志提交间隔,该间隔决定了数据完整性)
--journalOptions arg journal diagnostic options(日志诊断选择)
--jsonp allow JSONP access via http (has security implications) 允许JSONP通过HTTP访问(有安全隐患)
--noauth run without security 运行在非安全模式下,不需要授权即可操作
--nohttpinterface disable http interface 关闭http接口,默认是28017
--nojournal disable journaling (journaling is on by default for 64 bit)关闭日志64位系统默认开启
--noprealloc disable data file preallocation - will often hurt performance 关闭数据文件预分配,可以节省空间但是会影响性能
--noscripting disable scripting engine 关闭脚本引擎
--notablescan do not allow table scans 关闭表扫描
--nssize arg (=16) .ns file size (in MB) for new databases 为新库指定.ns file 的大小
--profile arg 0=off 1=slow, 2=all 慢查询记录0 不开启,1慢查询,2 全部(0表示关闭profile,1表示只记录执行时间超过slowms配置的值的执行内容,2表示记录所有执行内容)
--quota limits each database to a certain number of files (8 default)限制某个数据库的文件数,默认为8
--quotaFiles arg number of files allowed per db, requires --quota 指定每个数据库允许创建的文件数必须与quota一起使用
--repair run repair on all dbs 启动时修复所有数据库
--repairpath arg root directory for repair files - defaults to dbpath 指定修复文件的根目录,默认为dbpath
--rest turn on simple rest api 开启简单的rest API
--shutdown kill a running server (for init scripts) 关闭一个运行的数据库
--slowms arg (=100) value of slow for profile and console log 如果profile配置为1并且没有配置slowms的话默认是100毫秒
--smallfiles use a smaller default file size 使用一个较小的默认文件大小
--syncdelay arg (=60) seconds between disk syncs (0=never, but not recommended) 同步到磁盘的间隔秒数(默认:60秒)(0=从不,但不推荐)
--sysinfo print some diagnostic system information 打印一些诊断系统信息
--upgrade upgrade db if needed 升级DB,如果需要的话
Replication options: 复制选项
--oplogSize arg size to use (in MB) for replication op log. default is 5% of disk space (i.e. large is good)操作日志的大小(单位:MB) 默认为%5的磁盘空间,越大越好
Master/slave options (old; use replica sets instead):(主从选择,已经被replica sets替代)
--master master mode 运行为主节点
--slave slave mode 运行为从属节点
--source arg when slave: specify master as <server:port> 当为从结点时:指定主结点的位置<server:port>
--only arg when slave: specify a single database to replicate 当为从结点时:指定需要复制的数据库,不是全面都复制
--slavedelay arg specify delay (in seconds) to be used when applying master ops to slave 指定从节点同步主节点oplog的延迟(单位:秒)
--autoresync automatically resync if slave data is stale 如果从节点数据过期,自动重新同步主节点数据。
Replica set options: 副本集选项
--replSet arg arg is <setname>[/<optionalseedhostlist>] 设置副本集名称
--replIndexPrefetch arg specify index prefetching behavior (if secondary)
[none|_id_only|all]
Sharding options:
--configsvr declare this is a config db of a cluster; default port 声明这是集群中的配置数据库,默认端口27019,默认目录/data/configdb
27019; default dir /data/configdb
--shardsvr declare this is a shard db of a cluster; default port 27018 声明这是一个集群的分片服务器;默认端: 27018
八、启动mdb
a)首先创建相关目录,db目录存放数据库,etc存放文件,log存放日志,tmp存放pid文件和uninxsock文件
mkdir db
mkdir etc
mkdir log
mkdir tmp
如下
root@centos6 mongodb]# ls
bin db etc include lib log tmp
b)在etc目录下创建mdb.conf文件
[root@centos6 etc]# cat mdb.conf
logpath=/opt/mongodb/log/mdb.log
logappend=true
pidfilepath=/opt/mongodb/tmp/mdb.pid
unixSocketPrefix=/opt/mongodb/tmp/
fork=true
dbpath=/opt/mongodb/db/
directoryperdb=true
nssize=32
profile=1
slowms=50
syncdelay=30
maxConns=4000
journalCommitInterval=100
c)启动mdb
[root@centos6 etc]# /opt/mongodb/bin/mongod -f /opt/mongodb/etc/mdb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 26858
all output going to: /opt/mongodb/log/mdb.log
child process started successfully, parent exiting
d)查看网络监听端口
[root@centos6 tmp]# netstat -tln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:28017 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN
e)查看db目录
[root@centos6 db]# ls
journal local mongod.lock test
f)查看进程
cat tmp/mdb.pid 确认进程ID
top -p pid
26858 root 20 0 492m 36m 5176 S 0.3 0.5 0:03.15 /opt/mongodb/bin/mongod -f /opt/mongodb/etc/mdb.conf
g)关闭mdb
/opt/mongodb/bin/mongod -f /opt/mongodb/etc/mdb.conf --shutdown
killing process with pid: 26858
One Response