标签:
三台mongo数据节点机器(默认端口27107,这里一台机器存了多份,故新起端口):
10.13.2.51:10001/10002/10003
10.13.2.52:10001/10002/10003
10.13.2.151:10001/10002/10003
一台mongos机器:
10.13.2.112:27107
三台config机器:
10.13.2.91:27109
10.13.2.92:27109
10.13.2.102:27109
shard1/10.13.2.151:10001,10.13.2.51:10001,10.13.2.52:10001
shard2/10.13.2.151:10002,10.13.2.51:10002,10.13.2.52:10002
shard3/10.13.2.151:10003,10.13.2.51:10003,10.13.2.52:10003
useradd mongodb # 建议用mongodb用户 echo never > /sys/kernel/mm/transparent_hugepage/enabled #mongodb建议为never echo never > /sys/kernel/mm/transparent_hugepage/defrag #mongodb建议为never 关闭防火墙
1. 三台数据节点 分别执行
1. mkdir log db db/shard1 db/shard2 db/shard3 # 创建必要的文件夹 2. bin/mongod --dbpath /home/data/mongodb/db/shard1 --port 10001 --replSet shard1 --logpath log/mongodb1.log --logappend --fork # 后台启动mongodb服务
2.连接到mongo配置replica set
1. bin/mongo 10.13.2.151:10001 2. config = {_id:"shard1", members: [ {_id: 0, host:"10.13.2.151:10001"}, {_id: 1, host:"10.13.2.51:10001"}, {_id: 2, host:"10.13.2.52:10001"} ] }; 3. rs.initiate(config)
1. 三台config机器上分别执行
1. mkdir log configdb 2. bin/mongod --configsvr --dbpath /home/data/mongodb/configdb --logpath log/mongodb.log --logappend --fork
1. mongos机器上执行
1. mkdir log 2. bin/mongos --configdb 10.13.2.91:27019,10.13.2.92:27019,10.13.2.102:27019 --logpath log/mongodb.log --logappend --fork
1. 连接mongos,加入shard1
1. bin/mongo 10.13.2.112:27017/admin 2. sh.addShard( "shard1/10.13.2.151:10001,10.13.2.51:10001,10.13.2.52:10001" )
首先创建shard2,同上“创建第一个replica set”
1. 三台数据节点 分别执行
1. bin/mongod --dbpath /home/data/mongodb/db/shard2 --port 10002 --replSet shard2 --logpath log/mongodb2.log --logappend --fork # 后台启动mongodb服务
2.连接到mongo配置replica set
1. bin/mongo 10.13.2.151:10002 2. config = {_id:"shard2", members: [ {_id: 0, host:"10.13.2.151:10002"}, {_id: 1, host:"10.13.2.51:10002"}, {_id: 2, host:"10.13.2.52:10002"} ] }; 3. rs.initiate(config)
创建完后添加shard2
1. bin/mongo 10.13.2.112:27017/admin 2. sh.addShard( "shard2/10.13.2.151:10002,10.13.2.51:10002,10.13.2.52:10002" )
首先创建shard3,同上“创建第一个replica set”
1. 三台数据节点 分别执行
1. bin/mongod --dbpath /home/data/mongodb/db/shard3 --port 10003 --replSet shard3 --logpath log/mongodb3.log --logappend --fork # 后台启动mongodb服务
2.连接到mongo配置replica set
1. bin/mongo 10.13.2.151:10003 2. config = {_id:"shard2", members: [ {_id: 0, host:"10.13.2.151:10003"}, {_id: 1, host:"10.13.2.51:10003"}, {_id: 2, host:"10.13.2.52:10003"} ] }; 3. rs.initiate(config)
创建完后添加shard3
1. bin/mongo 10.13.2.112:27017/admin 2. sh.addShard( "shard3/10.13.2.151:10003,10.13.2.51:10003,10.13.2.52:10003" )
下面以test为例
1. 连接mongos
bin/mongo 10.13.2.112:27017/admin
2. 开启数据库分片
sh.enableSharding( "test" )
3. 创建片键 - (此处片键很重要,关于数据如何分片,一般都是取本身_id作为片键,业务相关根据业务自己组合片键)
1. use test 2. db.test_collection.createIndex( { number : 1 } ) # 这里以test_collection表里的number为片键
4. 开启数据库下面的表分片
1. use test 2. sh.shardCollection( "test.test_collection", { "number" : 1 } )
5. 查看分片状态,数据平衡的情况
1. use test 2. db.stats() 3. db.printShardingStatus()
over!
mongodb replica set + shard 安装
标签:
原文地址:http://my.oschina.net/u/914655/blog/421097