rs.initiate()
说明
rs.initiate(configuration)
启动 副本集 。或者,该方法可以采用包含副本集配置的文档形式的参数。
重要
mongosh 方法
本页面提供
mongosh
方法的相关信息。这不是数据库命令或特定语言驱动程序(例如 Node.js)的相关文档。有关数据库命令,请参阅
replSetInitiate
命令。如需了解 MongoDB API 驱动程序,请参阅特定语言的 MongoDB 驱动程序文档。
rs.initiate()
方法具有以下参数:Parameter类型说明configuration
文档可选。指定新副本集的配置的文档。如果未指定配置,MongoDB 会使用默认副本集配置。
IP 绑定
警告
将实例绑定到可公开访问的 IP 地址之前,必须保护集群免遭未经授权的访问。有关安全建议的完整列表,请参阅自管理部署的安全清单。至少应考虑启用身份验证和强化网络基础设施。
MongoDB 二进制文件 mongod
和 mongos
默认绑定到本地主机。如果为此二进制文件设置了 net.ipv6
配置文件设置或 --ipv6
命令行选项,则该二进制文件还会绑定到本地主机 IPv6 地址。
默认情况下,绑定到本地主机的 mongod
和 mongos
只接受来自同一计算机上运行的客户端的连接。这种绑定行为包括 mongosh
和副本集或分片集群的其他节点。远程客户端无法连接到仅绑定到本地主机的二进制文件。
要覆盖默认绑定并绑定到其他 IP 地址,请使用 net.bindIp
配置文件设置或 --bind_ip
命令行选项来指定主机名或 IP 地址的列表。
警告
从 MongDB5.0 开始, 水平分割 DNS 仅配置了 IP 地址的节点无法启动验证并报告错误。请参阅disableSplitHorizonIPCheck
。
例如,以下 mongod
实例会绑定到本地主机和主机名 My-Example-Associated-Hostname
,而该主机名与 IP 地址 198.51.100.1
相关联:
mongod --bind_ip localhost,My-Example-Associated-Hostname
为了连接到此实例,远程客户端必须指定主机名或其关联的 IP 地址 198.51.100.1
:
mongosh --host My-Example-Associated-Hostname mongosh --host 198.51.100.1
副本集配置
有关副本集配置文档的详细信息,请参阅副本集配置文档示例。
重要
要避免因 IP 地址变更而更新配置,请使用 DNS 主机名而非 IP 地址。在配置副本集成员或分片集群成员时,使用 DNS 主机名而非 IP 地址尤为重要。
在水平分割网络配置下,请使用主机名而非 IP 地址来配置集群。从 MongoDB 5.0 开始,仅配置了 IP 地址的节点将无法通过启动验证,因而不会启动。
例子
以下示例启动一个包含三个节点的新副本集。
三个 mongod
实例必须启动时必须将 --replSet
命令行选项(如果使用配置文件,则为 replication.replSetName
)设置为 myReplSet
,并将 --bind_ip
(如果使用配置文件,则为 net.bindIp
)设置得当,以便副本集的其他节点和客户端可以连接。
警告
将实例绑定到可公开访问的 IP 地址之前,必须保护集群免遭未经授权的访问。有关安全建议的完整列表,请参阅自管理部署的安全清单。至少应考虑启用身份验证和强化网络基础设施。
将 mongosh
连接到其中一个 mongod
实例并运行 rs.initiate()
。
注意
在副本集的仅一个 mongod
实例上运行 rs.initiate()
。
重要
要避免因 IP 地址变更而更新配置,请使用 DNS 主机名而非 IP 地址。在配置副本集成员或分片集群成员时,使用 DNS 主机名而非 IP 地址尤为重要。
在水平分割网络配置下,请使用主机名而非 IP 地址来配置集群。从 MongoDB 5.0 开始,仅配置了 IP 地址的节点将无法通过启动验证,因而不会启动。
rs.initiate( { _id: "myReplSet", version: 1, members: [ { _id: 0, host : "mongodb0.example.net:27017" }, { _id: 1, host : "mongodb1.example.net:27017" }, { _id: 2, host : "mongodb2.example.net:27017" } ] } )
有关副本集配置的详细信息,请参阅副本集配置字段。
有关部署副本集的详细信息,请参阅部署自管理副本集。