Data Transmission Service (DTS) は、Elastic Compute Service (ECS) インスタンス上の自主管理 Redis データベースから Tair (Redis-Compatible) インスタンスへのデータ同期をサポートしています。
データ同期タスクを設定した後は、ソースデータベースまたはターゲットデータベースのアーキテクチャを変更しないでください。変更すると、データ同期タスクは失敗します。
前提条件
ソースの自主管理 Redis インスタンスとターゲットの Tair (Redis-Compatible) インスタンスを作成します。Tair (Redis-Compatible) インスタンスの作成方法の詳細については、「ステップ 1:インスタンスの作成」をご参照ください。
説明現在、DTS は直接接続モードを使用する Tair (Redis-Compatible) インスタンスのみをサポートしています。サポートされているバージョンの詳細については、「同期ソリューション」をご参照ください。
DTS は、Tair (Redis-Compatible) インスタンス間の一方向同期もサポートしています。設定プロセスは、自主管理 Redis データベースから Tair (Redis-Compatible) インスタンスへのデータ移行と似ています。詳細については、このトピックの手順をご参照ください。
ターゲットの Tair (Redis-Compatible) インスタンスのストレージ容量は、ソースの自主管理 Redis データベースのデータ量よりも大きい必要があります。
ソースの Redis データベースがクラスタアーキテクチャでデプロイされている場合、各クラスターノードは
PSYNCコマンドを実行でき、同じ接続パスワードを使用する必要があります。ソースの Redis インスタンスのプライマリノードとレプリカノード間のレプリケーションタイムアウトパラメーター repl-timeout は、デフォルトで 60 秒です。
config set repl-timeout 600コマンドを実行して、タイムアウトを 600 秒に増やすことを推奨します。ソースデータベースに大量のデータが含まれている場合は、必要に応じて repl-timeout パラメーターの値を増やしてください。
注意事項
タイプ | 説明 |
ソースデータベースの制限 |
|
その他の制限事項 |
|
課金
同期タイプ | リンク設定料金 |
完全データ同期 | 無料です。 |
増分データ同期 | 課金されます。詳細については、「課金の概要」をご参照ください。 |
サポートされる同期トポロジ
一対一の一方向同期
一対多の一方向同期
カスケードの一方向同期
詳細については、「同期トポロジ」をご参照ください。
同期可能な操作
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
SWAPDB および UNLINK (ソースインスタンスのエンジンバージョンが 4.0 の場合のみサポート)
XADD、XCLAIM、XDEL、XAUTOCLAIM、XGROUP CREATECONSUMER、および XTRIM
PUBLISH 操作は同期できません。
EVAL または EVALSHA コマンドを実行して Lua スクリプトを呼び出す場合、DTS はこれらの Lua スクリプトがターゲットインスタンスで実行されたかどうかを識別できません。これは、増分データ同期中にターゲットインスタンスが Lua スクリプトの実行結果を明示的に返さないためです。
DTS が SYNC または PSYNC コマンドを実行して LIST タイプのデータを転送する場合、DTS はターゲットインスタンスの既存のデータをクリアしません。その結果、ターゲットインスタンスに重複したデータレコードが含まれる可能性があります。
操作手順
ターゲットリージョンのデータ同期タスクリストページに移動します。次のいずれかの方法を使用できます。
DTS コンソールから
DTS コンソールにログインします。
左側のナビゲーションウィンドウで、データ同期 をクリックします。
ページの左上隅で、同期インスタンスが配置されているリージョンを選択します。
DMS コンソールから
説明実際の操作は、DMS コンソールのモードとレイアウトによって異なる場合があります。詳細については、「シンプルモードコンソール」および「DMS コンソールのレイアウトとスタイルをカスタマイズする」をご参照ください。
DMS コンソールにログインします。
上部のメニューバーから、 を選択します。
データ同期タスク の右側で、同期インスタンスのリージョンを選択します。
タスクの作成 をクリックします。タスク構成ページが開きます。
ソースデータベースとターゲットデータベースを設定します。
カテゴリ
設定
説明
なし
タスク名
DTS は自動的にタスク名を生成します。簡単に識別できるように、わかりやすい名前を指定することを推奨します。名前は一意である必要はありません。
移行元データベース
既存の接続情報の選択
システムに登録されているデータベースインスタンス (新規作成または保存済み) を使用するには、ドロップダウンリストから目的のデータベースインスタンスを選択します。以下のデータベース情報は自動的に設定されます。
説明DMS コンソールでは、この設定項目は DMS データベースインスタンスの選択 です。
データベースインスタンスをシステムに登録していない場合、または登録済みのインスタンスを使用する必要がない場合は、以下のデータベース情報を手動で設定します。
データベースタイプ
Tair/Redis を選択します。
アクセス方法
[ECS 上のセルフマネージドデータベース] を選択します。
インスタンスのリージョン
ソースの Redis データベースが存在する ECS インスタンスのリージョンを選択します。
クロスアカウント (Alibaba Cloud)
この例では、データは同じ Alibaba Cloud アカウント内で同期されます。[いいえ] を選択します。
ECS インスタンス ID
ソースの Redis データベースが存在する ECS インスタンスの ID を選択します。
説明ソースの Redis データベースがクラスタアーキテクチャでデプロイされている場合は、マスターノードが存在する ECS インスタンスの ID を選択します。また、対応するリージョンの DTS サーバーの IP アドレス CIDR ブロックを、他の各 ECS インスタンスのセキュリティルールに手動で追加する必要もあります。詳細については、「セキュリティグループの作成」、「セキュリティグループとインスタンスの関連付け (プライマリ ENI)」、および「DTS サーバーの CIDR ブロックをホワイトリストに追加する」をご参照ください。
インスタンスモード
ソース Redis データベースのアーキテクチャに応じて、[Basic Edition] またはクラスターを選択します。
ポート
ソース Redis データベースのサービスポートを入力します。デフォルト値は 6379 です。
説明ソースの Redis データベースがクラスタアーキテクチャでデプロイされている場合は、マスターノードのサービスポートを入力します。
認証方法
必要に応じて認証方式を選択します。この例では、パスワードログイン が選択されています。
説明アカウント + パスワードログイン は、Redis 6.0 以降でのみ選択できます。
シークレットフリーのログイン を選択した場合は、Redis データベースでパスワードなしのアクセスが有効になっていることを確認してください。Tair (Redis 互換) インスタンスでパスワードなしのアクセスを有効にする方法については、「VPC 経由でのパスワードなしのアクセスを有効にする」をご参照ください。
データベースのパスワード
ソースの Redis データベースに接続するためのパスワードを入力します。
説明このパラメーターはオプションです。パスワードが設定されていない場合は、空のままにできます。
データベースパスワードは <user>:<password> 形式です。たとえば、Redis インスタンスのカスタムユーザー名が admin で、パスワードが Rp829dlwa の場合、admin:Rp829dlwa と入力します。
暗号化
データベースインスタンスに基づいて、非暗号化 または SSL 暗号化 を選択します。
説明データベースが自主管理 Redis データベース (アクセス方法 が Alibaba Cloud インスタンス ではない) で、SSL 暗号化 を選択した場合、CA 証明書 をアップロードし、CA キー を入力する必要もあります。
移行先データベース
既存の接続情報の選択
システムに登録されているデータベースインスタンス (新規作成または保存済み) を使用するには、ドロップダウンリストから目的のデータベースインスタンスを選択します。以下のデータベース情報は自動的に設定されます。
説明DMS コンソールでは、この設定項目は DMS データベースインスタンスの選択 です。
データベースインスタンスをシステムに登録していない場合、または登録済みのインスタンスを使用する必要がない場合は、以下のデータベース情報を手動で設定します。
データベースタイプ
[Tair/Redis] を選択します。
アクセス方法
[クラウドインスタンス] を選択します。
インスタンスのリージョン
ターゲットの Tair (Redis-Compatible) インスタンスが存在するリージョンを選択します。
Alibaba Cloud アカウント間でデータを複製
この例では、データは同じ Alibaba Cloud アカウント内で同期されます。× を選択します。
インスタンス ID
ターゲットの Tair (Redis-Compatible) インスタンスの ID を選択します。
認証方法
必要に応じて認証方式を選択します。この例では、パスワードログイン が選択されています。
説明アカウント + パスワードログイン は、Redis 6.0 以降でのみ選択できます。
シークレットフリーのログイン を選択した場合は、Redis データベースでパスワードなしのアクセスを有効にしてください。 Tair (Redis 互換) インスタンスでパスワードなしのアクセスを有効にする方法の詳細については、「VPC 経由でパスワードなしのアクセスを有効にする」をご参照ください。
データベースのパスワード
ターゲットの Tair (Redis-Compatible) インスタンスに接続するためのパスワードを入力します。
説明データベースパスワードは <user>:<password> 形式です。たとえば、Tair インスタンスのカスタムユーザー名が admin で、パスワードが Rp829dlwa の場合、admin:Rp829dlwa と入力します。
暗号化
データベースインスタンスに基づいて、非暗号化 または SSL 暗号化 を選択します。
説明データベースが自主管理 Redis データベース (アクセス方法 が Alibaba Cloud インスタンス ではない) で、SSL 暗号化 を選択した場合は、CA 証明書 をアップロードし、CA キー を入力する必要もあります。
ページの下部で、[接続をテストして続行] をクリックします。
説明DTS サーバーの CIDR ブロックが、ソースデータベースとターゲットデータベースのセキュリティ設定に自動または手動で追加され、DTS サーバーからのアクセスが許可されていることを確認してください。詳細については、「DTS サーバーの IP アドレスをホワイトリストに追加する」をご参照ください。
ソースまたはターゲットデータベースが自己管理データベースであり、そのアクセス方法がAlibaba Cloud インスタンスに設定されていない場合は、DTS サーバーの CIDR ブロックダイアログボックスで接続テストをクリックします。
タスクオブジェクトを設定します。
オブジェクト設定 ページで、同期対象のオブジェクトを設定できます。
設定
説明
同期タイプ
完全データ同期 + 増分データ同期 がデフォルトで選択されています。
競合するテーブルの処理モード
エラーの事前チェックと報告: 宛先が空かどうかをチェックします。宛先が空の場合、事前チェックは成功します。宛先が空でない場合、事前チェック中にエラーが報告され、データ同期ジョブは開始されません。
エラーを無視して続行: ターゲットデータベース内のオブジェクトデータの存在検査 事前チェックをスキップします。
警告エラーを無視して続行 を選択すると、ソースと宛先の両方に同じキーが存在する場合、ソースデータが宛先データを上書きします。これにより、宛先でデータ損失が発生する可能性があります。このオプションは注意して選択してください。
ソースオブジェクト
ソースオブジェクト ボックスでオブジェクトをクリックし、
をクリックして、そのオブジェクトを 選択中のオブジェクト ボックスに移動します。説明データベースレベルで同期するオブジェクトを選択できます。 データベース内の一部のキーに対応するデータを同期する場合は、選択中のオブジェクト ボックスにある データフィルタリング 機能を使用できます。
選択中のオブジェクト
マッピング機能またはフィルター機能を使用すると、データを受信するデータベース (DB 0 から DB 255) を指定したり、プレフィックスによって同期するデータをフィルターしたりできます。選択中のオブジェクト ボックスで、同期するデータベースを右クリックし、表示される スキーマの編集 ダイアログボックスで設定を構成します。詳細については、「データベース名、テーブル名、および列名のマッピング」および「フィルター条件の設定」をご参照ください。
詳細設定へ をクリックします。
設定
説明
タスクのスケジュールに使用する専用クラスターの選択
デフォルトでは、DTS は共有クラスターでタスクをスケジュールするため、選択する必要はありません。タスクの安定性を高めるために、専用クラスターを購入して DTS 同期タスクを実行できます。詳細については、「DTS 専用クラスターとは」をご参照ください。
失敗した接続の再試行時間
同期タスクの開始後にソースまたはターゲットデータベースへの接続が失敗した場合、DTS はエラーを報告し、すぐに接続のリトライを開始します。デフォルトのリトライ時間は 720 分です。リトライ時間は 10 分から 1,440 分の間でカスタマイズできます。30 分以上の設定を推奨します。指定されたリトライ時間内に DTS が再接続すると、タスクは自動的に再開されます。それ以外の場合、タスクは失敗します。
説明同じソースまたはターゲットを持つ複数の DTS インスタンス (DTS インスタンス A と DTS インスタンス 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 を設定することで、増分同期タスクのレートを制限し、ターゲットデータベースの負荷を軽減することもできます。
環境タグ
環境タグを選択してインスタンスを識別できます。この例では、選択は不要です。
移行先データベースキーの有効期限を延長する
ソースデータベースからターゲットデータベースに同期されるキーの延長された有効期限を設定します。データ整合性を確保するため、有効期限を設定するコマンドが使用される場合は、キーの延長された有効期限を設定することを推奨します。
説明分散ロックのシナリオでは、これによりロックが迅速に解放されなくなる可能性があります。
EXPIRE key seconds PEXPIRE key milliseconds EXPIREAT key timestamp PEXPIREAT key timestampMsスレーブノードの使用
移行元の自己管理 Redis の インスタンスモード が クラスター の場合、プライマリノードまたはレプリカノードからデータを読み取るかを選択できます。デフォルト値は [いいえ] で、データはプライマリノードから読み取られます。
ETL 機能の設定
抽出・変換・書き出し (ETL) 機能を有効にするかどうかを指定します。詳細については、「ETL とは」をご参照ください。有効な値:
はい:ETL 機能を設定します。コードエディタでデータ処理文を入力できます。詳細については、「データ移行またはデータ同期タスクで ETL を設定する」をご参照ください。
いいえ: ETL 機能を構成しません。
[次へ: データ検証] をクリックしてタスクを設定します。
データ検証機能を使用するには、「データ検証の設定」をご参照ください。
タスクを保存し、事前チェックを実行します。
API 操作でこのインスタンスを設定するためのパラメーターを表示するには、次:タスク設定の保存と事前チェック ボタンにマウスカーソルを合わせ、ツールチップに表示される OpenAPI パラメーターのプレビュー をクリックします。
API パラメーターの表示が完了したら、ページの下部にある 次:タスク設定の保存と事前チェック をクリックします。
説明同期タスクが開始される前に、事前チェックが実行されます。タスクは事前チェックに合格した後にのみ開始できます。
事前チェックに失敗した場合は、失敗した項目の横にある詳細を表示をクリックし、指示に従って問題を解決した後、事前チェックを再実行してください。
事前チェック中に警告が生成された場合:
チェック項目が失敗し、無視できない場合は、項目の横にある詳細を表示をクリックします。その後、指示に従って問題を修正し、事前チェックを再実行します。
無視できるチェック項目については、アラートの詳細を確認、無視、OK、再度事前チェックを実行 を順にクリックすることで、警告をスキップして事前チェックを再実行できます。 チェック項目の警告を無視すると、データの不整合などの問題が発生し、ビジネスにリスクをもたらす可能性があります。
インスタンスを購入します。
成功率 が 100% になったら、次:インスタンスの購入 をクリックします。
購入 ページで、データ同期インスタンスの課金方法とリンク仕様を選択します。詳細については、次の表をご参照ください。
カテゴリ
パラメーター
説明
新しいインスタンスクラス
課金方法
サブスクリプション:インスタンス作成時にお支払いいただきます。長期的なニーズに適しており、従量課金よりも手頃で、サブスクリプション期間が長いほど割引率が高くなります。
従量課金:時間単位で課金されます。短期的なニーズに適しています。使用後すぐにインスタンスをリリースしてコストを節約できます。
リソースグループの設定
インスタンスが属するリソースグループです。 デフォルトは [デフォルトリソースグループ] です。 詳細については、「Resource Management とは」をご参照ください。
リンク仕様
DTS は、異なるパフォーマンスレベルの同期仕様を提供します。リンク仕様は同期レートに影響します。ビジネスシナリオに基づいて選択できます。詳細については、「データ同期リンク仕様」をご参照ください。
サブスクリプション期間
サブスクリプションモードでは、サブスクリプションインスタンスの期間と数量を選択します。月次サブスクリプションの場合は 1〜9 か月、年次サブスクリプションの場合は 1、2、3、または 5 年から選択できます。
説明このオプションは、課金方法が サブスクリプション の場合にのみ表示されます。
構成を完了したら、Data Transmission Service (従量課金) 利用規約を読んで選択してください。
[購入して開始] をクリックし、OK ダイアログボックスで [OK] をクリックします。
データ同期ページでタスクの進捗状況を確認できます。
説明完全データ同期増分データ同期同期タイプ増分データ同期 で と の両方を選択した場合、タスクはデータ同期タスクリストページで タスクとして表示されます。