すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB for MongoDB:MongoShakeを使用したApsaraDB for MongoDBインスタンス間の一方向同期の実行

最終更新日:Jun 13, 2024

Alibaba Cloudが開発したオープンソースのMongoShakeツールを使用して、MongoDBデータベース間でデータを同期できます。 このツールは、データ分析、ディザスタリカバリ、アクティブ /アクティブレプリケーションなどのシナリオで使用できます。 このトピックでは、ApsaraDB for MongoDBレプリカセットインスタンス間でデータをリアルタイムで同期するようにMongoShakeを設定する方法について説明します。

MongoShake の概要

MongoShakeは、Alibaba CloudによってGo言語で記述された、汎用のサービスとしてのプラットフォーム (PaaS) ツールです。 MongoShakeは、MongoDBデータベースのoplogを読み取り、特定の要件を満たすためにoplogに基づいてデータを複製します。

MongoShakeでは、MongoDBログをサブスクライブして使用することもできます。 SDK、Kafka、MetaQなどの複数の方法を使用してMongoShakeに接続できます。 MongoShakeは、ログサブスクリプション、データセンター間のデータ同期、非同期キャッシュの削除などのシナリオに適しています。

説明

MongoShakeの詳細については、GitHubのMongoShakeホームページをご覧ください。

サポートされるデータソース

ソースデータベース

宛先データベース

ECSでホストされる自己管理型MongoDBデータベース

ECSでホストされる自己管理型MongoDBデータベース

オンプレミスマシンでホストされる自己管理型MongoDBデータベース

オンプレミスマシンでホストされる自己管理型MongoDBデータベース

ApsaraDB for MongoDB インスタンス

ApsaraDB for MongoDB インスタンス

サードパーティのクラウド上のMongoDBデータベース

サードパーティのクラウド上のMongoDBデータベース

使用上の注意

  • 完全なデータ同期が完了する前に、ソースデータベースでデータ定義言語 (DDL) 操作を実行しないでください。 DDL 操作を実行すると、データの不整合が発生する可能性があります。

  • MongoShakeを使用して、管理データベースとローカルデータベースのデータを同期することはできません。

データベースに必要な権限

同期するデータソース

必要な権限

同期元の ApsaraDB for MongoDB インスタンス

readAnyDatabase権限、ローカルデータベースの読み取り権限、およびmongoshakeデータベースの読み取り /書き込み権限

説明

mongoshakeデータベースは、増分同期タスクの開始時に、MongoShakeによってソースで作成されます。

同期先の ApsaraDB for MongoDB インスタンス

ターゲットデータベースに対するreadWriteAnyDatabaseの権限またはreadWrite権限

説明

MongoDBユーザーを作成および権限付与する方法の詳細については、「MongoDBデータベースユーザーの権限の管理」または「db.createUser() 」をご参照ください。

準備

  1. 最高の同期パフォーマンスを得るために、ソースApsaraDB For MongoDBレプリカセットインスタンスが仮想プライベートクラウド (VPC) にあることを確認してください。 ソースインスタンスがクラシックネットワークにある場合は、ネットワークタイプをVPCに切り替えます。 詳細については、「ApsaraDB For MongoDBインスタンスのネットワークタイプをクラシックネットワークからVPCに切り替える」をご参照ください。

  2. 同期先としてApsaraDB for MongoDBレプリカセットインスタンスを作成します。 ソースApsaraDB for MongoDBレプリカセットインスタンスで使用されているVPCと同じVPCを選択して、ネットワーク遅延を最小限に抑えます。 詳細については、「レプリカセットインスタンスの作成」をご参照ください。

  3. Elastic Compute Service (ECS) インスタンスを作成してMongoShakeを実行します。 ソースApsaraDB for MongoDBインスタンスで使用されているVPCと同じVPCを選択して、ネットワーク遅延を最小限に抑えます。 詳細は、「ECSインスタンスの作成」をご参照ください。

  4. ECSインスタンスのプライベートIPアドレスを、ソースおよびターゲットのApsaraDB for MongoDBインスタンスのホワイトリストに追加します。 ECS インスタンスが同期元および同期先の ApsaraDB for MongoDB インスタンスに接続できることを確認してください。 詳細については、「ApsaraDB For MongoDBインスタンスのIPアドレスホワイトリストの変更」をご参照ください。

