データベースのサイズが妥当で、スナップショットがある場合は、(起動時または構成ファイルで --dbpath フラグによって指定された) ファイルをコピーして、新しいレプリカ セット メンバーをより迅速にオンラインにすることができます。ただし、初期同期は引き続き発生する可能性があります。
概念的には、次のことが起こります
- レプリカ セットの一部として新しいメンバーを起動します。
- rs.conf() に追加します
- 新しいレプリカセットは、最も近いもの (プライマリまたはセカンダリの可能性があります) から同期され、データのプルを開始し (初期同期)、それ自体の参照のために oplog 内のポイントをマークします。
- 次に、新しいセカンダリは、他のレプリカ セット メンバーからコピーした独自のタイムスタンプから oplog を適用します。
同期が失敗した場合、別の初期同期 (最初から) が行われます。非常に大きなデータセットの場合、同期に時間がかかることがあります。
ご質問への回答として
これは、oplog よりも大きな新しいスレーブを作成できないということですか?
oplog よりも大きな新しいメンバーを作成して追加できます
mongodbには、oplog以外にデータベースを同期するための他のメカニズムがありますか?
はい、上記の初期同期とファイル コピーです。