replSetInitiate
定义
replSetInitiate
(此处内容为空)
replSetInitiate
命令用于初始化一个新的副本集。提示
在
mongosh
中,此命令也可以通过rs.initiate()
辅助方法运行.辅助方法对
mongosh
用户来说很方便,但它们可能不会返回与数据库命令相同级别的信息。在不需要方便性或需要额外的返回字段的情况下,请使用数据库命令。要运行
replSetInitiate
,请使用db.runCommand( { <command> } )
方法。注意
请在副本集的
mongod
实例之一上运行该命令。
兼容性
此命令在以下环境中部署的部署中可用
MongoDB Atlas:适用于云中MongoDB部署的全托管服务
重要
此命令在M0、M2、M5和M10+集群中不受支持。有关更多信息,请参阅不受支持的命令。
MongoDB企业版:MongoDB的基于订阅的自托管版本
MongoDB社区版:MongoDB的开源、免费使用和自托管版本
语法
该命令具有以下语法
db.runCommand( { replSetInitiate : <config_document> } )
<config_document>
是一个指定副本集配置的文档。例如,以下是一个创建简单3成员副本集的配置文档
{ _id : <setname>, members : [ {_id : 0, host : <host0>}, {_id : 1, host : <host1>}, {_id : 2, host : <host2>}, ] }
重要
为了避免由于IP地址更改而导致的配置更新,请使用DNS主机名而不是IP地址。在配置副本集成员或分片集群成员时,特别重要的是使用DNS主机名而不是IP地址。
在跨越分割网络视域配置集群时,请使用主机名而不是IP地址。从MongoDB 5.0开始,仅配置了IP地址的节点将失败启动验证,并且不会启动。
IP绑定
MongoDB 二进制文件,mongod
和 mongos
默认绑定到本地主机。如果二进制文件设置了 net.ipv6
配置文件设置或 --ipv6
命令行选项,则二进制文件将额外绑定到本地主机 IPv6 地址。
默认情况下,仅绑定到本地主机的 mongod
和 mongos
仅接受运行在同一台计算机上的客户端的连接。这种绑定行为包括 mongosh
和您复制集或分片集群的其他成员。远程客户端无法连接到仅绑定到本地主机的二进制文件。
要覆盖默认绑定并绑定到其他 IP 地址,请使用 net.bindIp
配置文件设置或 --bind_ip
命令行选项来指定主机名或 IP 地址列表。
警告
从 MongoDB 5.0 开始,仅配置了 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
示例
将配置文档分配给一个变量,然后将文档传递给 rs.initiate()
辅助函数
config = { _id : "my_replica_set", members : [ {_id : 0, host : "rs1.example.net:27017"}, {_id : 1, host : "rs2.example.net:27017"}, {_id : 2, host : "rs3.example.net", arbiterOnly: true}, ] } rs.initiate(config)
重要
为了避免由于IP地址更改而导致的配置更新,请使用DNS主机名而不是IP地址。在配置副本集成员或分片集群成员时,特别重要的是使用DNS主机名而不是IP地址。
在跨越分割网络视域配置集群时,请使用主机名而不是IP地址。从MongoDB 5.0开始,仅配置了IP地址的节点将失败启动验证,并且不会启动。
注意,省略端口会导致主机使用默认端口 27017。同时,注意您还可以在配置文档中指定其他选项,如本例中的 arbiterOnly
设置。