説明

ネットワークタイプが上記の要件を満たしていない場合、ソースおよびターゲットApsaraDB for MongoDBインスタンスのパブリックエンドポイントを申請できます。 次に、ECSインスタンスのパブリックIPアドレスを、ソースおよびターゲットのApsaraDB for MongoDBインスタンスのホワイトリストに追加します。 このようにして、インターネット経由でデータを同期できます。 詳細については、「パブリックエンドポイントの申請」および「ApsaraDB For MongoDBインスタンスのIPアドレスホワイトリストの変更」をご参照ください。

手順

この例では、デフォルトで /test/mongoshakeディレクトリがMongoShakeのインストールディレクトリとして使用されます。

  1. Elastic Compute Service (ECS) インスタンスにログインします。

    説明

    ビジネスシナリオに基づいて接続方法を選択できます。 詳細については、「接続方法の概要」をご参照ください。

  2. 次のコマンドを実行してMongoShakeパッケージをダウンロードし、パッケージの名前をmongoshake.tar.gzに変更します。

    wget " http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/196977/jp_ja/1608863913991/mongo-shake-v2.4.16.tar.gz " -O mongoshake.tar.gz
    説明

    この例では、MongoShake V2.4.16のダウンロードURLを使用します。 MongoShakeの最新バージョンをダウンロードするには、リリースにアクセスしてください。

  3. 次のコマンドを実行して、MongoShakeパッケージを /test/mongoshakeディレクトリに解凍します。

    tar zxvf mongoshake.tar.gz && mv mongo-shake-v2.4.16 /test/mongoshake && cd /test/mongoshake/mongo-shake-v2.4.16
  4. vi collector.confコマンドを実行し、MongoShakeのcollector.conf設定ファイルを変更します。 次の表に、ApsaraDB for MongoDBインスタンス間でデータを同期するために設定する必要があるパラメーターを示します。

    パラメーター

    説明

    mongo_urls

    ソースApsaraDB for MongoDBインスタンスの接続文字列URI。 データベースアカウントはtestで、データベースはadminです。

    説明
    • ネットワーク遅延を最小限に抑えるために、VPCエンドポイントを使用することを推奨します。

    • 接続文字列URIの形式の詳細については、「レプリカセットインスタンスへの接続」をご参照ください。

    mongo_urls = mongodb:// test:**** @ dds-bp19f409d7512 **** .mongodb.rds.aliyuncs.com:3717、dds-bp19f409d7512 **** .mongodb.rds.aliyuncs.com:3717

    説明

    パスワードにat signs (@) を含めることはできません。 そうしないと、接続が失敗する可能性があります。

    tunnel.address

    ターゲットApsaraDB for MongoDBインスタンスの接続文字列URI。 データベースアカウントはtestで、データベースはadminです。

    説明
    • ネットワーク遅延を最小限に抑えるために、VPCエンドポイントを使用することを推奨します。

    • 接続文字列URIの形式の詳細については、「レプリカセットインスタンスへの接続」をご参照ください。

    tunnel.address = mongodb:// test:**** @ dds-bp19f409d7512 **** .mongodb.rds.aliyuncs.com:3717、dds-bp19f409d7512 **** .mongodb.rds.aliyuncs.com:3717

    説明

    パスワードにat signs (@) を含めることはできません。 そうしないと、接続が失敗する可能性があります。

    sync_mode

    データの同期方法。 有効な値:

    • all: 完全データ同期と増分データ同期の両方を実行します。

    • full: 完全なデータ同期のみを実行します。

    • incr: 増分データ同期のみを実行します。

    説明

    デフォルト値: incr。

    sync_mode=すべて

    説明

    collector.conf設定ファイルのすべてのパラメーターの詳細については、このトピックの付録を参照してください。

  5. 次のコマンドを実行してデータ同期タスクを開始し、ログ情報を生成します。

    . /collector.linux -conf=collector.conf -verbose
  6. ログ情報を確認します。 次のログが表示されると、完全なデータ同期が完了し、増分データ同期が開始されます。

    [09:38:57 CST 2019/06/20] [INFO] (mongoshake/collector.(* ReplicationCoordinator).Run:80) 完全同期を終了し、timestamp: fullBeginTs[1560994443] 、fullFinishTs[1560994737]

