MongoDB 主从复制是指,在 MongoDB 中有一主节点(primary),多个从节点(secondary),主节点接收来自客户端的数据写入请求,然后将写入操作复制到从节点上,从而保证数据的高可用性和高可靠性。
而 MongoDB 副本集则是一组能够提供相同数据的 MongoDB 服务器。MongoDB 副本集通常包括多个节点,其中一个节点被定义为主节点,接受所有写入操作,其他节点则是从节点,主要用于数据备份和查询。当主节点不可用时,从节点可以自动接管。
以下是 MongoDB 主从复制及副本集的配置教程:
- 配置主节点
首先,您需要在 MongoDB 中选择一个节点作为主节点。在选择主节点之前,请确保所有节点的主机名和端口号都正确。在主节点,您需要打开 MongoDB 配置文件,找到以下行:
# replication:
# replSetName: "rs0"
将上述行解除注释,并将 rs0 更改为副本集的名称。如下所示:
replication:
replSetName: "myReplicaSet"
保存并关闭配置文件,并重新启动 MongoDB 服务器。接下来,您需要打开 MongoDB 客户端,使用以下命令连接到 MongoDB:
mongo --host [主节点IP] --port [端口号]
在 MongoDB 客户端中,运行以下命令以初始化副本集:
rs.initiate()
- 配置从节点
在从节点上,您需要打开 MongoDB 配置文件,找到以下行:
# replication:
# replSetName: "rs0"
将上述行解除注释,并将 rs0 更改为副本集的名称。如下所示:
replication:
replSetName: "myReplicaSet"
保存并关闭配置文件,并重新启动 MongoDB 服务器。连接 MongoDB 客户端并使用以下命令添加从节点:
rs.add("[从节点IP]:[端口号]")
如果您要添加多个从节点,请重复以上步骤即可。您还可以将一个从节点指定为优先级更高的成员,这样,如果主节点不可用,则自动将该从节点提升为主节点。在主节点中,使用以下命令指定该从节点的优先级:
cfg = rs.conf()
cfg.members[n].priority = 2
rs.reconfig(cfg)
- 测试主从复制
要测试主从复制是否正常工作,请在主节点上执行写入操作。然后,在从节点上查询数据。您应该能够看到刚刚写入的数据。如果所有节点都可以正常工作,则主从复制将正常运行。
以下是一个示例:
- 配置主节点
在主节点上,打开 MongoDB 配置文件并找到以下行:
# replication:
# replSetName: "rs0"
将上述行解除注释并将 rs0 更改为 myReplicaSet。如下所示:
replication:
replSetName: "myReplicaSet"
保存并关闭配置文件,并启动 MongoDB 服务器。接下来,使用以下命令连接到主节点:
mongo --host 192.168.0.1 --port 27017
在 MongoDB 客户端中,运行以下命令以初始化副本集:
rs.initiate()
- 配置从节点
在从节点上,打开 MongoDB 配置文件并找到以下行:
# replication:
# replSetName: "rs0"
将上述行解除注释并将 rs0 更改为 myReplicaSet。如下所示:
replication:
replSetName: "myReplicaSet"
保存并关闭配置文件,并启动 MongoDB 服务器。接下来,使用以下命令连接到从节点并将其添加到副本集中:
mongo --host 192.168.0.2 --port 27017
在 MongoDB 客户端中,运行以下命令以添加从节点:
rs.add("192.168.0.2:27017")
将 192.168.0.2 更改为从节点的 IP 地址,并将 27017 更改为 MongoDB 实例的端口号。
- 测试主从复制
要测试主从复制是否正常工作,在主节点上执行以下命令:
use myDatabase
db.myCollection.insertOne({name: "Alice", age: 26})
然后在从节点上查询刚刚创建的文档:
use myDatabase
db.myCollection.find()
如果主从复制正常工作,则您将能够在从节点上看到刚刚插入的文档。
另一个示例详见https://www.mongodb.com/blog/post/quick-start-c-sharp-and-mongodb-starting-and-setup
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MongoDB的主从复制及副本集的replSet配置教程 - Python技术站