説明
replSetSyncFrom現在の
mongodのデフォルトの同期ターゲットを一時的に上書きします。 この操作は、さまざまなパターンをテストしたり、セット ノードが目的のホストから複製されていない状況に役立ちます。Tip
mongoshでは、このコマンドはrs.syncFrom()ヘルパー メソッドを通じて実行することもできます。ヘルパー メソッドは
mongoshユーザーには便利ですが、データベースコマンドと同じレベルの情報は返されない可能性があります。 便宜上必要ない場合、または追加の戻りフィールドが必要な場合は、 データベースコマンドを使用します。adminデータベースでreplSetSyncFromを実行します。
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
重要
このコマンドは、 MongoDB Atlasクラスターではサポートされていません。 すべてのコマンドの Atlas サポートの詳細については、「 サポートされていないコマンド 」を参照してください。
構文
このコマンドの構文は、次のとおりです。
db.adminCommand( { replSetSyncFrom: "hostname<:port>" } )
コマンドフィールド
このコマンドは、次のフィールドを使用します。
フィールド | タイプ | 説明 |
|---|---|---|
| string | このノードが複製するレプリカセット ノードの名前とポート番号。
|
動作
制限
replSetSyncFrom がデフォルトの同期ターゲットを上書きするには、settings.chainingAllowed を true に設定する必要があります。
settings.chainingAllowed が false に設定されている場合、replSetSyncFrom は ok:1 を返しますが、同期ターゲットは設定されません。
MongoDB 5.0.2 以降、サーバーパラメータ enableOverrideClusterChainingSetting を true に設定することで、settings.chainingAllowed を上書きできます。これにより、settings.chainingAllowed が false であってもセカンダリ メンバーからの同期は許可されます。
同期ロジック
replSetSyncFromの実行時に最初の同期操作が進行中であった場合、 replSetSyncFromは進行中の最初の同期を停止し、新しいターゲットで同期プロセスを再開します。
デフォルトの同期ロジックは必要な場合にのみ変更し、常に注意を払ってください。
ターゲット
同期元のメンバーは、セット内の有効なデータソースである必要があります。 ノードから同期するには、ノードは次の操作を行う必要があります。
データを用意します。 スタートアップ モードまたはリカバリ モードではアービタになることはできず、データクエリに答えることができる必要があります。
アクセス可能であること。
レプリカセット構成で同じセットのノードである。
members[n].buildIndexes設定でインデックスを構築します。セットの別のノード。それ自体からの同期を妨げます。
現在のメンバーより 10 秒以上遅れたメンバーから複製しようとすると、 mongodは警告をログに記録しますが、遅延ノードからの複製は引き続き遅延します。 「レプリケーションラグとフロー制御 」も参照してください。
永続性
replSetSyncFromは、デフォルトの動作の一時的なオーバーライドを提供します。 次の状況では、 mongodはデフォルトの同期動作に戻ります。
replSetSyncFromの使用の詳細については、「自己管理型セカンダリの同期ターゲットの設定 」を参照してください。