复制是跨多个服务器同步数据的过程中。复制提供了冗余和增加数据可用性与不同的数据库服务器上的数据的多个副本,复制保护数据库从一台服务器上的损失。复制也可以让恢复硬件故障和服务中断。额外的数据副本,可以奉献一到灾难恢复,报告,或备份。
MongoDB 使用副本集达到复制。副本集是一组 mongod 实例,主机相同的数据集。副本中的一个节点,主节点接收所有的写操作。在所有其他情况下,次要节点,适用于从主操作,以使它们具有相同的数据集。副本集只能有一个主节点。
MongoDB 复制是一个典型的图显示在客户端应用程序总是与主节点和主节点,然后将数据复制到二级节点。
在本教程中,我们将mongod实例转换成独立的副本集。要转换到副本设置遵循以下步骤:
现在启动MongoDB服务器通过指定 --replSet 选项。 --replSet 基本语法如下:
mongod --port "PORT" --dbpath "YOUR_DB_DATA_PATH" --replSet "REPLICA_SET_INSTANCE_NAME"
mongod --port 27017 --dbpath "D:/set up/mongodb/data" --replSet rs0
它会启动一个mongod 实例名称rs0 ,端口为27017。启动命令提示符 rs.initiate(),并连接到这个mongod实例。在mongod客户端执行命令rs.initiate()启动一个新的副本集。要检查副本集的配置执行命令rs.conf()。要检查的状态副本sete执行命令:rs.status()。
将成员添加到副本集,在多台机器上启动mongod 实例。现在开始一个mongod 客户和发出命令 rs.add().
rs.add()命令的基本语法如下:
>rs.add(HOST_NAME:PORT)
假设mongod实例的名字是mongod1.net它运行端口为27017。这种情况下,到副本集执行的命令rs.add() 在mongod 客户端。
>rs.add("mongod1.net:27017") >
可以添加mongod实例副本设置,只有当连接到主节点。要检查是否连接至初级或mongo 客户端不执行命令db.isMaster()。