このページでは、これまでに発生したよくある質問への回答を提供します。 さらに質問がある場合は、MongoDB サポートにお問い合わせください。
mongosyncの同期中に宛先クラスターへの読み取りまたは書込みを実行できますか。
同期中にいつでも読み取りを実行できます。ただし、読み取られるデータは 結果整合性 があり、一貫した読み取りの場合は、移行がコミットされるまで待ちます。詳しくは、「 継続的な同期に関する に関する考慮事項 」を参照してください。
コミットを発行する前に同期された名前空間に書き込み、かつcanWriteがfalseであるときに同期された名前空間に書き込む場合、動作は未定義です。 同期された名前空間に書込まれないようにするには、書込みブロック を有効にします。
注意
宛先クラスターでのインデックスビルドは、mongosync の同期中は書込みとして扱われます。
canWriteの値を確認するには、 gress API エンドポイントを呼び出します。
mongosyncは独自のハードウェアで実行できますか。
はい、 mongosyncは独自のハードウェアで実行できます。 MongoDB インスタンスをホストするサーバーではmongosyncを実行する必要はありません。 mongosyncが独自のハードウェアで実行される場合、ソースクラスターまたは宛先クラスターの OS とは異なるオペレーティング システム(OS)を使用できます。
ソースクラスターの のサイズを増やす必要がありますか。oplog
mongosync は、ソースクラスターのoplogの操作を宛先クラスターのデータに適用します。 mongosyncが適用していなかった操作がソースクラスターのoplogをロールオフすると、同期は失敗し、 mongosyncは終了します。
注意
mongosync は、宛先クラスターへの同期中にソースクラスターで行われたapplyOps操作を複製しません。
最初の同期中に、ドキュメントが同時にコピーされるため、 mongosyncは操作を遅くする可能性があります。 最初の同期後、 mongosyncは変更をより速く適用し、ソースクラスターで発生しているリアルタイム書込みに近いoplog内の位置を維持する可能性が高くなります。
大規模なデータセットの同期が予想される場合、または同期を長期間にわたって一時停止する予定の場合、 oplog windowを超える可能性があります。 ソースクラスター上のoplogのサイズを増やすには、 oplogSizeMB設定を使用します。
stringmongosyncで許可される接続文字列オプションはどれですか。
mongosync にはreadConcern: "majority"とwriteConcern: "majority" が必要です。
readConcernがmajorityでない場合、 mongosyncはエラーを返します。
Invalid URI option, read concern must be majority
writeConcernがmajorityでない場合、 mongosyncはエラーを返します。
Invalid URI option, write concern must be majority
mongosync は、他のすべての接続文字列オプションを受け入れます。
どのセキュリティと認証オプションがサポートされていますか?
mongosync 標準の MongoDB 接続文字列を使用して、ソースクラスターと宛先クラスターに接続します。
LDAPとX 509がサポートされています。 利用可能な認証オプションについては、「自己管理型配置での認証 」を参照してください。
mongosyncエラーが発生した場合、 は自動的に再起動しますか?
mongosync は、エラーが発生した場合に自動的に再起動しません。 ただし、スクリプトを作成したり、オペレーティング システムのプロセス マネージャー( systemdを使用してmongosyncプロセスを再起動したりすることはできます。
mongosyncバイナリはステートレスです。 再起動用のメタデータは宛先クラスターに保存されています。
同期中にmongosyncが利用できなくなった場合には、 mongosync操作を再開できます。 mongosyncが再度使用可能になったら、同じパラメータでmongosyncプロセスを再起動します。 mongosyncは、 mongosyncが使用できなくなったときに停止した場所から操作を再開します。
注意
mongosync 1.7.3以降、 同期操作を再開または再開する際に、 mongosyncが応答するまでに少なくとも 2 分かかる場合があります。 この間、 progressエンドポイントへの呼び出しが失敗する可能性があります。 progress呼び出しが失敗した場合は、安全に再試行できます。
ソースまたは宛先は、アービタを含むレプリカセットにすることはできますか。
はい、レプリカセットはアービタを使用できます。ソース レプリカセットには 2 以上の非アービタ ノードが必要で、非アービタ ノードから同期する必要があります。 ソースクラスターの接続文字列を使用して、アービタ以外のデータを保持しているノードの読み込み設定(read preference)を指定します。
低速操作の警告が表示された場合はどうなりますか。
ソース クラスターで読み取り操作が低速、または宛先クラスターで書込み (write) 操作が低速な場合、 最初の同期 または 変更イベント の適用中に低速操作警告が表示されることがあります。 この警告は、ソースクラスターまたは宛先クラスターでネットワークの競合やリソースの負荷が増大していることを示している場合があります。
これらの警告自体は失敗を示すものではありませんが、低速操作によりmongosyncで操作タイムアウト エラーが発生したり、移行が失敗したりする可能性があります。
低速操作の警告が表示される場合は、ソースクラスターと宛先クラスターの CPU、メモリ、ネットワーク使用量を確認してください。 ニーズに対してクラスターのプロビジョニングが不十分な場合は、クラスター ハードウェアのアップグレードを検討してください。
ログに「error」または「failure」という単語が含まれている場合は、移行を停止する必要がありますか。
いいえ、「error」または「failure」という単語を含むログは致命的でないエラーを表示し、 mongosyncを早期に停止する必要があることを示すものではありません。 これらのログは、 mongosyncの障害やデータの破損を示すものではありません。 致命的なエラーが発生した場合、 mongosyncは同期を停止し、致命的なログエントリを書込みます。
ログに重複キー エラーが多数表示される場合はどうなりますか。
重複キー エラーは、同期プロセスの通常の一部です。 このようなエラーは、次の場合に発生する可能性があります。
mongosyncの起動後にソースクラスターにドキュメントを挿入します。mongosyncはドキュメントを直接コピーし、後でドキュメントの挿入変更イベントを冗長に適用できます。mongosyncを停止して再開します。 これにより、mongosyncの再起動時に重複挿入が発生する可能性があります。mongosync一時的なエラーが発生し、すでに成功している可能性のある挿入を再試行します。
mongosync が致命的なエラーを返した場合、どうすればよいですか。
致命的なエラーは修正する必要がある問題を示し、移行を再開する必要があります。 エラーに対処した後、 mongosync_reserved_for_internal_useデータベースを含む宛先クラスター上のすべての移行データを削除します。 次に、 mongosyncを再起動し、新しい移行を開始します。
mongosyncは TTL インデックスをサポートしていますか
Cluster-to-Cluster Sync は、ソースクラスターから宛先クラスターへのTTL インデックスの同期 をサポートしています。