
分片部署
分片部署就是要将几个不同的副本集联系起来。现在部署一个有三个配置服务器,一个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。不是我打错字了!
sh.status()
你会发现,shards一项里什么都没有,这是因为我们还没有给这个集群加分片。
4.添加rs0成为集群的分片
这里括号里面只需要是副本集名加上一个副本集中的成员即可,不一定要是primary节点。如:
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角色在存储数据的节点间是动态变化的。
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/sjkxydsj/12659.html