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

Data Transmission Service:自主管理 Redis クラスターから Tair (Redis OSS-Compatible) への同期

最終更新日:Apr 21, 2026

Data Transmission Service (DTS) は、Redis クラスター間の一方向同期をサポートしており、データ移行、アクティブ/アクティブアーキテクチャ、ジオディザスタリカバリなどのシナリオに最適です。このトピックでは、データ同期タスクを設定して、自主管理 Redis クラスターから Tair (Redis OSS-Compatible) インスタンスにデータを移行する方法について説明します。

Tair (Redis OSS-Compatible) インスタンスから自主管理 Redis クラスターにデータを同期する手順も同様です。ビジネス要件に応じて、ソースインスタンスと宛先インスタンスを設定する必要があります。

警告

データ同期タスクを設定した後は、ソースまたは宛先データベースの アーキテクチャタイプを変更しないでください。たとえば、アーキテクチャをマスター/スレーブからクラスターに変更するなどです。これにより、データ同期タスクが失敗する可能性があります。

前提条件

  • 自主管理 Redis データベースのバージョンが 2.8、3.0、3.2、4.0、または 5.0 であること。

    説明

    宛先の Tair (Redis OSS-Compatible) インスタンスは、バージョン 4.0 または 5.0 である必要があります。異なるバージョン間でデータを同期する場合、以前のバージョンから新しいバージョンへの同期のみがサポートされることにご注意ください。事前に互換性を確認する必要があります。たとえば、テスト用に従量課金の Redis クラスターインスタンスを作成できます。テストが完了したら、インスタンスをリリースするか、サブスクリプションインスタンスに変換できます。

  • 宛先の Tair (Redis OSS-Compatible) インスタンスのストレージ容量が、ソースの Redis データベースが使用するストレージ容量よりも大きいこと。

  • ソースの Redis クラスター内の各ノードで psync コマンドを実行でき、すべてのノードが接続に同じパスワードを使用していること。

  • repl-timeout パラメーターは、ソース Redis インスタンスのスレーブとマスター間のレプリケーションタイムアウトを指定します。デフォルト値は 60 秒です。config set repl-timeout 600 コマンドを実行して、値を 600 秒に設定することを推奨します。ソースデータベースが大きい場合は、必要に応じて repl-timeout パラメーターの値を増やしてください。

制限事項

  • DTS は、初期完全データ同期中にソースおよび宛先データベースのリソースを消費します。これにより、データベースサーバーの負荷が増加する可能性があります。データベースのトラフィックが多い場合やサーバーの仕様が低い場合は、データベースに高い負荷がかかったり、利用できなくなったりする可能性があります。データを同期する前に、影響を慎重に評価し、オフピーク時間に同期を実行してください。

  • 同期リンクの安定性を確保するために、redis.conf ファイル内の repl-backlog-size パラメーターの値を増やしてください。

  • 同期の品質を確保するために、DTS はソースの Redis データベースに DTS_REDIS_TIMESTAMP_HEARTBEAT という名前のキーを挿入して、更新タイムスタンプを記録します。

  • ソースクラスターで FLUSHDB または FLUSHALL コマンドを実行しないでください。これにより、ソースデータベースと宛先データベースの間でデータの不整合が発生する可能性があります。

  • 宛先データベースのメモリが不足し、データのエビクションがトリガーされると、データの不整合が発生する可能性があります。これは、Tair (Redis OSS-compatible) のデフォルトのエビクションポリシー (maxmemory-policy) が volatile-lru であるためです。同期タスクは実行を継続しますが、データに不整合が生じます。

    これを防ぐには、宛先データベースのエビクションポリシーを noeviction に設定します。宛先データベースのメモリが不足すると、データ書き込みが失敗し、タスクも失敗します。これにより、エビクションによるデータ損失を防ぐことができます。

    説明

    データエビクションポリシーの詳細については、「Redis データエビクションポリシーの概要」をご参照ください。

  • ソースデータベースの一部のキーが有効期限切れに設定されている場合、有効期限が切れてもすぐに削除されないことがあります。その結果、info コマンドで確認できる宛先データベースのキー数が、ソースデータベースよりも少なくなる可能性があります。

    説明

    有効期限ポリシーが設定されていない、または有効期限が切れていないキーの数は、ソースデータベースと宛先データベースで同じです。

  • データ同期中に、シャードの追加または削除によって自主管理 Redis データベースがスケールされたり、メモリがスケールアップされたりした場合は、タスクを再設定する必要があります。データ整合性を確保するために、タスクを再設定する前に、宛先の Redis インスタンスに同期されたデータをクリアする必要があります。

  • データ同期中に、自主管理 Redis データベースのエンドポイントが変更された場合は、タスクを再設定する必要があります。

  • スタンドアロン Redis インスタンスからクラスターモードの Redis インスタンスにデータを同期する場合、以下の制限が適用されます。Redis クラスターでは、同じスロットにあるキーに対してのみコマンドを操作できます。キーが複数のスロットにまたがるソースデータベースで複数キー操作を実行すると、次のエラーが発生します。

    CROSSSLOT Keys in request don't hash to the same slot

    タスクの中断を防ぐために、データ同期中は単一キー操作のみを実行することを推奨します。

  • 宛先インスタンスがクラスターインスタンスであり、そのシャードの 1 つがメモリ制限に達した場合、または宛先インスタンスのストレージ容量が不足した場合、DTS タスクはメモリ不足 (Out of Memory) エラーで失敗します。
  • 宛先インスタンスで TDE (透過的データ暗号化) が有効になっている場合、DTS を使用してデータを同期することはできません。

