説明
replSetSyncFrom現在の
mongodのデフォルトの同期ターゲットを一時的に上書きします。 この操作は、さまざまなパターンをテストしたり、セット ノードが目的のホストから複製されていない状況に役立ちます。Tip
mongoshでは、このコマンドはrs.syncFrom()ヘルパーメソッドを通じて実行することもできます。ヘルパー メソッドは
mongoshユーザーには便利ですが、データベースコマンドと同じレベルの情報は返されない可能性があります。便宜上必要ない場合、または追加の戻りフィールドが必要な場合は、データベースコマンド を使用します。データベースで
replSetSyncFromadminを実行します。
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
重要
このコマンドは、MongoDB Atlas クラスターではサポートされていません。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。
構文
このコマンドの構文は、次のとおりです。
db.adminCommand( { replSetSyncFrom: "hostname<:port>" } )
コマンドフィールド
このコマンドは、次のフィールドを使用します。
フィールド | タイプ | 説明 |
|---|---|---|
| string | このノードが複製するレプリカセット ノードの名前とポート番号。
|
動作
制限
replSetSyncFromsettings.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は警告をログに記録しますが、遅延ノードからの複製は引き続き遅延します。 「レプリケーションラグとフロー制御 」も参照してください。
永続性
replSetSyncFrommongodは、デフォルトの動作の一時的なオーバーライドを提供します。次の状況では、 はデフォルトの同期動作に戻ります。
mongodインスタンスが再起動します。mongodと同期ターゲットの間の接続が閉じます。同期ターゲットが
maxSyncSourceLagSecs(デフォルトでは30)秒以上遅れている場合 :レプリカセットの別のノード。
の使用の詳細については、「replSetSyncFrom 自己管理型セカンダリの同期ターゲットの設定 」を参照してください。