[原创]深入理解MongoDB(一)Linux下配置MongoDB全攻略_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3001 | 回复: 0   主题: [原创]深入理解MongoDB(一)Linux下配置MongoDB全攻略        下一篇 
Robin
注册用户
等级:少校
经验:856
发帖:63
精华:4
注册:2014-3-22
状态:离线
发送短消息息给Robin 加好友    发送短消息息给Robin 发消息
发表于: IP:您无权察看 2014-8-2 15:05:54 | [全部帖] [楼主帖] 楼主   主页

一 MongoDB简介

MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式,Mongo使用C++开发。Mongo的官方网站地址是:http://www.mongodb.org/,读者可以在此获得更详细的信息。

特点:

它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:

面向集合存储,易存储对象类型的数据。

模式自由。

支持动态查询。

支持完全索引,包含内部对象。

支持查询。

支持复制和故障恢复。

使用高效的二进制数据存储,包括大型对象(如视频等)。

自动处理碎片,以支持云计算层次的扩展性。

支持RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。

文件存储格式为BSON(一种JSON的扩展)。

可通过网络访问。

功能:

面向集合的存储:适合存储对象及JSON形式的数据。

动态查询:Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。

完整的索引支持:包括文档内嵌对象及数组。Mongo的查询优化器会分析查询表达式,并生成一个高效的查询计划。

查询监视:Mongo包含一个监视工具用于分析数据库操作的性能。

复制及自动故障转移:Mongo数据库支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。复制的主要目标是提供冗余及自动故障转移

高效的传统存储方式:支持二进制数据及大型对象。

自动分片以支持云级别的伸缩性:自动分片功能支持水平的数据库集群,可动态添加额外的机器。

适用场景:

网站实时数据处理。它非常适合实时的插入、更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。

缓存。由于性能很高,它适合作为信息基础设施的缓存层。在系统重启之后,由它搭建的持久化缓存层可以避免下层的数据源过载。

高伸缩性的场景。非常适合由数十或数百台服务器组成的数据库,它的路线图中已经包含对MapReduce引擎的内置支持。

不适用场景:

要求高度事务性的系统。

传统的商业智能应用。

复杂的跨文档(表)级联查询。

二 MongoDB配置全攻略


版本说明:

RedHat:6.1 x86_64
MongoDB:2.6.3


首先,我们到官网( http://www.mongodb.org/downloads)下载64位Linux 版的MongoDB;

然后,做配置MongoDB之前的准备工作;

--创建MongoDB主目录
# mkdir /usr/local/mongodb/
--解压MongoDB包到MongoDB主目录
# tar -xvf mongodb-linux-x86_64-2.6.3.tgz -C /usr/local/mongodb/
--创建MongoDB数据目录,可以存放到其他位置,比如RAID、LVM上
# mkdir /usr/local/mongodb/data/
--创建MongoDB日志目录,建议放到var目录下
# mkdir /usr/local/mongodb/log/


接着,我们使用mongod命令启动MongoDB,再打开另一个终端,使用mongo命令连接到MongoDB;

# cd /usr/local/mongodb/bin/
# ./mongod --dbpath=/usr/local/mongodb/data/ --logpath=/usr/local/mongodb/log/mongo.log
# ./mongo
MongoDB shell version: 2.6.3
connecting to: test
>


接着,配置环境变量;

# pwd
/usr/local/mongodb/bin
# vim ~/.bash_profile
# tail -n3 !$
tail -n3 ~/.bash_profile
PATH=$PATH:$HOME/bin:/usr/local/mongodb/bin
export PATH
# source !$
source ~/.bash_profile


为了更方便的启动和关闭MongoDB,我们可以使用Shell写脚本,当然也可以加入到service中;

# cp ssh mongodb
# vim mongodb
# cat mongodb
#!/bin/bash
#
# mongod Start up the MongoDB server daemon
#
# source function library
. /etc/rc.d/init.d/functions
#定义命令
CMD=/usr/local/mongodb/bin/mongod
#定义数据目录
DBPATH=/usr/local/mongodb/data
#定义日志目录
LOGPATH=/usr/local/mongodb/log/mongo.log
start()
{
      #fork表示后台运行
      $CMD --dbpath=$DBPATH --logpath=$LOGPATH --fork
      echo "MongoDB is running background..."
}
stop()
{
pkill mongod
echo "MongoDB is stopped."
}
case "$1" in
start)
start
;;
stop)
stop
;;
*)
echo $"Usage: $0 {start|stop}"
esac


我们可以测试编写脚本的正确性;

# /etc/init.d/mongodb start
about to fork child process, waiting until server is ready for connections.
forked process: 1347
child process started successfully, parent exiting
MongoDB is running background...
# /etc/init.d/mongodb stop
Terminated


当然,更好的方式是采用配置文件,把MongoDB需要的参数写入配置文件,然后在脚本中引用;

$ vim mongodb.conf
$ cat mongodb.conf
#代表端口号,如果不指定则默认为27017
#port=27027
#MongoDB数据文件目录
dbpath=/usr/local/mongodb/data
#MongoDB日志文件目录
logpath=/usr/local/mongodb/log/mongo.log
#日志文件自动累加
logappend=true


编写好配置文件后,我们需要修改启动脚本;

# vim mongodb
# cat mongodb
#!/bin/bash
#
# mongod Start up the MongoDB server daemon
#
# source function library
. /etc/rc.d/init.d/functions
#定义命令
CMD=/usr/local/mongodb/bin/mongod
#定义配置文件路径
INITFILE=/usr/local/mongodb/mongodb.conf
start()
{
      #&表示后台启动,也可以使用fork参数
      $CMD -f $INITFILE &
      echo "MongoDB is running background..."
}
stop()
{
pkill mongod
echo "MongoDB is stopped."
}
case "$1" in
start)
start
;;
stop)
stop
;;
*)
echo $"Usage: $0 {start|stop}"
esac


编写完成后,再次测试脚本的正确性。

# /etc/init.d/mongodb start
MongoDB is running background...
# /etc/init.d/mongodb stop
Terminated


三 后记

这是深入理解MongoDB的第一篇文章,本篇文章简要地介绍了MongoDB,并把Linux下完整的配置过程呈现给读者。

四 参考资料


http://baike.baidu.com/subview/3385614/9338179.htm


该贴被Robin编辑于2014-8-2 15:09:44

该贴被Robin编辑于2014-8-2 15:11:15
该贴被Robin编辑于2014-8-2 15:12:31
该贴被Robin编辑于2014-8-2 15:12:56
该贴被Robin编辑于2014-8-2 15:13:28
该贴被Robin编辑于2014-8-2 15:13:55
该贴被Robin编辑于2014-8-2 15:14:23
该贴被Robin编辑于2014-8-2 15:15:53

该贴由hui.chen转至本版2014-11-5 16:18:26

该贴由hui.chen转至本版2014-11-5 16:22:21




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论