課金

同期タイプ

料金

スキーマ同期と完全データ同期

無料。

増分データ同期

有料です。詳細については、「課金概要」をご参照ください。

サポートされる同期トポロジ

  • 一対一の一方向同期

  • 一対多の一方向同期

  • カスケード型の一方向同期

これらの同期トポロジとその注意事項の詳細については、「データ同期トポロジの概要」をご参照ください。

サポートされる同期コマンド

  • 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 (ソース Redis インスタンスがバージョン 4.0 の場合のみサポート)

  • XADD、XCLAIM、XDEL、XAUTOCLAIM、XGROUP CREATECONSUMER、XTRIM

説明
  • PUBLISH コマンドはサポートされていません。

  • EVAL または EVALSHA によって呼び出される Lua スクリプトについては、宛先が実行結果を明示的に返さないため、DTS は増分データ同期中にスクリプトが正常に実行されることを保証できません。

  • sync または psync を使用して List データを再送信する場合、DTS は宛先の既存データをクリアしません。これにより、データが重複する可能性があります。

操作手順

  1. データ同期タスクを購入します

    説明

    タスクを購入する際、ソースと宛先の両方のインスタンスタイプを Redis に設定します。

  2. Data Transmission Service コンソールにログインします。

    説明

    Data Management (DMS) コンソールにリダイレクトされた場合は、右下隅の jiqiren アイコンをクリックし、次に 返回旧版 アイコンをクリックして以前のバージョンの DTS コンソールに戻ります。

  3. 左側のナビゲーションウィンドウで、データ同期 をクリックします。

  4. [同期タスク] ページの上部で、宛先インスタンスが配置されているリージョンを選択します。

  5. 購入したデータ同期インスタンスを見つけ、[タスクの設定] をクリックします。

  6. ソースインスタンスと宛先インスタンスを設定します。

    カテゴリ

    設定

    説明

    N/A

    同期タスク名

    DTS は自動的にタスク名を生成します。簡単に識別できるように、わかりやすい名前を指定することを推奨します。名前は一意である必要はありません。

    ソースインスタンスの詳細

    インスタンスタイプ

    [ECS 上の自己管理データベース] を選択します。ソースデータベースがデプロイされている場所に応じて、[ECS 上の自己管理データベース] または [Express Connect/VPN Gateway/Smart Access Gateway 経由で接続された自己管理データベース] を選択できます。

    このトピックでは、[ECS 上の自己管理データベース] を例として使用します。他のタイプの自主管理 Redis データベースの設定プロセスも同様です。

    インスタンスリージョン

    データ同期タスクを購入したときに選択したソースインスタンスのリージョンです。この設定は変更できません。

    ECS インスタンス ID

    自主管理 Redis クラスターのマスターノードが存在する ECS インスタンスの ID を選択します。

    データベースタイプ

    これは Redis に固定されています。

    インスタンスモード

    クラスター を選択します。

    ポート

    自主管理 Redis クラスターのマスターノードのサービスポートを入力します。この例では、7000 が入力されています。

    データベースパスワード

    自主管理 Redis データベースのパスワードを入力します。

    説明

    このパラメーターはオプションです。パスワードが設定されていない場合は、空白のままにすることができます。

    宛先インスタンスの詳細

    インスタンスタイプ

    [Redis インスタンス] を選択します。

    インスタンスリージョン

    データ同期タスクを購入したときに選択した宛先インスタンスのリージョンです。この設定は変更できません。

    インスタンス ID

    宛先の Tair (Redis OSS-Compatible) インスタンスの ID を選択します。

    データベースパスワード

    宛先の Tair (Redis OSS-Compatible) インスタンスのパスワードを入力します。

    説明

    データベースパスワードは、<ユーザー名>:<パスワード> の形式である必要があります。たとえば、Redis インスタンスのカスタムユーザー名が admin で、パスワードが Rp829dlwa の場合、admin:Rp829dlwa と入力します。

  7. ページ右下の [ホワイトリストを承認して次のステップへ] をクリックします。

    説明
    • ソースまたは宛先が ApsaraDB RDS for MySQLApsaraDB for MongoDB インスタンスなどの Alibaba Cloud データベースインスタンス、または ECS 上の自己管理データベースである場合、DTS は対応するリージョンのサーバーの CIDR ブロックをデータベースインスタンスのホワイトリストまたは ECS インスタンスのセキュリティグループルールに自動的に追加します。手動で追加する必要はありません。詳細については、「DTS サーバーの CIDR ブロック」をご参照ください。

    • DTS タスクが完了またはリリースされた後、DTS サーバーの CIDR ブロックを手動で削除してください。

  8. 既存テーブルの処理モードと同期するオブジェクトを設定します。配置处理模式和同步对象

    設定

    説明

    既存テーブルの処理モード

    • [事前チェックしてエラーを報告]:宛先データベースが空であるかを確認します。同期対象の宛先データベースが空の場合、確認項目は合格となります。空でない場合は、事前チェックフェーズでエラーが報告され、データ同期タスクは開始されません。

    • [無視して続行]:宛先データベースが空であるかの確認をスキップします。

      警告

      [無視して続行] を選択し、同期中に宛先データベースのキーがソースデータベースのキーと同じであった場合、ソースデータベースのデータが宛先データベースのデータを上書きします。このオプションは慎重に選択してください。

    同期するオブジェクト

    • [ソースオブジェクト] ボックスで、同期するデータベースをクリックし、 をクリックして [選択したオブジェクト] ボックスに移動します。

    • 同期の粒度はデータベースレベルです。キーレベルの選択はサポートされていません。

    マッピング名の変更

    マッピング名の変更はサポートされていません。

    ソーステーブルでのオンライン DDL 中に一時テーブルを宛先データベースにレプリケートする

    Data Management Service (DMS) を使用してソースデータベースでオンライン DDL 変更を実行する場合、これらの変更によって生成された一時テーブルを同期するかどうかを指定できます。

    • :オンライン DDL 変更によって生成された一時テーブルからデータを同期します。

      説明

      オンライン DDL 変更によって一時テーブルに大量のデータが生成されると、データ同期が遅延する可能性があります。

    • いいえ:一時テーブルからデータを同期しません。ソースデータベースからの元の DDL データのみが同期されます。

      説明

      このオプションは、宛先データベースでテーブルロックを引き起こします。

    接続失敗時の再試行期間

    デフォルトでは、DTS がソースまたは宛先データベースへの接続に失敗した場合、720 分 (12 時間) 再試行します。カスタムの再試行期間を指定することもできます。指定された期間内に DTS が再接続した場合、同期タスクは自動的に再開されます。それ以外の場合、タスクは失敗します。

    説明

    DTS インスタンスは接続再試行期間中も課金されるため、ビジネス要件に基づいてカスタムの再試行期間を設定するか、ソースおよび宛先インスタンスがリリースされた後、速やかに DTS インスタンスをリリースしてください。

  9. 設定が完了したら、ページ右下の [次へ] をクリックします。

  10. 初期同期オプションを設定します。このオプションは [完全データ + 増分データ] に設定されています。Redis同步初始化

    説明
  11. 設定が完了したら、ページ右下の [事前チェックして開始] をクリックします。

    説明
    • DTS は、同期タスクが開始される前に事前チェックを実行します。タスクは、事前チェックに合格した後にのみ開始できます。

    • 事前チェックが失敗した場合は、失敗した項目の横にある 提示 アイコンをクリックして詳細を表示します。

      • 提供された詳細に基づいて問題を修正し、事前チェックを再実行します。

      • 修正が不要な警告項目がある場合は、無視 または [警告を無視して再度事前チェック] を選択して項目をスキップし、事前チェックを再実行できます。

  12. [事前チェック] ダイアログボックスで、[事前チェックに合格しました] というメッセージが表示された後、[事前チェック] ダイアログボックスを閉じます。同期タスクは自動的に開始されます。

  13. 同期タスクのリンク初期化が完了するのを待ちます。ステータスが [同期中] に変わります。数据同步状态

    説明

    データ同期タスクのステータスは、[データ同期] ページで確認できます。