免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1840 | 回复: 0
打印 上一主题 下一主题

[MongoDB] MongoDB管理与开发精要《红丸出品》4.1 启动数据库 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-06-13 21:34 |只看该作者 |倒序浏览

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的主要参数有:
l  dbpath:
数据文件存放路径,每个数据库会在其中创建一个子目录,用于防止同一个实例多次运行的mongod.lock也保存在此目录中。
l  logpath
错误日志文件
l  logappend
错误日志采用追加模式(默认是覆写模式)
l  bind_ip
对外服务的绑定ip,一般设置为空,及绑定在本机所有可用ip上,如有需要可以单独指定
l  port
对外服务端口。Web管理端口在这个port的基础上+1000
l  fork
以后台Daemon形式运行服务
l  journal
开启日志功能,通过保存操作日志来降低单机故障的恢复时间,在1.8版本后正式加入,取代在1.7.5版本中的dur参数。
l  syncdelay
系统同步刷新磁盘的时间,单位为秒,默认是60秒。
l  directoryperdb
每个db存放在单独的目录中,建议设置该参数。与MySQL的独立表空间类似
l  maxConns
最大连接数
l  repairpath
执行repair时的临时目录。在如果没有开启journal,异常down机后重启,必须执行repair操作。
在源代码中,mongod的参数分为一般参数,windows参数,replication参数,replica set参数,以及隐含参数。上面列举的都是一般参数。如果要配置replicationreplica set等,还需要设置对应的参数,这里先不展开,后续会有专门的章节来讲述。执行mongod --help可以看到对大多数参数的解释,但有一些隐含参数,则只能通过看代码来获得(db.cpp po:ptions_description hidden_options(Hidden options),隐含参数一般要么是还在开发中,要么是准备废弃,因此在生产环境中不建议使用。
可能你已经注意到,mongod的参数中,没有设置内存大小相关的参数,是的,MongoDB使用os mmap机制来缓存数据文件数据,自身目前不提供缓存机制。这样好处是代码简单,mmap在数据量不超过内存时效率很高。但是数据量超过系统可用内存后,则写入的性能可能不太稳定,容易出现大起大落,不过在最新的1.8版本中,这个情况相对以前的版本已经有了一定程度的改善。
这么多参数,全面写在命令行中则容易杂乱而不好管理。因此,mongod支持将参数写入到一个配置文本文件中,然后通过config参数来引用此配置文件:
./mongod --config /etc/mongo.cnf
-------------------------------------------------------------------
《MongoDB管理与开发精要》、《Redis实战》作者
ChinaUnix.net专家 http://cdhongwan.blog.chinaunix.net
@CD红丸           http://weibo.com/u/2446082491

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP