MongoDB管理与开发精要《红丸出品》4.1 启动数据库
http://blog.chinaunix.net/attachment/201205/26/26785103_1338009683Kvjx.jpgMongoDB Shell是MongoDB自带的交互式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
# /Apps/mongo/bin/mongod --dbpath=/data/dbSun Apr8 22:41:06 MongoDB starting : pid=13701 port=27017 dbpath=/data/db 32-bit ……Sun Apr8 22:41:06 waiting for connections on port 27017Sun Apr8 22:41:06 web admin interface listening on port 28017
4.1.2 配置文件方式启动 如果是一个专业的DBA,那么实例启动时会加很多的参数以便使系统运行的非常稳定,这样就可能会在启动时在mongod后面加一长串的参数,看起来非常混乱而且不好管理和维护,那么有什么办法让这些参数有条理呢?MongoDB也支持同mysql一样的读取启动配置文件的方式来启动数据库,配置文件的内容如下:
# cat /etc/mongodb.cnf dbpath=/data/db/
启动时加上”-f”参数,并指向配置文件即可
# ./mongod -f /etc/mongodb.cnf Mon May 28 18:27:18 MongoDB starting : pid=18481 port=27017 dbpath=/data/db/ 32-bit ……Mon May 28 18:27:18 waiting for connections on port 27017Mon May 28 18:27:18 web admin interface listening on port 28017
4.1.3 Daemon方式启动 大家可以注意到上面的两种方式都慢在前台启动MongoDB进程,但当启动MongoDB进程的session窗口不小心关闭时,MongoDB进程也将随之停止,这无疑是非常不安全的,幸好MongoDB提供了一种后台Daemon方式启动的选择,只需加上一个”--fork”参数即可,这就使我们可以更方便的操作数据库的启动,但如果用到了”--fork”参数就必须也启用” --logpath”参数,这是强制的
# /Apps/mongo/bin/mongod --dbpath=/data/db --fork--fork has to be used with --logpath# /Apps/mongo/bin/mongod --dbpath=/data/db --logpath=/data/log/r3.log --forkall output going to: /data/log/r3.logforked process: 19528#
4.1.4 mongod参数说明 最简单的,通过执行mongod即可以启动MongoDB数据库服务,mongod支持很多的参数,但都有默认值,其中最重要的是需要指定数据文件路径,或者确保默认的/data/db存在并且有访问权限,否则启动后会自动关闭服务。Ok,那也就是说,只要确保dbpath就可以启动MongoDB服务了 mongod的主要参数有:ldbpath:数据文件存放路径,每个数据库会在其中创建一个子目录,用于防止同一个实例多次运行的mongod.lock也保存在此目录中。llogpath错误日志文件llogappend错误日志采用追加模式(默认是覆写模式)lbind_ip对外服务的绑定ip,一般设置为空,及绑定在本机所有可用ip上,如有需要可以单独指定lport对外服务端口。Web管理端口在这个port的基础上+1000lfork以后台Daemon形式运行服务ljournal开启日志功能,通过保存操作日志来降低单机故障的恢复时间,在1.8版本后正式加入,取代在1.7.5版本中的dur参数。lsyncdelay系统同步刷新磁盘的时间,单位为秒,默认是60秒。ldirectoryperdb每个db存放在单独的目录中,建议设置该参数。与MySQL的独立表空间类似lmaxConns最大连接数lrepairpath执行repair时的临时目录。在如果没有开启journal,异常down机后重启,必须执行repair操作。 在源代码中,mongod的参数分为一般参数,windows参数,replication参数,replica set参数,以及隐含参数。上面列举的都是一般参数。如果要配置replication,replica 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 -------------------------------------------------------------------
《MongoDB管理与开发精要》、《Redis实战》作者
ChinaUnix.net专家 http://cdhongwan.blog.chinaunix.net
@CD红丸 http://weibo.com/u/2446082491
页:
[1]