MongoShake のステータスをモニターする

増分データ同期の開始後、コマンドラインウィンドウを開いて MongoShake をモニターできます。

cd /test/mongoshake &&。/mongoshake-stat -- port=9100
説明

mongoshake-statはPythonスクリプトです。 スクリプトを実行する前に、Python 2.7をインストールします。 詳細については、Python公式Webサイトをご覧ください。

MongoShakeのモニタリング情報の例を次の図に示します。监控结果

上記の監視情報に含まれるパラメーターを次の表に示します。

パラメーター

説明

logs_get/sec

1 秒間に取得された oplog の数。

logs_repl/sec

1 秒間に実行される再生操作の oplog の数。

logs_success/sec

1 秒間に成功した再生操作の oplog の数。

lsn.time

最後の oplog が送信された時刻。

lsn_ack.time

同期先データベースが書き込み操作を確認した時刻。

lsn_ckpt.time

最後のチェックポイントが生成された時刻。

now.time

現在の時刻。

replset

ソースデータベースが存在するレプリカセットインスタンスの名前。

付録

表 1 collector.conf設定ファイルのすべてのパラメーター

カテゴリ

パラメーター

説明

N/A

conf.version

設定ファイルのバージョン。 Do not change the value.

conf.version = 4

グローバル設定オプション

id

同期タスクのID。 この値はカスタマイズ可能です。 グローバル構成には、ログファイル名、チェックポイント情報を格納するデータベースの名前、およびターゲットデータベースの名前が含まれます。

id = mongoshake

master_quorum

MongoShakeノードが高可用性シナリオのアクティブノードであるかどうかを指定します。 アクティブなMongoShakeノードとスタンバイMongoShakeノードを使用して同じデータベースのデータを同期する場合、アクティブなMongoShakeノードに対してこのパラメーターをtrueに設定します。

有効な値:

  • true

  • false

説明

デフォルト値:false

master_quorum = false

full_sync.http_port

インターネット上のMongoShakeで完全なデータ同期のステータスを表示するために使用されるHTTPポート。

説明

デフォルト値: 9101

full_sync.http_port = 9101

incr_sync.http_port

インターネット上のMongoShakeで増分データ同期のステータスを表示するために使用されるHTTPポート。

説明

デフォルト値: 9100

incr_sync.http_port = 9100

system_profile_port

内部スタック情報の表示に使用されるプロファイリングポート。

system_profile_port = 9200

log.level

生成されるログのレベル。 有効な値:

  • error: エラーメッセージを含むログを生成します。

  • warning: 警告を含むログを生成します。

  • info: システムステータスを示すログを生成します。

  • debug: デバッグ情報を含むログを生成します。

デフォルト値: info

log.level = info

log.dir

ログファイルとPIDファイルが保存されているディレクトリ。 このパラメーターを設定しない場合、ログファイルとPIDファイルは作業ディレクトリのログディレクトリに格納されます。

説明

このパラメーターは絶対パスに設定する必要があります。

log.dir= /logs /

log.file

ログファイルの名前。 この値はカスタマイズ可能です。

説明

デフォルト値: collector.log。

