Mongodb 简明教程
MongoDB - Replication
复制是指在多个服务器之间同步数据的过程。复制提供冗余并且使用多个数据库服务器中的多份数据副本提高数据可用性。复制可以防止因单个服务器丢失而导致数据库丢失数据。复制还允许从硬件故障和服务中断中恢复。通过额外的数据副本,您可以分配一份副本到灾难恢复、报告或备份中。
Why Replication?
-
保证数据安全
-
高可用性(24*7)的数据
-
Disaster recovery
-
无需停机进行维护(如备份、索引重建、压缩)
-
读取扩展(可用于读取的额外副本)
-
副本集对应用程序是透明的
How Replication Works in MongoDB
MongoDB 通过使用副本集来实现复制。副本集是一组承载同一数据集的 mongod 实例。在副本中,一个节点是接收所有写入操作的主节点。所有其他实例(如辅助节点)都会从主节点应用操作,以便具有相同的数据集。副本集中只能有一个主节点。
-
副本集是一组由两个或更多个节点(通常最低需要 3 个节点)组成。
-
在副本集中,一个节点为主节点,其余节点为辅助节点。
-
所有数据都从主节点复制到辅助节点。
-
在自动故障转移或维护时,选举会建立用于主节点,并且会选出一个新的主节点。
-
故障节点恢复后,它会重新加入副本集,并作为辅助节点运行。
MongoDB 复制的典型示意图中,客户端应用程序始终与主节点交互,然后主节点将数据复制到辅助节点。
Replica Set Features
-
由 N 个节点组成的一个集群
-
任何一个节点都可以为主节点
-
所有写入操作都转到主节点
-
Automatic failover
-
Automatic recovery
-
Consensus election of primary
Set Up a Replica Set
在本教程中,我们将把独立的 MongoDB 实例转换为副本集。若要转换为副本集,请执行以下步骤:
-
关闭已运行的 MongoDB 服务器。
.
-
通过指定 --replSet 选项启动 MongoDB 服务器。以下是 --replSet 的基本语法:
mongod --port "PORT" --dbpath "YOUR_DB_DATA_PATH" --replSet "REPLICA_SET_INSTANCE_NAME"