MongoDB 入门专栏
http://blog.csdn.net/column/details/19681.html
MongoDB 副本集
MongoDB 副本集是将数据同步在多个服务器的过程,
复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性,同时
还允许从硬件故障和服务中断中恢复数据。
mongodb 的复制至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据,主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。
这样一个数据冗余系统中,主节点和所有从节点组成一个副本集,mongodb 的副本集拥有以下特点:
- N 个节点的集群
- 任何节点可作为主节点
- 所有写入操作都在主节点上
- 自动故障转移
- 自动恢复
mongodb 副本集的设置
副本集的启动,和从节点加入到副本集的操作,只能在主节点上完成,但是主节点随时否可以转移到其他从节点;
启动一个副本集系统的基本步骤如下:
- 在主节点启动 mongod 服务时,可以使用 --replSet 启动副本集,同时指定副本集名称;
- 连接主节点,初始化新的副本集;
- 启动各个从节点 mongod 服务,同时这些从从节点也创建和必须初始化副本集,使用同一个副本集 id;
- 在主节点将这些从节点加入主节点副本集;
以下演示 3 个 mongodb 创建一个副本集系统
1)主节点启动 mongod 服务:
# 启动 mongodb 服务,设置副本集 rs0
$ mongod --port 27017 --dbpath "/var/run/mongodb/data" --replSet rs0
2) 2 个从节点分别启动 mongod 服务
$ mongod --port 27017 --dbpath