log.file = collector.log

log.flush

すべてのログエントリを画面に表示するかどうかを指定します。 有効な値:

  • true: すべてのログエントリが画面に表示されます。 これにより、画面上にログエントリが欠落しないようになりますが、パフォーマンスが低下します。

  • false: すべてのログエントリが画面に表示されるわけではありません。 これによりパフォーマンスが保証されますが、一部のログエントリが画面に表示されない場合があります。

説明

デフォルト値:false

log.flush = false

sync_mode

データの同期方法。 有効な値:

  • all: 完全データ同期と増分データ同期の両方を実行します。

  • full: 完全なデータ同期のみを実行します。

  • incr: 増分データ同期のみを実行します。

説明

デフォルト値: incr。

sync_mode=すべて

mongo_urls

ソースApsaraDB for MongoDBインスタンスの接続文字列URI。 データベースアカウントはtestで、データベースはadminです。

説明

mongo_urls = mongodb:// test:**** @ dds-bp19f409d7512 **** .mongodb.rds.aliyuncs.com:3717、dds-bp19f409d7512 **** .mongodb.rds.aliyuncs.com:3717

mongo_cs_url

ConfigServerノードのエンドポイント。 ソースApsaraDB for MongoDBインスタンスがシャードクラスターインスタンスの場合、このパラメーターを設定する必要があります。 ConfigServerノードのエンドポイントを申請する方法の詳細については、「シャードまたはConfigServerノードのエンドポイントを申請する」をご参照ください。

データベースアカウントはtestで、データベースはadminです。

mongo_cs_url = mongodb:// test:**** @ dds-bp19f409d7512 **** -csxxx.mongodb.rds.aliyuncs.com:3717,dds-bp19f409d7512 **** -csxxx.mongodb.rds.aliyuncs.com:3717/admin

mongo_s_url

mongosノードのエンドポイント。 ソースApsaraDB for MongoDBインスタンスがシャードクラスターインスタンスの場合、このパラメーターを設定する必要があります。 少なくとも1つのmongosノードのエンドポイントを指定する必要があります。 複数のmongosノードのエンドポイントをコンマ (,) で区切ります。 mongosノードのエンドポイントを申請する方法の詳細については、「シャードまたはConfigServerノードのエンドポイントを申請する」をご参照ください。

データベースアカウントはtestで、データベースはadminです。

mongos_s_url = mongodb:// test:**** @ s-bp19f409d7512 **** .mongodb.rds.aliyuncs.com:3717、s-bp19f409d7512 **** .mongodb.rds.aliyuncs.com:3717/admin

tunnel

同期に使用されるトンネルのタイプ。 有効な値:

  • direct: ターゲットApsaraDB for MongoDBインスタンスにデータを直接同期します。

  • rpc: NET/RPCを使用してデータを同期します。

  • tcp: TCPを使用してデータを同期します。

  • file: ファイルを転送してデータを同期します。

  • kafka: Kafkaを使用してデータを同期します。

  • mock: トンネルにデータを書き込まずにテストにのみ使用されます。

説明

デフォルト値: direct。

トンネル=直接

tunnel.address

トンネルを介してターゲットApsaraDB for MongoDBインスタンスに接続するために使用されるアドレス。

  • tunnelパラメーターがdirectに設定されている場合、tunnel.addressパラメーターをターゲットApsaraDB for MongoDBインスタンスの接続文字列URIに設定します。

  • tunnelパラメーターがrpcに設定されている場合、tunnel.addressパラメーターを宛先ApsaraDB for MongoDBインスタンスへのRPC接続で使用されるレシーバソケットアドレスに設定します。

  • tunnelパラメーターがtcpに設定されている場合、tunnel.addressパラメーターを宛先ApsaraDB for MongoDBインスタンスへのTCP接続で使用されるレシーバソケットアドレスに設定します。

  • tunnelパラメーターがfileに設定されている場合、tunnel.addressパラメーターをターゲットApsaraDB for MongoDBインスタンスのファイルパスに設定します。

  • tunnelパラメーターがkafkaに設定されている場合、tunnel.addressパラメーターをKafkaのブローカーサーバーアドレスに設定します。 例: topic @ brokers1,brokers2

  • tunnelパラメーターがmockに設定されている場合、tunnel.addressパラメーターを設定する必要はありません。

