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