环境:
安装了centos5.6 64位系统的服务器两台,因为32位,mongodb限制数据库容量总和只能是2G左右
安装了apache2.2+php5.1环境,因为之后我们要运行mongodb的WEB管理程序RockMongo
两台服务器IP分别为192.168.1.11,192.168.1.22
安装MongoDB:
直接从官网下载(http://www.mongodb.org/downloads)Linux 64-bit版本,截至此文发布版本为1.8.1
wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-1.8.1.tgz
tar xvzf mongodb-linux-x86_64-1.8.1.tgz
cd mongodb-1.8.1
里面有很多文件mongodb相关文件
其中我们接下来用到的几个为
mongod:MongoDB主进程,可以以shard server、config server等方式启动
mongos:MongoDB路由进程,配置了Auto-Sharding的服务器,通过这个路由进程来管理各种请求,类似一个透明代理。
mongo:MongoDB客户端工具,可以在服务器上进行命令行方式的维护
其他程序文件请自行google或者看官方文档,应该是有一些导入导出,数据库修复等程序。
注意:建议通过ln -s /root/mongodb/bin/mongod /usr/bin/mongod进行软链接,这样方便后面的操作
启动Mongodb相关进程,为做配置准备
注:这里可以是像我这样的两台或多台服务器,如果服务器资源有限,也可以用单机启动不同端口的进程来做测试
首先分别在11,22服务器上启动shardsvr进程
mongod --shardsvr --dbpath=/home/mongodb/data/ --logpath=/home/mongodb/log/shardsvr_logs.txt --logappend &
启动信息会存入我们指定的日志文件,启动成功信息如下:
Thu May 5 23:54:41 [initandlisten] MongoDB starting : pid=10172 port=27018 dbpath=/home/mongodb/data/ 64-bit
Thu May 5 23:54:41 [initandlisten] db version v1.8.1, pdfile version 4.5
Thu May 5 23:54:41 [initandlisten] git version: a429cd4f535b2499cc4130b06ff7c26f41c00f04
Thu May 5 23:54:41 [initandlisten] build sys info: Linux bs-linux64.10gen.cc 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_41
Thu May 5 23:54:41 [initandlisten] waiting for connections on port 27018
Thu May 5 23:54:41 [websvr] web admin interface listening on port 28018
可以看到这里shardsvr默认端口为27018
接下来在11服务器上启动configsvr
mongod --configsvr --dbpath=/home/mongodb/config_db/ --repairpath=/home/mongodb/config_repair_db/ --logpath=/home/mongodb/log/configsvr_logs.txt --logappend &
启动成功也会写入日志文件,日志内容类似上面的,不指定端口的情况下configsvr的默认端口为27019
然后我们在11服务器上启动mongos路由进程:
mongos --configdb 192.168.1.11:27019 --logpath=/home/mongodb/log/mongos_logs.txt --logappend &
这里--configdb指定的IP和端口为configsvr所在服务器的IP和端口,mongos进程默认端口为27017,客户端的一些操作只要通过连接mongos就可以任何操作,只要配置好了,后端的一些分布式分片存储等逻辑,MongoDB会自动帮你完成。
部署RockMongo到服务器上
首先到这里下载http://pecl.php.net/package/mongo php mongo扩展
wget http://pecl.php.net/get/mongo-1.1.4.tgz
tar mongo-1.1.4.tgz
cd mongo-1.1.4
phpize //如果命令不能用请yum install php-dev
./configure
make && make install
修改/etc/php.ini
追加extension = "mongo.so"
然后重启apache就可以了 service httpd restart
接着从http://code.google.com/p/rock-php/downloads/list下载解压就可以用了,默认帐号密码为admin admin
部署完以后创建demo数据库,管理界面很简单,一看你就懂了。
配置自动分片(Auto_Sharding):
用mongo shell连接mongos进程进行配置管理
mongo 192.168.1.11:27017
>show dbs //显示所有database
admin
config
>use admin //切换到admin数据库进行相关配置
switched to db admin
>db.runCommand({addshard:"192.168.1.11:27018"}); //添加shard节点1
{ "shardAdded" : "shard0000", "ok" : 1 }
> db.runCommand({addshard:"127.0.0.1:27018"}) //添加shard节点2
{ "shardAdded" : "shard0001", "ok" : 1 }
>db.runCommand({enableSharding:"demo"}); //为数据库DEMO启用sharding
{ "ok" : 1 }
>db.runCommand({shardcollection:"demo.iptables",key:{_id:1}}); //设置为哪个文档设置自动分区。这里需要区分一个概念,MongoDB的自动分区是针对文档进行的,不设置的文档默认存储在单节点上
{ "collectionsharded" : "demo.iptables", "ok" : 1 }
>use demo
>for (var i=1; i<=100000; i++) db.iptbales.save({"ip":"127.0.0.1"});//循环插入10W测试数据
这个过程可能需要几秒的时间,完成了会出现箭头>
接着你可以通过db.stats();命令来查看分区存储情况,下面是我的一个截图
如果你只看到一个节点,请重复执行几次测试数据存入语句,应该就可以了。
至此简单的Auto-Sharding配置完成,如果此次在项目中试用mongodb成功,我会经常分享mongodb经验上来
相关推荐
mongodb中文API及分布式分片实例详解。
原创Linux下Mongodb的分布式分片群集(sharding cluster)配置
Linux下Mongodb的分布式分片群集shardingcluster配置.pdf
1.分篇章进行学习,内容控制30分钟内 2.1个月疗程,不要放弃治疗哦 3.图文并茂,有问题请发到邮箱
MongoDB Community Server(mongodb-windows-x86_64-5.0.8-signed.msi)适用于RedHat / CentOS 7.0 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 ...
MongoDB Community Server(mongodb-org-shell-5.0.4-1.el7.x86_64.rpm)适用于RedHat / CentOS 7.0 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 ...
MongoDB Community Server(mongodb-org-server-5.0.4-1.el7.x86_64.rpm)适用于RedHat / CentOS 7.0 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。...
1.分篇章进行学习,内容控制30分钟内 2.1个月疗程,不要放弃治疗哦 3.图文并茂,有问题请发到邮箱
2012 最新的mongodb sharding配置步骤 权威指南 分片步骤
1. 一个或多个分片,其中每个分片持有部分数据(自动管理)。读写操作自动路由到合适的分片上。每个分片是一个replica set。 一个replica set是一台或多台服务器,每台机器持有相同数据的拷贝。在特定的时间点,一台...
MongoDB Community Server(mongodb-org-server-5.0.8-1.el7.x86_64.rpm)适用于RedHat / CentOS 7.0 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。...
赠送jar包:mongodb-driver-core-4.2.3.jar; 赠送原API文档:mongodb-driver-core-4.2.3-javadoc.jar; 赠送源代码:mongodb-driver-core-4.2.3-sources.jar; 赠送Maven依赖信息文件:mongodb-driver-core-4.2.3....
2012 mongodb 最新的sharding配置 分片
tar -zxvf mongodb-linux-x86_64-4.0.18.tgz 2、重名命 mv mongodb-linux-x86_64-4.0.18 mongodb 3、进入 mongodb 目录创建目录 db 和 logs cd /usr/local/mongodb mkdir db mkdir logs 4、进入到 bin 目录下,...
MongoDB window 安装包,mongodb-windows-x86_64-4.4.0-signed.msi,免除下载速度慢的烦恼!
mongodb-windows安装包: mongodb-compass-1.31.2-win32-x64.msi 打开直接安装
k8s 安装 mongodb 分片(Sharding)+ 副本集(Replica Set)
(3) 请在报告中使用文字和截图详细描述MongoDB分片集群搭建及配置的主要步骤: - 搭建配置集服务器(Mongod) - 搭建分片集服务器(Mongod) - 搭建路由节点服务器(Mongos) - 添加分片集到集群 - 创建数据库...
赠送jar包:mongodb-driver-sync-4.2.3.jar; 赠送原API文档:mongodb-driver-sync-4.2.3-javadoc.jar; 赠送源代码:mongodb-driver-sync-4.2.3-sources.jar; 赠送Maven依赖信息文件:mongodb-driver-sync-4.2.3....
mongodb-linux-x86_64-ubuntu1404-3.6.4 下载真是太费劲了。贡献出来给大家使用