データベースアカウントはtestで、データベースはadminです。

tunnel.address = mongodb:// test:**** @ dds-bp19f409d7512 **** .mongodb.rds.aliyuncs.com:3717、dds-bp19f409d7512 **** .mongodb.rds.aliyuncs.com:3717

tunnel.message

トンネルに書き込まれるデータのタイプ。 このパラメーターは、tunnelパラメーターがkafkaまたはfileに設定されている場合にのみ有効です。 有効な値:

  • raw: 元の形式でデータを書き込みます。 データはバッチで集約され、一度に書き込まれたり読み取られたりします。

  • json: データを直接読み取ることができるように、JSON形式でデータをKafkaに書き込みます。

  • bson: バイナリJSON (BSON) 形式でデータをKafkaに書き込みます。

説明

デフォルト値: raw。

tunnel.message = raw

mongo_connect_mode

MongoShakeがデータをプルするノードのタイプ。 このパラメーターは、tunnelパラメーターがdirectに設定されている場合にのみ有効です。 有効な値:

  • primary: プライマリノードからデータをプルします。

  • secondaryPreferred: セカンダリノードからデータをプルします。

  • standalone: 指定された単一ノードからデータを取得します。

説明

デフォルト値: secondaryPreferred。

mongo_connect_mode = secondaryPreferred

filter.namespace.black

データ同期用の名前空間ブラックリスト。 指定された名前空間は、同期先データベースに同期されません。 複数の名前空間はセミコロン (;) で区切ります。

説明

名前空間は、ApsaraDB for MongoDBのコレクションまたはインデックスの標準名です。 データベース名とコレクションまたはインデックス名で構成されます。 例: mongodbtest.customer

filter.name space.black = mongodbtest.customer;testdata.test123

filter.namespace.white

データ同期のホワイトリスト。 指定された名前空間のみがターゲットデータベースに同期されます。 複数の名前空間はセミコロン (;) で区切ります。

filter.name space.white = mongodbtest.customer;test123

filter.pass.special.db

データを同期先データベースに同期するための特別なデータベース。 複数の特殊データベースを指定できます。 デフォルトでは、admin、local、mongoshake、config、system.viewsなどの特別なデータベースのデータは同期されません。 このパラメーターを設定して、特別なデータベースのデータを同期できます。 複数のデータベース名をセミコロン (;) で区切ります。

filter.pass.special.db = admin;mongoshake

フィルター. ddl_enable

DDL操作を同期するかどうかを指定します。 有効な値:

  • true

  • false

説明

ソースApsaraDB for MongoDBインスタンスがシャードクラスターインスタンスの場合、このパラメーターをtrueに設定することはできません。

filter.ddl_enable = false

checkpoint.storage.url

再開可能な送信に使用されるチェックポイントの保存場所。 このパラメーターを設定しない場合、MongoShakeはソースApsaraDB for MongoDBインスタンスのタイプに基づいて、次のデータベースにチェックポイントを書き込みます。

  • レプリカセットインスタンス: MongoShakeはチェックポイントをmongoshakeデータベースに書き込みます。

  • シャードクラスターインスタンス: MongoShakeはConfigServerノードのadminデータベースにチェックポイントを書き込みます。

データベースアカウントはtestで、データベースはadminです。

checkpoint.storage.url = mongodb:// test:**** @ dds-bp19f409d7512 **** .mongodb.rds.aliyuncs.com:3717、dds-bp19f409d7512 **** .mongodb.rds.aliyuncs.com:3717

