[KB225924550092186功能解说] 如何将MongoDB设置到另一台副本(备份)服务器?
[b]* 本文由赛捷软件(上海)有限公司翻译完成,未经授权不得转载。如需转载,请先联系相应版块的版主取得授权。如何将MongoDB设置到另一台副本(备份)服务器?[/b]
创建日期:2022-05-02
最后修改日期:2022-05-02
[b]描述[/b]
MongoDB副本集的自动管理功能从以下Syracuse版本开始提供:
• PU9:从Syracuse 9.14起(发布于2019年3月25日)
• V11:从Syracuse 11.13起(发布于2018年12月14日)
• V12:从正式发布版开始,即V12 P15 / 2018 R9(发布于2018年12月14日,标记为2018 R9)
[b]解决方法[/b]
请查阅在线帮助。
几个关键注意事项:
• 建议MongoDB集群至少使用3个节点
• 建议将Syracuse和MongoDB部署在同一台机器上
• 建议为ElasticSearch使用不同的服务器集群,因为它非常消耗内存
• MongoDB集群提供内置的自动故障转移,无需在外部另行设置
• 副本集
o在不同的物理机器上安装MongoDB
o为集群开放相关端口
o服务应使用 .conf文件
o编辑mongodb.conf文件:添加一个名为[b]replication[/b]的段落和一个参数replSetName
replication:
replSetName: “ReplicaName”
• 配置副本集:
o在命令提示符下,启动mongo工具。输入以下命令:
rs.initiate() // initialize replicaset
rs.add(my.second.node.com:port) // add second nodes to replicaset
rs.add(my.third.node.com:port) // add third node to replicaset
• 检查副本集配置和状态:
rs.conf() // returns replicaset configuration
rs.status() // returns replicaset status
将现有独立数据库转换为副本集时,步骤相同,只是命令必须在现有的初始服务器上运行。
• 只要所有Web服务器共享同一个MongoDB集群,Syracuse即可作为集群正常运行。
o[b]方案1[/b]:每台Syracuse服务器都与MongoDB部署在同一台服务器上,且MongoDB也以集群方式部署。安装每台Syracuse服务器时,选择“现有MongoDB”——这将使用同一台机器上的MongoDB实例。
o[b]方案2[/b]:先部署Syracuse服务器,然后编辑nodelocal.js文件,定义包含集群中各MongoDB服务器的连接URL。
o在所有情况下,每台Syracuse服务器的nodelocal.js中都必须定义以下选项:
config: {
collaboration: { connectionString: “host1:port1,host2:port2,…” },
mongodb: {
options: DB: { w: 1 },
server: {},
replSet: { rs_name: “replica_name” },
mongos: {}
}
}
• Syracuse负载均衡器
o[b]方案1[/b]:内部负载均衡器——自动管理机器之间的负载均衡。在服务器故障时,不提供任何DNS切换。
o[b]方案2[/b]:外部负载均衡器——使用内部负载均衡器管理单台服务器内的多个Node子进程(在本机内),并使用外部负载均衡器管理机器之间的负载均衡。DNS切换、机器自动启动/停止及相关参数都需要在nodelocal.js中设置。
config.hosting.localBalancer: true ;
• ElasticSearch集群
o修改配置,将所有ElasticSearch节点的cluster.name参数设置为所需的值。
oSyracuse将被配置为引用其中一个ElasticSearch节点。如果该节点发生故障,不会自动切换。
页:
[1]