Chinaunix首页 | 论坛 | 博客
  • 博客访问: 670516
  • 博文数量: 63
  • 博客积分: 1327
  • 博客等级: 中尉
  • 技术积分: 2022
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-19 18:39
文章分类

全部博文(63)

文章存档

2013年(3)

2012年(60)

分类: Sybase

2012-05-29 23:13:07

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

 

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

启动数据库

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

命令行方式启动

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

配置文件方式启动

如果是一个专业的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

方式启动

大家可以注意到上面的两种方式都慢在前台启动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 ~]#

参数说明

最简单的,通过执行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::options_description hidden_options(Hidden options);),隐含参数一般要么是还在开发中,要么是准备废弃,因此在生产环境中不建议使用。

 

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

 

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

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

阅读(3884) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

cd红丸2012-05-30 21:23:14

sxcong: 红丸,这个名字看起来有点。。。。
正式出版换个名字更好.....
此书已出版了,~~,网名而已, kof中喜欢红丸

sxcong2012-05-30 14:01:31

红丸,这个名字看起来有点。。。。
正式出版换个名字更好