checkpoint.storage.db

チェックポイントを格納するデータベースの名前。

説明

デフォルト値: mongoshake。

checkpoint.storage.db = mongoshake

checkpoint.storage.collection

チェックポイントを格納するコレクションの名前。 アクティブなMongoShakeノードとスタンバイのMongoShakeノードを使用して同じデータベースのデータを同期する場合、このコレクション名を変更して、重複するコレクション名による競合を回避できます。

説明

デフォルト値: ckpt_default。

checkpoint.storage.collection = ckpt_default

checkpoint.start_position

再開可能な送信の開始位置。 チェックポイントが存在する場合、このパラメーターは無効です。 このパラメーターの値をYYYY-MM-DDTHH:MM:SSZの形式で指定します。

説明

デフォルト値: 1970-01-01T00:00:00Z。

checkpoint.start_position = 1970-01-01T00:00:00Z

transform.nameスペース

移行元データベースまたは移行先データベースのコレクションの名前を変更するためのルール。 たとえば、ターゲットデータベースのデータベース名とコレクション名をデータベースA. コレクションBからデータベースC. コレクションDに変更します。

transform.nameスペース=fromA.fromB:toC.toD

フルデータ同期オプション

full_sync.reader.collection_parallel

MongoShakeによって一度に同時にプルできるコレクションの最大数。

full_sync.reader.collection_parallel = 6

full_sync.reader.write_document_parallel

コレクションの書き込みにMongoShakeによって使用される同時スレッドの数。

full_sync.reader.write_document_parallel = 8

full_sync.reader.document_batch_size

一度にターゲットApsaraDB for MongoDBインスタンスに書き込まれるドキュメントの数。 たとえば、値128は、128のドキュメントが一度にターゲットApsaraDB For MongoDBインスタンスに書き込まれることを示します。

full_sync.reader.document_batch_size = 128

full_sync.collection_exist_drop

同期前にソースコレクションと同じ名前を持つターゲットデータベースのコレクションを削除するかどうかを指定します。 有効な値:

  • true: 同期前のソースコレクションと同じ名前を持つターゲットデータベースのコレクションを削除します。

    警告

    このオプションは、ターゲットデータベースのコレクションを削除します。 そのため, 事前に収集先データベースの収集データをバックアップしてください。

  • false: エラーメッセージを返し、ターゲットデータベースのコレクションがソースデータベースのコレクションと同じ名前である場合は終了します。

full_sync.collection_exist_drop = true

full_sync.create_index

同期完了後にインデックスを作成するかどうかを指定します。 有効な値:

  • フォアグラウンド: フォアグラウンドにインデックスが作成されます。

  • background: インデックスはバックグラウンドで作成されます。

  • none: インデックスは作成されません。

full_sync.create_index = none

full_sync.executor.insert_on_dup_update

ターゲットデータベースのドキュメントの値がソースデータベースのドキュメントと同じ _idの場合、INSERTステートメントをUPDATEステートメントに変更するかどうかを指定します。 有効な値:

  • true

  • false

full_sync.executor.insert_on_dup_update = false

full_sync.executor.filter.orphan_document

ソースApsaraDB for MongoDBインスタンスがシャードクラスターインスタンスの場合、孤立したドキュメントを除外するかどうかを指定します。 有効な値:

  • true

  • false

full_sync.executor.filter.orphan_document = false

full_sync.executor.majority_enable

ターゲットApsaraDB for MongoDBインスタンスで多数決書き込み機能を有効にするかどうかを指定します。 有効な値:

  • true

  • false

full_sync.executor.majority_enable = false

増分データ同期オプション

incr_sync.mongo_fetch_method

増分データをプルするために使用されるメソッド。 有効な値:

  • oplog: ソースデータベースからoplogを取得します。

  • change_stream: ソースデータベースから変更イベントを取得します。 MongoDB 4.0以降のみがこのメソッドをサポートしています。

デフォルト値: oplog

