惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
K
Kaspersky official blog
L
Lohrmann on Cybersecurity
T
Tenable Blog
Latest news
Latest news
C
CXSECURITY Database RSS Feed - CXSecurity.com
Security Latest
Security Latest
V
Vulnerabilities – Threatpost
The Hacker News
The Hacker News
P
Palo Alto Networks Blog
I
Intezer
T
Threatpost
C
Cisco Blogs
A
Arctic Wolf
C
Cyber Attacks, Cyber Crime and Cyber Security
WordPress大学
WordPress大学
月光博客
月光博客
博客园 - 聂微东
Last Week in AI
Last Week in AI
V
V2EX
小众软件
小众软件
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Simon Willison's Weblog
Simon Willison's Weblog
T
The Exploit Database - CXSecurity.com
宝玉的分享
宝玉的分享
酷 壳 – CoolShell
酷 壳 – CoolShell
Spread Privacy
Spread Privacy
博客园 - 三生石上(FineUI控件)
博客园 - 叶小钗
T
Threat Research - Cisco Blogs
博客园 - Franky
S
Schneier on Security
Know Your Adversary
Know Your Adversary
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
aimingoo的专栏
aimingoo的专栏
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
美团技术团队
T
Tor Project blog
C
Cybersecurity and Infrastructure Security Agency CISA
腾讯CDC
Project Zero
Project Zero
V
Visual Studio Blog
人人都是产品经理
人人都是产品经理
量子位
The GitHub Blog
The GitHub Blog
I
InfoQ
P
Proofpoint News Feed
Cyberwarzone
Cyberwarzone
P
Privacy & Cybersecurity Law Blog
B
Blog RSS Feed

博客园 - 我想我是青蛙

将golang程序注册为windows服务 CentOS上安装spark standalone mode(转载) 关于听歌这回事 c#读取apk 信息 golang 读取mongob数据写入sqlserver golang 通用Contains方法 golang读取文件信息插入mongodb PetaPoco介绍 白话MongoDB(二)(转载) 白话MongoDB(一) (转载) 给文章加入关键字链接 针对firefox ie6 ie7 ie8的css样式hack (转载) 好久不写日志了,现在开始,好好写了。。 sharepoint 查询calendar recurrence sharepoint之lookup字段 sharepoint获取Audiences 获取exchangeserve的calendar的item sharepoint错误处理 c#上传下载ftp(支持断点续传)
白话MongoDB(三)(转载)
我想我是青蛙 · 2011-12-28 · via 博客园 - 我想我是青蛙

源地址http://www.ningoo.net/html/2011/mongodb_in_a_nutshell_2.html 作者:NinGoo 

通过源代码编译安装好MongoDB之后,接下来需要配置运行。在MongoDB的安装目录,有几个子目录,bin下面是可执行文件,包括

  • mongod:数据库服务端,类似mysqld,每个实例启动一个进程,可以fork为Daemon运行
  • mongo:客户端命令行工具,类似sqlplus/mysql,其实也是一个js解释器,支持js语法
  • mongodump/mongorestore:将数据导入为bson格式的文件/将bson文件恢复为数据库,类似xtracbackup
  • mongoexport/mongoimport:将collection导出为json/csv格式数据/将数据导入数据库,类似mysqldump/mysqlimport
  • bsondump:将bson格式的文件转储为json格式的数据
  • mongos:分片路由,如果使用了sharding功能,则应用程序连接的是mongos而不是mongod
  • mongofiles:GridFS管理工具
  • mongostat:实时监控工具

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

$ ./mongod --dbpath /tmp
Fri Apr  1 00:34:46 [initandlisten] MongoDB starting : pid=31978 port=27017 dbpath=/tmp 32-bit 

** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
**       see http://blog.mongodb.org/post/137788967/32-bit-limitations
**       with --dur, the limit is lower

Fri Apr  1 00:34:46 [initandlisten] db version v1.8.0, pdfile version 4.5
Fri Apr  1 00:34:46 [initandlisten] git version: 9c28b1d608df0ed6ebe791f63682370082da41c0
Fri Apr  1 00:34:46 [initandlisten] build sys info: Linux ning 2.6.36-ningoo #1 SMP
Wed Nov 17 21:45:13 CST 2010 i686 BOOST_LIB_VERSION=1_42
Fri Apr  1 00:34:46 [initandlisten] waiting for connections on port 27017
Fri Apr  1 00:34:46 [websvr] web admin interface listening on port 28017

mongod的主要参数有:

dbpath: 数据文件存放路径,每个数据库会在其中创建一个子目录。用于防止同一个实例多次运行的mongod.lock也保存在此目录中。
logpath:错误日志文件
logappend: 错误日志采用追加模式(默认是覆写模式)
bind_ip: 对外服务的绑定ip,一般设置为空,及绑定在本机所有可用ip上,如有需要可以单独指定
port: 对外服务端口。Web管理端口在这个port的基础上+1000
fork: 以后台Daemon形式运行服务
journal:开启日志功能,通过保存操作日志来降低单机故障的恢复时间,在1.8版本后正式加入,取代在1.7.5版本中的dur参数。
syncdelay: 执行sync的间隔,单位为秒。
directoryperdb: 每个db存放在单独的目录中,建议设置该参数。
maxConns: 最大连接数
repairpath: 执行repair时的临时目录。在如果没有开启journal,异常宕机后重启,必须执行repair操作。

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

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

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

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

至此,已经成功的运行了一个单机的mongodb实例。