将独立运行的自管理 mongod 转换为副本集
独立运行的 mongod
实例对于测试和开发非常有用。独立运行实例不是生产部署的良好选择,因为它可能出现单点故障。副本集也称为集群 ,提供冗余和可用性。始终在生产中使用副本集。
如果您有一台独立服务器,并且其中包含要在生产中使用的数据,请先将该独立服务器转换为副本集。
重要
如果将开发服务器转换为副本集供生产使用,那么在向互联网公开集群之前,请先查阅安全检查清单。
您可以轻松地从独立运行服务器迁移到 MongoDB Atlas集群。 MongoDB Atlas是针对云中MongoDB部署的完全托管服务。 要学习;了解更多信息,请参阅MongoDB Atlas文档中的迁移或导入数据。
开始之前
集群类型
在转换独立实例之前,请考虑是副本集还是分片集群更适合于您的工作负载。
分片集群是一种特殊的集群。分片集群提供冗余性和可用性;它还可以跨分片分发数据。分片通常托管在多个服务器上,并允许水平扩展。
授权
要对副本集使用授权,您还必须将副本集节点配置为使用 X.509 证书或密钥文件来执行内部身份验证。
有关更多信息,请参阅:
步骤
配置副本集节点
更新每台服务器上的配置文件并设置 replSetName
选项。
replication: replSetName: "rs0"
配置节点身份验证
为副本集中的每个服务器配置节点身份验证。
配置副本集以使用 X.509 证书进行内部节点身份验证。
设置 | 选项 | 说明 |
---|---|---|
设置要在身份验证中使用的 TLS模式。要将服务器配置为要求 X.509 证书身份验证,请将此选项设置为 requireTLS 。 | ||
设置包含客户端连接 TLS 证书的 .pem 文件路径。 | ||
设置包含证书颁发机构 (CA) 根证书链的文件路径。 | ||
设置包含集群节点连接的 TLS 证书的 .pem 文件的路径。 | ||
设置用于验证集群节点的模式。要使用 X.509 身份验证,请将此选项设置为 x509 。 |
例如:
replication: replSetName: "rs0" security: clusterAuthMode: x509 net: tls: mode: requireTLS certificateKeyFile: /etc/mongodb/client.pem CAFile: /etc/mongodb/ca.pem clusterFile: /etc/mongodb/member.pem
配置副本集以使用密钥文件进行内部节点身份验证。要进行身份验证,每个节点都必须拥有相同密钥文件的副本。
设置 | 选项 | 说明 |
---|---|---|
设置副本集密钥文件的路径。 |
例如:
replication: replSetName: "rs0" security: keyFile: /etc/mongodb/keyfile
在未经授权的情况下配置副本集。
警告
此配置只能用于无法通过网络访问的内部副本集。
设置 | 选项 | 说明 |
---|---|---|
设置 MongoDB 侦听客户端连接的主机名或IP地址。要阻止对服务器的网络访问,请将此选项设置为 localhost 。 |
例如:
replication: replSetName: "rs0" net: bindIp: localhost
启动 MongoDB。
为每个节点启动mongod
。
初始化副本集。
要初始化副本集,请使用 mongosh
重新连接到服务器实例。然后运行 rs.initiate()
。
rs.initiate()
您只需启动副本集一次。
要查看副本集配置,请使用rs.conf()
。
要查看副本集的状态,请使用 rs.status()
。
更新应用程序连接字符串。
将 mongod 转换为副本集后,将应用程序使用的连接字符串更新为副本集的连接字符串。然后,重新启动您的应用程序。