MongoDB是C++开发的一款开源、无模式的文档型数据库,具有高性能、易部署、易使用、数据存储方便等特点;MongoDB采用Bson(binary json)的形式存储数据,无锁,无事务,有索引,支持集群和分片功,可动态增删结点。


实验环境:

系统:FreeBSD 8.1-RELEASE
版本:mongodb v1.6.6


MongoDB安装:

目前,官网上并没有FreeBSD下MongoDB的pkg包下载,所以FreeBSD下MongoDB的安装方式只有两种:ports方式和源码方式。其中Ports方式十分简单,但是由于网速等因数影响,可能要很久才能完成安装;而在MongoDB依赖包安装不全的的情况下,使用源码方式安装MongoDB相对会更为复杂。


1. Ports方式安装MongoDB:

cd /usr/ports/databases/mongodb  
make  
make install 


Ports方式安装MongoDB十分简单,就以上三条命令。但由于网络问题或Ports树太旧等原因可能会报错。如出现错误终止,请仔细观察错误代码,删除/usr/ports/distfiles/下未下载完成的文件或更新Ports树后重新Make。

如果你有多台FreeBSD主机要安装MongoDB,而且这些主机的硬件平台几乎相同,为了提高工作效率,你可以将Ports方式安装的MongoDB、以及MongoDB的依赖包,打包成pkg包,然后通过scp方式复制到其他主机上使用pkg_add命令安,效率会成倍的提高。具体打包方式如下:

cd /var/db/pkg 
pkg_create -R -b mongodb-1.*   # 把*号换成版本号,-R参数为连同依赖包一起打包 
ls *.tbz            # 查看打好的包 


按以上方式打好包后,即可以拷贝到其他主机上,使用pkg_add mongodb-1.*.tbz进行安装。


2. 源码的方式安装:

打开www.mongodb.org/downloads页面,在最后一列找到你要需要版本的源码(我这里是v1.6.6),然后执行下列命令:

#安装依赖包 
cd /usr/ports/lang/spidermonkey && make && make install 
cd /usr/ports/devel/scons && make && make install  #在弹出的窗口中选上"python" 
cd /usr/ports/devel/boost-all && make && make install 
cd /usr/ports/devel/libexecinfo && make && make install 
cd /usr/ports/devel/pcre && make && make install    #官方的文档中没此项,会报错 
 
#下载,解压,编译 
cd /usr/local 
fetch http://downloads.mongodb.org/src/mongodb-src-r1.6.5.tar.gz 
tar -zxvf mongodb-src-r1.6.5.tar.gz 
mv mongodb-src-r1.6.5 mongodb-1.6.5 
cd mongodb-1.6.5 
scons .                # 然后等待完成 
 
# 设置环境变量 
export PATH=$PATH:/usr/local/mongodb-1.6.5 


启动MongoDB服务:

MongoDB的服务端运行模式有三种,分别是:单台模式、主从模式、分片模式。

1. 单台模式的Mongodb的启动:

mkdir -p /data/db  
mongod --dbpath /data/db --logpath /data/db/db.log  --fork 
 
# 查看状态 
mongo 127.0.0.1:27017 
show dbs #显示数据库 
help 


2. 主从(Master、Slave)模式的Mongodb的启动:

Master主机( ip为10.0.0.1):
mongod --master --dbpath /data/master --logpath /data/master/master.log  --fork 
cat /data/master/master.log 

Slave主机(ip为10.0.0.2):

mongod --slave --dbpath /data/slave --logpath /data/slave/slave.log  --source 10.0.0.1:27017 --fork 
cat /data/slave/slave.log 

测试:

# 查看状态 
mongo 10.0.0.1:27017 
show dbs #显示数据库 
help 


3. 分片模式:

由于分片模式配置相对复杂,在另篇文章详细介绍。


MongoDB相关网站:

1. MongoDB下载:www.mongodb.org/downloads
2. 各种平台的安装帮助: http://www.mongodb.org/display/DOCS/BUILDING
3. 他们在使用MongoDB: http://www.mongodb.org/display/DOCS/Production+Deployments
4. 开发驱动:http://www.mongodb.org/display/DOCS/Drivers