C100DBA认证讲解 MongoDB 讲解-quick initiating new replica set member?
题目正文
which of the following is the recommended method for quickly initiating a new replica set member?
- Empty the dbpath directory for the new member to force an initial sync
- Mongodump a existing replica set member’s data and then mongorestore it to the new member
- Use the seed command
- Step up the new member to be the replica set primary
- Use a recent file system snapshot of an existing member with journaling turned on ,assuming the data files in the snapshot are more recent than the oldest operation in the primary’s oplog .
翻译:
以下哪个选项是被推荐的初始化一个新的replica set 复制集成员的?
- 为新成员清空dbpath路径下的文件,强制一个初始化同步
- mongodump一个replica set Member复制集成员的数据,并mongorestore到新成员
- 使用seed 命令
- 将新成员配置成replica set中的primary
- 使用一个现有成员的文件系统快照且需要启用了journaling ,假设快照中的数据文件要比primary的oplog中的最老的操作更新
官方文档对应的解释:
- Initial sync occurs when MongoDB creates new databases on a new or restored member, populating the member with the replica set’s data. When a new or restored member joins or rejoins a set, the member waits to receive heartbeats from other members. By default, the member syncs from theclosest member of the set that is either the primary or another secondary with more recent oplog entries. This prevents two secondaries from syncing from each other.
- Replication occurs continually after initial sync and keeps the member updated with changes to the replica set’s data.
http://docs.mongodb.org/v2.2/core/replication-internals/
Initial Sync
Initial sync copies all the data from one member of the replica set to another member. A member uses initial sync when the member has no data, such as when the member is new, or when the member has data but is missing a history of the set’s replication.
When you perform an initial sync, MongoDB:
-
Clones all databases. To clone, the mongod queries every collection in each source database and inserts all data into its own copies of these collections. At this time, _id indexes are also built. The clone process only copies valid data, omitting invalid documents.
-
Applies all changes to the data set. Using the oplog from the source, the mongod updates its data set to reflect the current state of the replica set.
-
Builds all indexes on all collections (except _id indexes, which were already completed).
When the mongod finishes building all index builds, the member can transition to a normal state, i.e.secondary.
http://docs.mongodb.org/manual/core/replica-set-sync/
https://docs.mongodb.com/manual/tutorial/resync-replica-set-member/MongoDB provides two options for performing an initial sync:Restart the mongod with an empty data directory and let MongoDB’s normal initial syncing feature restore the data. This is the more simple option but may take longer to replace the data.See Procedures.Restart the machine with a copy of a recent data directory from another member in the replica set. This procedure can replace the data more quickly but requires more manual steps.See Sync by Copying Data Files from Another Member.So, the answer is,Use a recent file system snapshot of an existing member with journaling turned on ,assuming the data files in the snapshot are more recent than the oldest operation in the primary’s oplog .