MongoDB管理与开发精要《红丸出品》4.1 启动数据库

----------------------------------------------------------------------------------------------------------------
《MongoDB管理与开发精要》、《Redis实战》作者
@CD红丸                    http://weibo.com/u/2446082491
----------------------------------------------------------------------------------------------------------------

MongoDB ShellMongoDB自带的交互式Javascript shell,用来对MongoDB进行操作和管理的交互式环境。

 

使用 "./mongo --help" 可查看相关连接参数,下面将从常见的操作,如插入,查询,修改,删除等几个方面阐述MongoDB shell的用法。

4.1 启动数据库

MongoDB安装、配置完后,必须先启动它,然后才能使用它。怎么启动它呢?下面分别展示了3种方式来启动实例。

4.1.1 命令行方式启动

MongoDB默认存储数据目录为/data/db/ (或者 c:\data\db),默认端口27017,默认HTTP端口28017。当然你也可以修改成不同目录,只需要指定dbpath参数: /Apps/mongo/bin/mongod --dbpath=/data/db

[root@localhost ~]# /Apps/mongo/bin/mongod --dbpath=/data/db

Sun Apr  8 22:41:06 [initandlisten] MongoDB starting : pid=13701 port=27017 dbpath=/data/db 32-bit

……

Sun Apr  8 22:41:06 [initandlisten] waiting for connections on port 27017

Sun Apr  8 22:41:06 [websvr] web admin interface listening on port 28017

4.1.2 配置文件方式启动

如果是一个专业的DBA,那么实例启动时会加很多的参数以便使系统运行的非常稳定,这样就可能会在启动时在mongod后面加一长串的参数,看起来非常混乱而且不好管理和维护,那么有什么办法让这些参数有条理呢?MongoDB也支持同mysql一样的读取启动配置文件的方式来启动数据库,配置文件的内容如下:

[root@localhost bin]# cat /etc/mongodb.cnf

dbpath=/data/db/

 

启动时加上”-f”参数,并指向配置文件即可

[root@localhost bin]# ./mongod -f /etc/mongodb.cnf

Mon May 28 18:27:18 [initandlisten] MongoDB starting : pid=18481 port=27017 dbpath=/data/db/ 32-bit

……

Mon May 28 18:27:18 [initandlisten] waiting for connections on port 27017

Mon May 28 18:27:18 [websvr] web admin interface listening on port 28017

4.1.3 Daemon 方式启动

大家可以注意到上面的两种方式都慢在前台启动MongoDB进程,但当启动MongoDB进程的session窗口不小心关闭时,MongoDB进程也将随之停止,这无疑是非常不安全的,幸好MongoDB提供了一种后台Daemon方式启动的选择,只需加上一个”--fork”参数即可,这就使我们可以更方便的操作数据库的启动,但如果用到了”--fork”参数就必须也启用” --logpath”参数,这是强制的

[root@localhost ~]# /Apps/mongo/bin/mongod --dbpath=/data/db--fork

--fork has to be used with --logpath

[root@localhost ~]# /Apps/mongo/bin/mongod --dbpath=/data/db--logpath=/data/log/r3.log --fork

all output going to: /data/log/r3.log

forked process: 19528

[root@localhost ~]#

4.1.4 mongod 参数说明

最简单的,通过执行mongod即可以启动MongoDB数据库服务,mongod支持很多的参数,但都有默认值,其中最重要的是需要指定数据文件路径,或者确保默认的/data/db存在并且有访问权限,否则启动后会自动关闭服务。Ok,那也就是说,只要确保dbpath就可以启动MongoDB服务了

 

mongod的主要参数有:

dbpath:

数据文件存放路径,每个数据库会在其中创建一个子目录,用于防止同一个实例多次运行的mongod.lock也保存在此目录中。

logpath

错误日志文件

logappend

错误日志采用追加模式(默认是覆写模式)

bind_ip

对外服务的绑定ip,一般设置为空,及绑定在本机所有可用ip上,如有需要可以单独指定

port

对外服务端口。Web管理端口在这个port的基础上+1000

fork

以后台Daemon形式运行服务

journal

开启日志功能,通过保存操作日志来降低单机故障的恢复时间,在1.8版本后正式加入,取代在1.7.5版本中的dur参数。

syncdelay

系统同步刷新磁盘的时间,单位为秒,默认是60秒。

directoryperdb

每个db存放在单独的目录中,建议设置该参数。与MySQL的独立表空间类似

maxConns

最大连接数

repairpath

执行repair时的临时目录。在如果没有开启journal,异常down机后重启,必须执行repair操作。

 

在源代码中,mongod的参数分为一般参数,windows参数,replication参数,replica set参数,以及隐含参数。上面列举的都是一般参数。如果要配置replicationreplica set等,还需要设置对应的参数,这里先不展开,后续会有专门的章节来讲述。执行mongod --help可以看到对大多数参数的解释,但有一些隐含参数,则只能通过看代码来获得(db.cpp po::options_description hidden_options(Hidden options);),隐含参数一般要么是还在开发中,要么是准备废弃,因此在生产环境中不建议使用。

 

可能你已经注意到,mongod的参数中,没有设置内存大小相关的参数,是的,MongoDB使用os mmap机制来缓存数据文件数据,自身目前不提供缓存机制。这样好处是代码简单,mmap在数据量不超过内存时效率很高。但是数据量超过系统可用内存后,则写入的性能可能不太稳定,容易出现大起大落,不过在最新的1.8版本中,这个情况相对以前的版本已经有了一定程度的改善。

 

这么多参数,全面写在命令行中则容易杂乱而不好管理。因此,mongod支持将参数写入到一个配置文本文件中,然后通过config参数来引用此配置文件:

./mongod --config /etc/mongo.cnf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值