incr_sync.mongo_fetch_method = oplog

incr_sync.oplog.gids

ApsaraDB for MongoDBインスタンスの双方向レプリケーションの実装に使用されるグローバルID。

incr_sync.oplog.gids = xxxxxxxxxxxx

incr_sync.shard_key

内部ワーカースレッドに同時要求を分散するために使用されるメソッド。 このパラメーター値は変更しないでください。

incr_sync.shard_key=コレクション

incr_sync.worker

oplogの送信に使用される同時スレッドの数。 インスタンスが十分なパフォーマンスを提供する場合は、同時スレッドの数を増やすことができます。

説明

ソースApsaraDB for MongoDBインスタンスがシャードクラスターインスタンスの場合、同時スレッドの数はシャードの数と等しくなければなりません。

incr_sync.worker = 8

incr_sync.worker.oplog_compressor

データを解凍してネットワーク帯域幅の使用を減らすかどうかを指定します。 有効な値:

  • none: 圧縮されたデータはありません。

  • gzip: データはGZIP形式で圧縮されます。

  • zlib: データはZLIB形式で圧縮されます。

  • deflate: データはDEFLATE形式で圧縮されます。

説明

このパラメーターは、tunnelパラメーターがdirectに設定されていない場合にのみ有効です。 tunnelパラメーターがdirectに設定されている場合、incr_sync.worker.oplog_compressorパラメーターをnoneに設定します。

incr_sync.worker.oplog_compressor = none

incr_sync.target_delay

ソースとターゲットのApsaraDB for MongoDBインスタンス間でデータを同期するための遅延時間。 既定では、ソースデータベースの変更はターゲットデータベースにリアルタイムで同期されます。 無効な操作を回避するには、このパラメーターを設定して同期を遅延させます。 たとえば、incr_sync.target_delayパラメーターを1800に設定した場合、同期は30分遅延します。 単位は秒です。

説明

値0は、データがリアルタイムで同期されることを示す。

incr_sync.target_delay = 1800

incr_sync.worker.batch_queue_size

MongoShakeで内部キューを設定するためのパラメーター。 特に必要がない限り、これらのパラメータを変更しないでください。

incr_sync.worker.batch_queue_size = 64

incr_sync.adaptive.batching_max_size

incr_sync.adaptive.batching_max_size = 1024

incr_sync.fetcher.buffer_capacity

incr_sync.fetcher.buffer_capacity = 256

直接同期オプション (トンネルパラメータがDirectに設定されている場合にのみ有効)

incr_sync.executor.upsert

ターゲットデータベースのドキュメントがソースデータベースのドキュメントと同じ _id値または一意のインデックスを持つ場合、UPDATEステートメントをINSERTステートメントに変更するかどうかを指定します。 有効な値:

  • true

  • false

incr_sync.executor.upsert = false

incr_sync.executor.insert_on_dup_update

ターゲットデータベースのドキュメントに、ソースデータベースのドキュメントと同じ _id値または一意のインデックスがない場合、INSERTステートメントをUPDATEステートメントに変更するかどうかを指定します。 有効な値:

  • true

  • false

incr_sync.executor.insert_on_dup_update = false

incr_sync.conflict_write_to

同期中に書き込みの競合が発生した場合に、競合するドキュメントを記録するかどうかを指定します。 有効な値:

  • none: 競合文書は記録されません。

  • db: 競合ログはmongoshake_conflictデータベースに書き込まれます。

  • sdk: 競合ログはSDKに書き込まれます。

incr_sync.conflict_write_to = none

incr_sync.executor.majority_enable

ターゲットApsaraDB for MongoDBインスタンスで多数決書き込み機能を有効にするかどうかを指定します。 有効な値:

  • true

  • false

説明

多数決書き込み機能は、性能を損なう可能性がある。

incr_sync.executor.majority_enable = false

よくある質問

詳細については、次をご参照ください: FAQ