文档章节

聊聊MongoDB(三)MongoDB3.2.9集群搭建

你我他有个梦
 你我他有个梦
发布于 2016/10/26 15:35
字数 933
阅读 685
收藏 55

1.    安装步骤:

#解压
tar -zxvf mongodb-linux-x86_64-ubuntu1404-3.2.9.tgz

mv mongodb-linux-x86_64-ubuntu1404-3.2.9.tgz mongodb

cd mongodb

#创建存储数据目录

mkdir data

cd data

#创建存放数据库的目录db和存放日志信息的目录log

mkdir db log

cd log

touch MongoDB.log

启动:

cd /home/nosql/mongodb/bin

./mongod --dbpath="/home/nosql/mongodb/data/db/" --logpath="/home/nosql/mongodb/data/log/MongoDB.log" –httpinterface

进入shell窗口

./mongo

2.    Mongo集群-分片(Replica Set + Sharding)

Mongo支持三种集群方式:Replica Set (副本集)/ Sharding(数据分片/ Master-Slaver(主从)

 

2.1    建立目录

 

分片数据文件存储目录:

cd data

mkdir -p shard1/db1-1 shard1/db1-2 shard1/db1-3 shard2/db2-1 shard2/db2-2 shard2/db2-3 shard3/db3-1 shard3/db3-2 shard3/db3-1

配置

mkdir -p config/configdb1 config/configdb2 config/configdb3

2.2    启动副本集

2.2.1    副本集db1启动:

./mongod --dbpath=../data/shard1/db1-1/ --port 11001 --replSet db1 --logpath=../data/log/db1-1.log --pidfilepath=../data/db1-1.pid &  

./mongod --dbpath=../data/shard1/db1-2/ --port 11002 --replSet db1 --logpath=../data/log/db1-2.log --pidfilepath=../data/db1-2.pid &  

./mongod --dbpath=../data/shard1/db1-3/ --port 11003 --replSet db1 --logpath=../data/log/db1-3.log --pidfilepath=../data/db1-3.pid & 

 

2.2.2    副本集db2启动:

./mongod --dbpath=../data/shard2/db2-1/ --port 21001 --replSet db2 --logpath=../data/log/db2-1.log --pidfilepath=../data/db2-1.pid &  

./mongod --dbpath=../data/shard2/db2-2/ --port 21002 --replSet db2 --logpath=../data/log/db2-2.log --pidfilepath=../data/db2-2.pid &  

./mongod --dbpath=../data/shard2/db2-3/ --port 21003 --replSet db2 --logpath=../data/log/db2-3.log --pidfilepath=../data/db2-3.pid &  

 

2.2.3    副本集db3启动:

./mongod --dbpath=../data/shard3/db3-1/ --port 31001 --replSet db3 --logpath=../data/log/db3-1.log --pidfilepath=../data/db3-1.pid &  

./mongod --dbpath=../data/shard3/db3-2/ --port 31002 --replSet db3 --logpath=../data/log/db3-2.log --pidfilepath=../data/db3-2.pid &  

./mongod --dbpath=../data/shard3/db3-3/ --port 31003 --replSet db3 --logpath=../data/log/db3-3.log --pidfilepath=../data/db3-3.pid &

  

 

2.3    副本集的配置以及初始化

2.3.1    定义副本集配置db1

./mongo --port 11001

config={

... "_id":"db1",

... "members":[

... {"_id":0,"host":"192.168.111.139:11001"},

... {"_id":1,"host":"192.168.111.139:11002"},

... {"_id":2,"host":"192.168.111.139:11003"}

... ]

... }


rs.initiate(config)

exit

 

 

2.3.2    定义副本集配置db2

./mongo --port 21001

config={

... "_id":"db2",

... "members":[

... {"_id":0,"host":"192.168.111.139:21001"},

... {"_id":1,"host":"192.168.111.139:21002"},

... {"_id":2,"host":"192.168.111.139:21003"}

... ]

... }

rs.initiate(config)

exit

 

2.3.3    定义副本集配置db3

./mongo --port 31001

config={

... "_id":"db3",

... "members":[

... {"_id":0,"host":"192.168.111.139:31001"},

... {"_id":1,"host":"192.168.111.139:31002"},

... {"_id":2,"host":"192.168.111.139:31003"}

... ]

... }

rs.initiate(config)

exit

2.4    启动配置库

./mongod --configsvr --dbpath=../data/config/configdb1 --port 20000 --logpath=../data/log/configdb1.log –pidfilepath=../data/config/configdb1.pid &

./mongod --configsvr --dbpath=../data/config/configdb2 --port 20001 --logpath=../data/log/configdb2.log –pidfilepath=../data/config/configdb2.pid &

./mongod --configsvr --dbpath=../data/config/configdb3 --port 20002 --logpath=../data/log/configdb3.log --pidfilepath=../data/config/configdb3.pid &

2.5    启动mongos服务器

./mongos --port 30000 --configdb 192.168.111.139:20000,192.168.111.139:20001,192.168.111.139:20002 --logpath=../data/log/mongos.log &  

2.6    分配副本集

#连接到mongos

./mongo --port 30000

#使用admin数据库

use admin

#串联路由服务器与分配副本集1

sh.addShard("db1/192.168. 111.139:11001")

#串联路由服务器与分配副本集2

sh.addShard("db2/192.168. 111.139:21001")

#串联路由服务器与分配副本集3

sh.addShard("db3/192.168. 111.139:31001")


#查看分片服务器的配置

db.runCommand({listshards:1})  

 

 

2.7    分片生效

同样是在admin数据库下
#指定test分片生效

db.runCommand({"enablesharding":"0929test"})  


 #指定数据库里需要分片的集合和片键

sh.shardCollection("0929test.person",{_id:'hashed'})

 

 

2.8    测试


测试

use 0929test



插入测试数据:

for(var i=0;i<100000;i++){db.person.insert({name:"lzq"+i});}  


查看分片信息:


查看分片情况,省略了部分信息

db.person.stats();
#分片信息:
{

    "sharded": true,

    "capped": false,

    "ns": "0929test.person",

    "count": 100000,

    "size": 4088890,

    "storageSize": 2080768,

    "totalIndexSize": 5459968,

    "indexSizes": {

        "_id_": 958464,

        "_id_hashed": 4501504

    },

    "avgObjSize": 40.8889,

    "nindexes": 2,

    "nchunks": 6,

    "shards": {

        "db1": {

            "ns": "0929test.person",

            "count": 33250,

            "size": 1359581,

            "avgObjSize": 40,

            "storageSize": 692224,

            "capped": false,

            "nindexes": 2,

            "totalIndexSize": 1847296,

            "indexSizes": {

                "_id_": 315392,

                "_id_hashed": 1531904

            },

            "ok": 1

        },

        "db2": {

            "ns": "0929test.person",

            "count": 33372,

            "size": 1364574,

            "avgObjSize": 40,

            "storageSize": 692224,

            "capped": false,

            "nindexes": 2,

            "totalIndexSize": 1785856,

            "indexSizes": {

                "_id_": 323584,

                "_id_hashed": 1462272

            },

            "ok": 1

        },

        "db3": {

            "ns": "0929test.person",

            "count": 33378,

            "size": 1364735,

            "avgObjSize": 40,

            "storageSize": 696320,

            "capped": false,

            "nindexes": 2,

            "totalIndexSize": 1826816,

            "indexSizes": {

                "_id_": 319488,

                "_id_hashed": 1507328

            },

            "ok": 1

        }

    },

    "ok": 1

}

可以看出分片比较均匀

 

参考资料:

http://www.lanceyan.com/tech/arch/mongodb_shard1.html

http://blog.csdn.net/luonanqin/article/details/8497860

http://www.jianshu.com/p/2825a66d6aed

https://my.oschina.net/weiweiblog/blog/657766

http://hunan.iteye.com/blog/2095605

© 著作权归作者所有

你我他有个梦

你我他有个梦

粉丝 96
博文 130
码字总数 109764
作品 0
通州
程序员
私信 提问
mongodb安装、连接,mongodb用户管理、创建集合、数据管理、备份恢复,副本集介绍、搭建、测试,分片介绍、搭建、测试,php的mongodb扩展、mongo扩展

21.26 mongodb介绍 21.27 mongodb安装 21.28 连接mongodb 21.29 mongodb用户管理 21.30 mongodb创建集合、数据管理 21.31 php的mongodb扩展 21.32 php的mongo扩展 21.33 mongodb副本集介绍 ...

tobej
07/16
81
0
MongoDB深圳用户组线下活动来了

MongoDB线下用户组是由全世界MongoDB爱好者发起的不定期线下交流活动。目前全球有100多个MongoDB用户组,3万5千多爱好者参与。用户组活动的形式通常会有一到两个MongoDB相关的技术分享。分享...

MongoDB中文社区
2016/07/02
11
0
mongodb 3.4 集群搭建升级版 五台集群

mongodb 3.4 集群搭建升级版 五台集群 纯洁的微笑 2017-09-21 原文 最新版mongodb推荐使用yaml语法来做配置,另外一些旧的配置在最新版本中已经不在生效,所以我们在生产实际搭建mongodb集群...

linjin200
09/12
28
0
mongodb-4.0.4搭建集群

mongodb-4.0.4搭建集群 2018年12月12日 15:32:12 张益达· 阅读数 365更多 分类专栏: centos7环境搭建 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接...

linjin200
09/17
19
0
MongoDB深圳用户组线下活动来了

MongoDB线下用户组是由全世界MongoDB爱好者发起的不定期线下交流活动。目前全球有100多个MongoDB用户组,3万5千多爱好者参与。用户组活动的形式通常会有一到两个MongoDB相关的技术分享。分享...

MongoDB中文社区
2016/07/02
36
0

没有更多内容

加载失败,请刷新页面

加载更多

360常用小工具分享 独立版 360驱动网卡版

有些朋友为了修复断网或者修复LSP,都会选择去下载360,用完再删除有些麻烦。所以自己收集了18个实用小工具独立版本方便坛友使用。只做分享,不喜勿喷。 360驱动网卡版:链接: https://pan.b...

xiaogg
2分钟前
0
0
批量删除表中某字段

select * from information_schema.columns where table_schema='erp-zyjsgx-v2' and column_name='manageflag'; alter table jz_xiangmudj drop column manageflag;......

glen_xu
3分钟前
1
0
JavaScript面试题总结系列(八)

8. JavaScript - this对象 this对象 this总是指向函数的直接调用者(而非间接调用者) 如果有new关键字,this指向new出来的那个对象 在事件中,this指向触发这个事件的对象,特殊的是,IE中的...

张森ZS
6分钟前
0
0
Apache Camel Spring Boot

Camel应用初始化 Apache Camel 采用的是组件化的设计思想,通过Camel Component对接第三方的应用,Camel核心模块会扫描classpath 加载这些Camel Component。 Camel应用在启动的过程中,需要将...

WillemJiang
8分钟前
2
0
数据管理必看!Kendo UI for jQuery过滤器状态保持

Kendo UI for jQuery最新试用版下载 Kendo UI目前最新提供Kendo UI for jQuery、Kendo UI for Angular、Kendo UI Support for React和Kendo UI Support for Vue四个控件。Kendo UI for jQue......

FILA6666
21分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部