一个mongodb分片集群有多种角色,该如何启动呢?对于生产环境不必经常考虑,但对于使用VM来练手环境来说是每天都必须考虑的事情。
mongodb sharding cluster有三种角色
mongodb shard (数据分片)
mongos (路由)
mongdob config(元数据)
了解到集群角色后,大概可以得到一个逻辑:
1.mongos路由是对外服务的,集群就绪后才能提供对外服务,所以路由应该最后启动
2.mongos路由是对外服务的,集群需要优雅的关闭,需要先保证没有新的连接进来,所以应该最先关闭
3.config配置服务器存储分片信息,平衡器管理chunk迁移平衡数据,所以应该优于sharding启动;晚于sharding关闭,不然config关闭了,sharding数据分布就该不一致了
启动顺序
启动config配置服务器
在node01,node02,node03上执行
mongod -f /data/mongodb/config/conf/config.conf
启动sharding分片副本集
在node01,node02,node03上执行
mongod -f /data/mongodb/standalone/conf/mongo.conf
mongod -f /data/mongodb/rs02/conf/mongo.conf
mongod -f /data/mongodb/rs03/conf/mongo.conf
启动mongos
在node01,node02上执行
mongos -f /data/mongodb/mongos/conf/mongos.conf
注:具体按自己集群的拓扑来执行.
停止顺序
关闭mongos服务器
所有节点:node01,node02
mongo --port 27000 --host 127.0.0.1
use admin
db.auth("admin","Admin@01");
db.shutdownServer()er()
关闭sharding分片副本集
先secondary再primary
#shard rs01
mongo --port 27017 --host 127.0.0.1
use admin
db.auth("rs01Admin","Admin@01");
db.shutdownServer()
#shard rs02
mongo --port 27018 --host 127.0.0.1
use admin;
db.auth("rs02Admin","Admin@01");
db.shutdownServer()
#shard rs03
mongo --port 27019 --host 127.0.0.1
use admin;
db.auth("rs03Admin","Admin@01");
db.shutdownServer()
关闭config配置服务器
先secondary再primary
mongo --port 27100 --host 127.0.0.1
use admin
db.auth("admin","Admin@01");
db.shutdownServer()
我的端口配置如下:
sharding:27017,27018,27019
mongos:27000
config:27100
注:如管理权限不够,可以clusterAdmin权限
db.grantRolesToUser("rs02Admin", [ { role:"clusterAdmin", db: "admin"} ])
db.grantRolesToUser("rs03Admin", [ { role:"clusterAdmin", db: "admin"} ])
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




