分片部署
分片部署就是要将几个不同的副本集联系起来。现在部署一个有三个配置服务器,一个mongos,一个分片的集群。
1.部署配置服务器,三个配置服务器的配置文件分别为:配置服务器也是mongod实例,所以需要在配置文件中指示其作为配置服务器运行,加上选项
不应该有选项
replSet=rs0
因为它不是作为副本集的节点运行。
设三个配置服务器的hostname分别为: hostname_config_1, hostname_config_2, hostname_config_3,端口分别为:4444, 5555, 6666
启动三个配置服务器:
2.部署mongos服务器,设其hostname为host_name_mongos,端口为8888。其配置文件路径为config_path_mongos,由于mongos不存储数据,所以不需要dbpath 选项。同时由于mongos要从配置服务器上获取集群的配置信息,所以需要制定配置服务器的hostname和端口,加上选项configdb
启动mongos服务器
mongos -f config_path_mongos
注意这里是mongos,不是mongod。不是我打错字了!
3.在mongos所在机器登陆mongos服务器
mongo –port 8888
此时,运行
sh.status()
你会发现,shards一项里什么都没有,这是因为我们还没有给这个集群加分片。
4.添加rs0成为集群的分片
这里括号里面只需要是副本集名加上一个副本集中的成员即可,不一定要是primary节点。如:
也是可以的。如果得到如下结果:
{“shardAdded” : “rs1”, “ok” : 1}
那么添加分片节点成功了。现在再运行

sh.status()
得到的结果为


shards不为空了,rs成为了一个shard节点
权限认证设置
权限认证是非常重要的,生产环境中的集群必需有权限认证,而且需要比较严格的权限认证。
1.创建第一个用户
在上面部署成功的集群上执行以下步骤,在数据库admin中创建第一个具有最高root权限的用户root:
2.关闭所有上面部署的节点,可以用
db.shutdownServer()
也可以暴力kill
3.产生keyFile,并复制到每个运行集群节点的服务器上。
4.在每个节点的配置文件中加上选项:
keyFile = <key_file_path>
5.在出mongos外的所有节点的配置文件中加上选项
6.重启所有节点,到此权限认证已经搞完了,现在就可以插入数据库,并按需求添加用户,赋予相应的权限。进行认证授权的函数为db.auth(), 例如:
此时拥有root权限,可以进行一切操作。
- 其实三个节点可以分为两种角色: 存储数据的节点(primary和secondary), 不存储数据的节点(arbiter), primary和secondary角色在存储数据的节点间是动态变化的。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/178309.html