Data Transmission Service (DTS) は、Tair (Enhanced Edition) インスタンス間で双方向同期をサポートしており、アクティブ地理的冗長性、ジオディザスタリカバリなどのユースケースに利用できます。
前提条件
-
ソースインスタンスおよび宛先の Tair (Enterprise Edition) インスタンスが必要です。詳細については、「ステップ 1:インスタンスの作成」をご参照ください。
-
ソースインスタンスと宛先インスタンスのストレージ容量は同一である必要があります。
制限事項
|
種別 |
説明 |
|
ソースデータベースの制限事項 |
|
|
その他の制限事項 |
|
課金
|
種別 |
料金 |
|
完全データ同期 |
無料です。 |
|
増分データ同期 |
課金対象です。詳細については、「課金概要」をご参照ください。 |
双方向同期トポロジ
現在、DTS は 2 つの Tair インスタンス間の双方向同期のみをサポートしています。3 つ以上の Tair インスタンス間の同期はまだサポートされていません。
サポートされる Redis コマンド
-
APPEND
-
BITOP、BLPOP、BRPOP、BRPOPLPUSH
-
DECR、DECRBY、DEL
-
EVAL、EVALSHA、EXEC、EXPIRE、EXPIREAT
-
GEOADD、GETSET
-
HDEL、HINCRBY、HINCRBYFLOAT、HMSET、HSET、HSETNX
-
INCR、INCRBY、INCRBYFLOAT
-
LINSERT、LPOP、LPUSH、LPUSHX、LREM、LSET、LTRIM
-
MOVE、MSET、MSETNX、MULTI
-
PERSIST、PEXPIRE、PEXPIREAT、PFADD、PFMERGE、PSETEX
-
RENAME、RENAMENX、RESTORE、RPOP、RPOPLPUSH、RPUSH、RPUSHX
-
SADD、SDIFFSTORE、SELECT、SET、SETBIT、SETEX、SETNX、SETRANGE、SINTERSTORE、SMOVE、SPOP、SREM、SUNIONSTORE
-
ZADD、ZINCRBY、ZINTERSTORE、ZREM、ZREMRANGEBYLEX、ZUNIONSTORE、ZREMRANGEBYRANK、ZREMRANGEBYSCORE
-
XADD、XCLAIM、XDEL、XAUTOCLAIM、XGROUP CREATECONSUMER、XTRIM
-
PUBLISH コマンドはサポートされていません。
-
増分同期中に EVAL または EVALSHA で呼び出される Lua スクリプトの実行が成功することを DTS は保証できません。これは、宛先データベースが明示的な結果を返さないためです。
-
List データ型の場合、DTS は同期中または psync 再送中に宛先の既存データをクリアしないため、重複データが生成される可能性があります。
データベースアカウント権限
|
データベース |
権限および権限付与 |
|
ソース Tair インスタンス |
ソースおよび宛先の Tair インスタンスの両方に、読み取りおよび書き込み権限を持つデータベースアカウントが必要です。詳細については、「データベースアカウントの作成と管理」をご参照ください。 |
|
宛先 Tair インスタンス |
操作手順
-
宛先リージョンの同期タスクリストページに移動します。以下の 2 つの方法のいずれかを使用できます。
DTS コンソールから
-
Data Transmission Service (DTS) コンソール にログインします。
-
左側のナビゲーションウィンドウで、データ同期 をクリックします。
-
ページ左上隅で、同期インスタンスが配置されているリージョンを選択します。
DMS コンソールから
説明実際の操作は、DMS コンソールのモードおよびレイアウトによって異なる場合があります。詳細については、「シンプルモード」および「DMS インターフェイスのレイアウトとスタイルのカスタマイズ」をご参照ください。
-
Data Management (DMS) にログインします。
-
上部のメニューバーで、 を選択します。
-
データ同期タスク の右側で、同期インスタンスが配置されているリージョンを選択します。
-
-
タスクの作成 をクリックして、タスク構成ページを開きます。
-
ソースデータベースおよび宛先データベースを構成します。
警告ソースおよび宛先インスタンスを選択した後、ページ上部に表示される制限事項をよくお読みください。制限事項に従わないと、タスクが失敗したり、データの不整合が発生したりする可能性があります。
カテゴリ
パラメーター
説明
該当なし
タスク名
DTS が自動的にタスク名を生成します。識別しやすいように、わかりやすい名前を指定することを推奨します。名前は一意である必要はありません。
移行元データベース
既存の接続情報の選択
-
システムに追加済み (新規作成または保存済み) のデータベースインスタンスを使用する場合は、ドロップダウンリストからデータベースインスタンスを選択します。データベース情報は自動的に構成されます。
説明DMS コンソールでは、この設定項目の名前は DMS データベースインスタンスの選択 です。
-
データベースインスタンスをシステムに追加していない場合、またはすでに追加済みのインスタンスを使用しない場合は、以下のデータベース情報を手動で構成します。
データベースタイプ
Tair/Redis を選択します。
アクセス方法
Alibaba Cloud インスタンス を選択します。
インスタンスリージョン
ソースの Tair インスタンスが配置されているリージョンを選択します。
Alibaba Cloud アカウント間でデータを複製
この例では、単一の Alibaba Cloud アカウント内でデータを同期するため、× を選択します。
インスタンス ID
ソースの Tair インスタンスの ID を選択します。
認証方法
要件に応じて認証方式を選択します。この例では、パスワードログイン を選択します。
説明-
Redis 6.0 以降でのみ、アカウント + パスワードログイン がサポートされます。
-
シークレットフリーのログイン を選択する場合、Redis データベースでパスワードなしのアクセスが有効になっていることを確認してください。Tair (Redis OSS-Compatible) インスタンスで VPC 経由のパスワードなしのアクセスを有効にする方法については、「VPC 経由でパスワードなしのアクセスを有効化」をご参照ください。
データベースパスワード
ソースの Tair インスタンスに接続するために使用するデータベースアカウントのパスワードを入力します。必要なアカウント権限については、「データベースアカウントに必要な権限」をご参照ください。
説明データベースパスワードは <ユーザー>:<パスワード> 形式である必要があります。たとえば、Tair インスタンスのカスタムユーザー名が
adminでパスワードがRp829dlwaの場合、admin:Rp829dlwaと入力します。暗号化
データベースインスタンスの要件に応じて、非暗号化 または SSL 暗号化 を選択します。
説明セルフマネージド Redis インスタンス (アクセス方法 が Alibaba Cloud インスタンス ではないもの) を使用しており、SSL 暗号化 を選択する場合、CA 証明書 をアップロードし、CA 証明書パスワード を入力する必要があります。
移行先データベース
既存の接続情報の選択
-
システムに追加済み (新規作成または保存済み) のデータベースインスタンスを使用する場合は、ドロップダウンリストからデータベースインスタンスを選択します。データベース情報は自動的に構成されます。
説明DMS コンソールでは、この設定項目の名前は DMS データベースインスタンスの選択 です。
-
データベースインスタンスをシステムに追加していない場合、またはすでに追加済みのインスタンスを使用しない場合は、以下のデータベース情報を手動で構成します。
データベースタイプ
Tair/Redis を選択します。
アクセス方法
Alibaba Cloud インスタンス を選択します。
インスタンスリージョン
宛先の Tair インスタンスが配置されているリージョンを選択します。
Alibaba Cloud アカウント間でデータを複製
この例では、単一の Alibaba Cloud アカウント内でデータを同期するため、× を選択します。
インスタンス ID
宛先の Tair インスタンスの ID を選択します。
認証方法
要件に応じて認証方式を選択します。この例では、パスワードログイン を選択します。
説明-
Redis 6.0 以降でのみ、アカウント + パスワードログイン がサポートされます。
-
シークレットフリーのログイン を選択する場合、Redis データベースでパスワードなしのアクセスが有効になっていることを確認してください。Tair (Redis OSS-Compatible) インスタンスで VPC 経由のパスワードなしのアクセスを有効にする方法については、「VPC 経由でパスワードなしのアクセスを有効化」をご参照ください。
データベースパスワード
宛先の Tair インスタンスに接続するために使用するデータベースアカウントのパスワードを入力します。必要なアカウント権限については、「データベースアカウントに必要な権限」をご参照ください。
説明Tair インスタンスのカスタムユーザー名が
adminでパスワードがRp829dlwaの場合、admin:Rp829dlwaと入力します。暗号化
データベースインスタンスの要件に応じて、非暗号化 または SSL 暗号化 を選択します。
説明セルフマネージド Redis インスタンス (アクセス方法 が Alibaba Cloud インスタンス ではないもの) を使用しており、SSL 暗号化 を選択する場合、CA 証明書 をアップロードし、CA 証明書パスワード を入力する必要があります。
-
-
構成が完了したら、ページ下部の 接続をテストして続行 をクリックします。
説明DTS サーバーからのアクセスを許可するために、ソースおよび宛先データベースのセキュリティ設定に DTS サーバーの IP アドレス CIDR ブロックを追加していることを確認してください。これは自動または手動で行うことができます。詳細については、「DTS サーバーの IP アドレス CIDR ブロックをホワイトリストに追加」をご参照ください。
-
タスクオブジェクトを構成します。
-
オブジェクト設定 ページで、同期するオブジェクトを構成します。
パラメーター
説明
同期タイプ
デフォルトでは、増分データ同期 が選択されています。完全データ同期 も選択する必要があります。事前チェックが完了すると、DTS はソースインスタンスから宛先クラスターへの完全データ同期を実行します。この初期完全同期により、その後の増分同期のベースラインが作成されます。
同期トポロジ
双方向同期 を選択します。
競合するテーブルの処理モード
-
エラーの事前チェックと報告:宛先が空かどうかをチェックします。宛先が空の場合、事前チェックは合格します。宛先が空でない場合、事前チェックは失敗し、エラーが報告され、データ同期ジョブは開始されません。
-
エラーを無視して続行:ターゲットデータベース内のオブジェクトデータの存在検査 する事前チェックをスキップします。
警告エラーを無視して続行 を選択すると、ソースと宛先のキー名が同じ場合、同期中にソースデータが宛先データを上書きします。これにより、宛先のデータが失われる可能性があります。このオプションは慎重に選択してください。
ソースオブジェクト
ソースオブジェクト ボックスで、同期するオブジェクトをクリックし、
をクリックして 選択中のオブジェクト ボックスに移動させます。説明オブジェクトはデータベースレベルでのみ選択できます。データベース内の特定のキーのデータを同期するには、選択中のオブジェクト ペインの データフィルタリング 機能を使用してください。
選択中のオブジェクト
宛先データベース (DB 0~DB 255) を指定する場合や、プレフィックスでデータをフィルタリングする場合は、マッピング機能またはフィルタリング機能を使用します。選択中のオブジェクト ペインで、同期するデータベースを右クリックし、表示される スキーマの編集 ダイアログボックスで設定を構成します。詳細については、「オブジェクト名のマッピング」および「フィルター条件の指定」をご参照ください。
-
-
詳細設定へ をクリックして、詳細パラメーターを構成します。
パラメーター
説明
タスクのスケジュールに使用する専用クラスターの選択
デフォルトでは、DTS は共有クラスター上でタスクをスケジューリングするため、クラスターを選択する必要はありません。より安定したパフォーマンスが必要な場合は、DTS 同期タスクを実行するための専用クラスターを購入できます。詳細については、「DTS 専用クラスターとは」をご参照ください。
失敗した接続の再試行時間
同期タスクの開始後、ソースまたは宛先データベースへの接続が失敗した場合、DTS はエラーを報告し、直ちに接続の再試行を開始します。デフォルトの再試行時間は 720 分です。10~1,440 分の範囲でカスタム再試行時間を指定することもできます。30 分以上に設定することを推奨します。指定された時間内に DTS がデータベースへの再接続に成功した場合、同期タスクは自動的に再開されます。そうでない場合、タスクは失敗します。
説明-
同じソースまたは宛先を共有する複数の DTS インスタンス (例:インスタンス A とインスタンス B) があり、インスタンス A のネットワーク再試行時間を 30 分、インスタンス B を 60 分に設定した場合、両方に短い方の 30 分が適用されます。
-
DTS は接続再試行期間中のタスク実行時間に対して課金されるため、ビジネスニーズに基づいて再試行時間をカスタマイズするか、ソースおよび宛先データベースインスタンスをリリースした直後に DTS インスタンスをできるだけ早くリリースすることを推奨します。
移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。
同期タスクの開始後、ソースまたは宛先データベースで接続以外の問題 (DDL または DML 実行例外など) が発生した場合、DTS はエラーを報告し、直ちに継続的な再試行操作を開始します。デフォルトの再試行時間は 10 分です。1~1,440 分の範囲で再試行時間をカスタマイズすることもできます。10 分以上に設定することを推奨します。設定された再試行時間内に関連操作が成功した場合、同期タスクは自動的に再開されます。そうでない場合、タスクは失敗します。
重要移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。 の値は、失敗した接続の再試行時間 の値より小さくする必要があります。
完全同期レートを制限するかどうか
完全同期ステージ中、DTS はソースおよび宛先データベースの読み取り・書き込みリソースを消費するため、データベースの負荷が増加する可能性があります。ソースおよび宛先データベースの負荷を軽減するために、1 秒あたりのソースデータベースのクエリ率 QPS、1 秒あたりの完全移行の行数 RPS、および 1 秒あたりの完全移行データ量 (MB) BPS パラメーターを構成することで、完全同期タスクのレート制限を設定できます。
説明このパラメーターは、同期タイプ で 完全データ同期 が選択されている場合にのみ利用可能です。
増分同期率を制限するかどうか
増分同期タスクのレート制限を設定することもできます。宛先データベースの負荷を軽減するために、1 秒あたりの増分同期の行数 RPS および 1 秒あたりの増分同期データ量 (MB) BPS を設定します。
移行先データベースキーの有効期限を延長する
ソースデータベースから宛先データベースに移行されるキーの TTL を延長する追加時間を指定します。データ整合性を確保するために、以下のコマンドを使用する場合は、キーの有効期限を延長することを推奨します。
説明分散ロックを含むシナリオでは、ロックが適切なタイミングで解放されない可能性があります。
EXPIRE key seconds PEXPIRE key milliseconds EXPIREAT key timestamp PEXPIREAT key timestampMs環境タグ
ビジネス要件に基づいてインスタンスを識別するために、環境タグを選択できます。この例では、タグを選択する必要はありません。
ETL 機能の設定
抽出・変換・書き出し (ETL) 機能を有効にするかどうかを選択します。詳細については、「ETL とは」をご参照ください。有効値:
-
○:ETL 機能を有効にします。コードエディタにデータ処理文を入力します。詳細については、「データ移行またはデータ同期タスクでの ETL の構成」をご参照ください。
-
×:ETL 機能を無効にします。
監視アラート
アラートを構成するかどうかを指定します。同期が失敗した場合や、遅延時間が指定されたしきい値を超えた場合、アラート連絡先に通知が送信されます。
-
×:アラートは構成されません。
-
○:アラートのしきい値を設定し、アラート通知 を指定してアラートを構成します。詳細については、「タスク構成時のモニタリングとアラートの設定」をご参照ください。
-
-
次へ:データ検証 をクリックして、データ検証タスクを構成します。
データ検証機能を使用する場合は、「データ検証の構成」の構成手順をご参照ください。
-
-
タスクを保存して事前チェックを実行します。
-
このインスタンスを構成するための API パラメーターを表示するには、次:タスク設定の保存と事前チェック ボタンにカーソルを合わせ、表示されたバルーン内の OpenAPI パラメーターのプレビュー をクリックします。
-
API パラメーターの確認が完了したら、ページ下部の 次:タスク設定の保存と事前チェック をクリックします。
説明-
同期ジョブの開始前に、DTS は事前チェックを実行します。すべての事前チェック項目が合格した場合にのみ、ジョブを開始できます。
-
事前チェックが失敗した場合は、失敗した項目の横にある 詳細を表示 をクリックします。表示された指示に従って問題を修正し、再度事前チェックを実行します。
-
事前チェックで警告が返された場合:
-
チェック項目が失敗し、無視できない場合は、項目の横にある 詳細を表示 をクリックします。指示に従って問題を修正し、再度事前チェックを実行します。
-
無視可能なチェック項目については、アラートの詳細を確認、無視、OK、再度事前チェックを実行 の順にクリックして警告をスキップし、事前チェックを再実行します。警告項目を非表示にすると、データの不整合などの問題が発生し、ビジネスにリスクをもたらす可能性があります。
-
-
-
インスタンスを購入します。
-
成功率 が 100% になったら、次:インスタンスの購入 をクリックします。
-
購入 ページで、データ同期インスタンスの課金方法およびリンク仕様を選択します。以下の表に、これらのパラメーターの詳細を示します。
カテゴリ
パラメーター
説明
新しいインスタンスクラス
課金方法
-
サブスクリプション:インスタンス作成時に支払いを行います。長期的なニーズに適しており、従量課金よりもコスト効率が高くなります。サブスクリプション期間が長いほど、割引率が高くなります。
-
従量課金:1 時間単位で課金されます。短期的なニーズに適しています。使用後すぐにインスタンスをリリースしてコストを節約できます。
リソースグループ構成
インスタンスが属するリソースグループです。デフォルトはデフォルトリソースグループです。詳細については、「Resource Management とは」をご参照ください。
リンク仕様
DTS は、さまざまなパフォーマンスレベルを持つ同期仕様を提供しています。同期リンク仕様は同期レートに影響します。ビジネスシナリオに基づいて仕様を選択できます。詳細については、「データ同期リンク仕様」をご参照ください。
サブスクリプション期間
サブスクリプションモードでは、サブスクリプションインスタンスの期間および数量を選択します。1~9 ヶ月の月単位サブスクリプション、または 1、2、3、5 年の年単位サブスクリプションを選択できます。
説明このオプションは、課金方法が サブスクリプション の場合にのみ利用可能です。
-
-
構成が完了したら、Data Transmission Service (従量課金) 利用規約 を読み、選択します。
-
購入して起動 をクリックします。OK ダイアログボックスで、OK をクリックします。
データ同期ページでタスクの進捗状況を確認できます。
-
-
リバース同期タスクを構成します。
-
フォワード同期タスクの初期化が完了するまで待ちます。タスクの ステータス が 実行中 に変わると、タスクの準備が完了します。
説明DTS インスタンスが完全データ同期および増分データ同期の両方を構成されている場合 (同期タイプ に 完全データ同期 および 増分データ同期 の両方が含まれる場合)、同期タスクリストには 増分データ同期 として表示されます。
-
リバース同期タスクを検索し、タスクの設定 をクリックします。
-
ステップ 3 から ステップ 6 に従って、リバース同期タスクを構成します。
重要-
リバース同期タスクを構成する際は、正しいインスタンスを選択していることを確認してください。リバースタスクのソースインスタンスはフォワードタスクの宛先インスタンスであり、その逆も同様です。また、データベース名、アカウント、パスワードなどのインスタンス情報が一致していることを慎重に確認してください。
-
リバース同期タスクのソースおよび宛先インスタンスの インスタンスのリージョン は変更できません。リバース同期タスクでは、フォワードタスクよりも構成するパラメーターが少なくなります。コンソールの指示に従ってパラメーターを構成してください。
-
リバース同期タスクの 競合するテーブルの処理モード 設定では、フォワード同期タスクによって宛先インスタンスに同期されたテーブルをチェックしません。
-
リバース同期タスクでは、フォワード同期タスクの 選択中のオブジェクト ボックスで選択されたオブジェクトを同期することはできません。
-
リバースタスクを構成する際にマッピング機能を使用しないでください。データの不整合が発生する可能性があります。
-
-
成功率 が 100% に達したら、戻る をクリックします。
-
-
リバース同期タスクの構成後、両方の同期タスクの ステータス が 実行中 になるまで待ちます。これで、双方向データ同期の設定が完了です。