【Mongodb】分片复制集环境添加新的分片
1.每个节点上分别创建新的shard3配置文件
[root@ip-10-1-2-68 etc]# more shard3.conf
logpath=/usr/local/mongodb/logs/mongo_shard3.log
logappend=true # need logrotae scripts
fork=true
journal=true
port=27017
#vvvvv = true
#diaglog = 3
dbpath=/usr/local/mongodb/shard3
pidfilepath=/usr/local/mongodb/logs/mongo_shard3.pid
bind_ip=10.1.2.68 ---bind ip 修改为自己的机器
replSet=shard3
shardsvr=true
2. 每个节点启动shard3 服务
[root@ip-10-1-2-68 etc]# /usr/local/mongodb/bin/mongod -f shard3.conf
3.登陆第一个节点,搭建shard3的复制集
[root@ip-10-1-2-32 etc]# /usr/local/mongodb/bin/mongo 10.1.2.32:27017
MongoDB shell version v3.6.4
connecting to: mongodb://10.1.2.32:27017/test
MongoDB server version: 3.6.4
Server has startup warnings:
2018-05-08T03:26:23.290+0000 I CONTROL [initandlisten]
2018-05-08T03:26:23.290+0000 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2018-05-08T03:26:23.290+0000 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2018-05-08T03:26:23.290+0000 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2018-05-08T03:26:23.290+0000 I CONTROL [initandlisten]
2018-05-08T03:26:23.290+0000 I CONTROL [initandlisten]
2018-05-08T03:26:23.290+0000 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2018-05-08T03:26:23.290+0000 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2018-05-08T03:26:23.290+0000 I CONTROL [initandlisten]
2018-05-08T03:26:23.290+0000 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2018-05-08T03:26:23.290+0000 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2018-05-08T03:26:23.290+0000 I CONTROL [initandlisten]
> config_rs3 = {_id: 'shard3', members: [{_id: 0, host: '10.1.2.32:27017', priority:1}, {_id: 1, host: '10.1.2.68:27017'},{_id: 2, host: '10.1.2.175:27017'}]}
{
"_id" : "shard3",
"members" : [
{
"_id" : 0,
"host" : "10.1.2.32:27017",
"priority" : 1
},
{
"_id" : 1,
"host" : "10.1.2.68:27017"
},
{
"_id" : 2,
"host" : "10.1.2.175:27017"
}
]
}
> rs.initiate(config_rs3);
{ "ok" : 1 }
4.登陆第一个节点的mongs端口,将shard3分片加入分片组
[root@ip-10-1-2-32 etc]# /usr/local/mongodb/bin/mongo 10.1.2.32:30000
MongoDB shell version v3.6.4
connecting to: mongodb://10.1.2.32:30000/test
MongoDB server version: 3.6.4
Server has startup warnings:
2018-05-03T07:47:09.379+0000 I CONTROL [main]
2018-05-03T07:47:09.379+0000 I CONTROL [main] ** WARNING: Access control is not enabled for the database.
2018-05-03T07:47:09.379+0000 I CONTROL [main] ** Read and write access to data and configuration is unrestricted.
2018-05-03T07:47:09.379+0000 I CONTROL [main] ** WARNING: You are running this process as the root user, which is not recommended.
2018-05-03T07:47:09.379+0000 I CONTROL [main]
mongos> use admin;
switched to db admin
mongos> db.runCommand({ addshard: 'shard3/10.1.2.32:27017,10.1.2.68:27017,10.1.2.175:27017'})
{
"shardAdded" : "shard3",
"ok" : 1,
"$clusterTime" : {
"clusterTime" : Timestamp(1525750332, 7),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
},
"operationTime" : Timestamp(1525750332, 7)
}
mongos> db.printShardingStatus(); ---查看新的分片信息
--- Sharding Status ---
sharding version: {
"_id" : 1,
"minCompatibleVersion" : 5,
"currentVersion" : 6,
"clusterId" : ObjectId("5aeabc4db192a4fefca1c888")
}
shards:
{ "_id" : "shard1", "host" : "shard1/10.1.2.175:27019,10.1.2.32:27019,10.1.2.68:27019", "state" : 1 }
{ "_id" : "shard2", "host" : "shard2/10.1.2.175:27018,10.1.2.32:27018,10.1.2.68:27018", "state" : 1 }
{ "_id" : "shard3", "host" : "shard3/10.1.2.175:27017,10.1.2.32:27017,10.1.2.68:27017", "state" : 1 }
active mongoses:
"3.6.4" : 3
autosplit:
Currently enabled: yes
balancer:
Currently enabled: yes
Currently running: no
Failed balancer rounds in last 5 attempts: 0
Migration Results for the last 24 hours:
No recent migrations
databases:
{ "_id" : "config", "primary" : "config", "partitioned" : true }
config.system.sessions
shard key: { "_id" : 1 }
unique: false
balancing: true
chunks:
shard1 1
{ "_id" : { "$minKey" : 1 } } -->> { "_id" : { "$maxKey" : 1 } } on : shard1 Timestamp(1, 0)
{ "_id" : "test", "primary" : "shard2", "partitioned" : true }
test.users
shard key: { "_id" : 1 }
unique: false
balancing: true
chunks:
shard2 1
{ "_id" : { "$minKey" : 1 } } -->> { "_id" : { "$maxKey" : 1 } } on : shard2 Timestamp(1, 0)
5、设置均衡器
# 查看状态
mongos> sh.isBalancerRunning();
false
# 设置均衡器
mongos> sh.setBalancerState(true);
mongos> sh.enableBalancing("bg")mongos> sh.getBalancerState()
true
参考:https://docs.mongodb.com/manual/reference/method/sh.getBalancerState/
[root@ip-10-1-2-68 etc]# more shard3.conf
logpath=/usr/local/mongodb/logs/mongo_shard3.log
logappend=true # need logrotae scripts
fork=true
journal=true
port=27017
#vvvvv = true
#diaglog = 3
dbpath=/usr/local/mongodb/shard3
pidfilepath=/usr/local/mongodb/logs/mongo_shard3.pid
bind_ip=10.1.2.68 ---bind ip 修改为自己的机器
replSet=shard3
shardsvr=true
2. 每个节点启动shard3 服务
[root@ip-10-1-2-68 etc]# /usr/local/mongodb/bin/mongod -f shard3.conf
3.登陆第一个节点,搭建shard3的复制集
[root@ip-10-1-2-32 etc]# /usr/local/mongodb/bin/mongo 10.1.2.32:27017
MongoDB shell version v3.6.4
connecting to: mongodb://10.1.2.32:27017/test
MongoDB server version: 3.6.4
Server has startup warnings:
2018-05-08T03:26:23.290+0000 I CONTROL [initandlisten]
2018-05-08T03:26:23.290+0000 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2018-05-08T03:26:23.290+0000 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2018-05-08T03:26:23.290+0000 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2018-05-08T03:26:23.290+0000 I CONTROL [initandlisten]
2018-05-08T03:26:23.290+0000 I CONTROL [initandlisten]
2018-05-08T03:26:23.290+0000 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2018-05-08T03:26:23.290+0000 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2018-05-08T03:26:23.290+0000 I CONTROL [initandlisten]
2018-05-08T03:26:23.290+0000 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2018-05-08T03:26:23.290+0000 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2018-05-08T03:26:23.290+0000 I CONTROL [initandlisten]
> config_rs3 = {_id: 'shard3', members: [{_id: 0, host: '10.1.2.32:27017', priority:1}, {_id: 1, host: '10.1.2.68:27017'},{_id: 2, host: '10.1.2.175:27017'}]}
{
"_id" : "shard3",
"members" : [
{
"_id" : 0,
"host" : "10.1.2.32:27017",
"priority" : 1
},
{
"_id" : 1,
"host" : "10.1.2.68:27017"
},
{
"_id" : 2,
"host" : "10.1.2.175:27017"
}
]
}
> rs.initiate(config_rs3);
{ "ok" : 1 }
4.登陆第一个节点的mongs端口,将shard3分片加入分片组
[root@ip-10-1-2-32 etc]# /usr/local/mongodb/bin/mongo 10.1.2.32:30000
MongoDB shell version v3.6.4
connecting to: mongodb://10.1.2.32:30000/test
MongoDB server version: 3.6.4
Server has startup warnings:
2018-05-03T07:47:09.379+0000 I CONTROL [main]
2018-05-03T07:47:09.379+0000 I CONTROL [main] ** WARNING: Access control is not enabled for the database.
2018-05-03T07:47:09.379+0000 I CONTROL [main] ** Read and write access to data and configuration is unrestricted.
2018-05-03T07:47:09.379+0000 I CONTROL [main] ** WARNING: You are running this process as the root user, which is not recommended.
2018-05-03T07:47:09.379+0000 I CONTROL [main]
mongos> use admin;
switched to db admin
mongos> db.runCommand({ addshard: 'shard3/10.1.2.32:27017,10.1.2.68:27017,10.1.2.175:27017'})
{
"shardAdded" : "shard3",
"ok" : 1,
"$clusterTime" : {
"clusterTime" : Timestamp(1525750332, 7),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
},
"operationTime" : Timestamp(1525750332, 7)
}
mongos> db.printShardingStatus(); ---查看新的分片信息
--- Sharding Status ---
sharding version: {
"_id" : 1,
"minCompatibleVersion" : 5,
"currentVersion" : 6,
"clusterId" : ObjectId("5aeabc4db192a4fefca1c888")
}
shards:
{ "_id" : "shard1", "host" : "shard1/10.1.2.175:27019,10.1.2.32:27019,10.1.2.68:27019", "state" : 1 }
{ "_id" : "shard2", "host" : "shard2/10.1.2.175:27018,10.1.2.32:27018,10.1.2.68:27018", "state" : 1 }
{ "_id" : "shard3", "host" : "shard3/10.1.2.175:27017,10.1.2.32:27017,10.1.2.68:27017", "state" : 1 }
active mongoses:
"3.6.4" : 3
autosplit:
Currently enabled: yes
balancer:
Currently enabled: yes
Currently running: no
Failed balancer rounds in last 5 attempts: 0
Migration Results for the last 24 hours:
No recent migrations
databases:
{ "_id" : "config", "primary" : "config", "partitioned" : true }
config.system.sessions
shard key: { "_id" : 1 }
unique: false
balancing: true
chunks:
shard1 1
{ "_id" : { "$minKey" : 1 } } -->> { "_id" : { "$maxKey" : 1 } } on : shard1 Timestamp(1, 0)
{ "_id" : "test", "primary" : "shard2", "partitioned" : true }
test.users
shard key: { "_id" : 1 }
unique: false
balancing: true
chunks:
shard2 1
{ "_id" : { "$minKey" : 1 } } -->> { "_id" : { "$maxKey" : 1 } } on : shard2 Timestamp(1, 0)
5、设置均衡器
# 查看状态
mongos> sh.isBalancerRunning();
false
# 设置均衡器
mongos> sh.setBalancerState(true);
mongos> sh.enableBalancing("bg")mongos> sh.getBalancerState()
true
参考:https://docs.mongodb.com/manual/reference/method/sh.getBalancerState/
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。