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

Tair (Redis® OSS-Compatible):オンプレミスデータベースから Alibaba Cloud への移行

最終更新日:Nov 09, 2025

Data Transmission Service (DTS) を使用すると、オンプレミス、ECS インスタンス、またはサードパーティクラウドにデプロイされた Redis データベースを、サービスを中断することなく Tair (Redis OSS-compatible) に移行できます。DTS は、データベースサービスを稼働させたまま、Tair (Redis OSS-compatible) への完全移行と増分移行をサポートします。このメソッドは、AOF メソッドを使用してデータを移行するよりも高いパフォーマンスとセキュリティを提供します。

機能概要

  • 完全移行

    DTS は、すべての既存データをソースデータベースからターゲットデータベースに移行します。完全移行は無料です。

  • 増分移行

    完全移行に加えて、DTS はソースデータベースからターゲットデータベースへの増分更新をリアルタイムで同期します。増分移行を実行するには、ソースデータベースで PSYNC または SYNC コマンドを実行できる必要があります。そうでない場合は、完全移行のみを実行できます。増分移行は、データ量ではなく、移行期間に基づいて課金されます。詳細については、「課金項目」をご参照ください。

    説明

    増分移行を成功させるには、ソースデータベースのレプリケーション出力バッファーの制限を無効にする必要があります。これを行うには、ソースデータベースに接続し、次のコマンドを実行します: CONFIG SET client-output-buffer-limit 'slave 0 0 0'

前提条件

Tair (Redis OSS-compatible) インスタンスを作成済みであること。宛先インスタンスには、自主管理 Redis データベースで使用されているメモリよりも多くのメモリが必要です。詳細については、「インスタンスの作成」をご参照ください。

説明

ターゲットデータベースの合計メモリは、ソースデータベースで使用されるメモリより少なくとも 10% 大きくする必要があります。ターゲットデータベースのメモリが不足している場合、データ不整合やタスクの失敗が発生する可能性があります。この場合、ターゲットデータベースをクリアし、タスクを再設定する必要があります。

注意事項

移行中は、インスタンスのスケーリング、インスタンスタイプの変更、ソースまたはターゲットデータベースのエンドポイントの変更を行わないでください。これらの操作は移行タスクの失敗を引き起こす可能性があり、再設定が必要になります。移行プロセスはソースデータベースとターゲットデータベースの両方でリソースを消費するため、オフピーク時間に移行を実行することをお勧めします。

手順

  1. 移行タスク一覧ページに移動します。

    1. Data Management (DMS) コンソールにログインします。

    2. 上部のメニューバーで、[Data + AI] > [Data Transmission Service (DTS)] > [データ移行] を選択します。

    3. [移行タスク] の右側で、宛先インスタンスが配置されているリージョンを選択します。

  2. [タスクの作成] をクリックします。

  3. ソースデータベースとターゲットデータベースの情報を設定し、ページ下部の [接続をテストして続行] をクリックします。

    カテゴリ

    設定

    説明

    なし

    タスク名

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

    ソースデータベース

    DMS データベースインスタンスの選択

    ソースデータベースを DMS に追加している場合は、ここで選択できます。選択後、以下のソースデータベース情報を入力する必要はありません。追加していない場合は、このオプションを無視してください。

    データベースタイプ

    Tair/Redis を選択します。

    アクセス方法

    ソースデータベースがデプロイされている場所に基づいて接続タイプを選択します。インスタンスがオンプレミスのデータセンターまたはサードパーティクラウドにある場合は、パブリック IP を選択します。

    この例では、ECS 上の自己管理データベース を使用します。

    インスタンスリージョン

    ECS インスタンスが配置されているリージョンを選択します。インスタンスがオンプレミスのデータセンターまたはサードパーティクラウドにある場合は、ソースデータベースに最も近いリージョンを選択します。

    Alibaba Cloud アカウント間

    この例では、同じ Alibaba Cloud アカウント内での移行を示します。いいえ を選択します。

    ECS インスタンス ID

    ソースデータベースが配置されている ECS インスタンスの ID を選択します。

    説明

    ソースデータベースがクラスターアーキテクチャを使用している場合は、いずれかのマスターノードが配置されている ECS インスタンスの ID を選択します。

    インスタンスモード

    ソースデータベースのアーキテクチャに基づいてモードを選択します:

    • Basic Edition: 標準アーキテクチャ (マスター/レプリカ)。

    • Cluster Edition: クラスターアーキテクチャ。ソースデータベースがクラスターアーキテクチャを使用している場合は、[ポート] パラメーターにいずれかのマスターノードのポート番号を入力します。

    ポート

    ソース Redis データベースのポートを入力します。デフォルトは 6379 です。

    認証方法

    必要に応じて パスワードログオン または パスワードなしのログオン を選択します。

    説明

    自主管理 Redis データベースにパスワードがない場合は、パスワードなしのログオン を選択できます。

    データベースパスワード

    ソース Redis データベースへの接続に使用するパスワードを入力します。

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

    • カスタムアカウントを使用する場合、そのアカウントには読み取り権限が必要です。アカウントとパスワードのフォーマットは <user>:<password> です。たとえば、Redis インスタンスのカスタムアカウントが admin でパスワードが Rp829dlwa の場合、データベースパスワードに admin:Rp829dlwa と入力します。

    接続方法

    必要に応じて 非暗号化接続 または SSL 暗号化接続 を選択します。

    説明

    自主管理 Redis データベース ([接続タイプ]クラウドインスタンス ではない場合) が SSL 暗号化接続 を使用している場合は、CA 証明書 をアップロードし、CA キー を入力する必要もあります。

    宛先データベース

    DMS データベースインスタンスの選択

    ターゲットデータベースを DMS に追加している場合は、ここで選択できます。選択後、以下のターゲットデータベース情報を入力する必要はありません。追加していない場合は、このオプションを無視してください。

    データベースタイプ

    Tair/Redis がデフォルトで選択されています。

    アクセス方法

    クラウドインスタンス を選択します。

    インスタンスリージョン

    宛先インスタンスが配置されているリージョンを選択します。

    インスタンス ID

    宛先インスタンス ID を選択します。

    認証方法

    必要に応じて パスワードログオン または パスワードなしのログオン を選択します。この例では パスワードログオン を使用します。

    説明

    Tair (Redis OSS-compatible) インスタンスで VPC のパスワードなしのアクセス機能 が有効になっていない場合は、パスワードログオン を選択します。

    データベースパスワード

    ターゲットデータベースに接続するためのパスワードを入力します。

    説明

    カスタムアカウントを使用する場合、そのアカウントには書き込み権限が必要です。アカウントとパスワードのフォーマットは <user>:<password> です。たとえば、Redis インスタンスのカスタムアカウントが admin でパスワードが Rp829dlwa の場合、データベースパスワードに admin:Rp829dlwa と入力します。

    接続方法

    必要に応じて 非暗号化接続 または SSL 暗号化接続 を選択します。

  4. タスクオブジェクトを設定し、ページ下部の [次へ: 詳細設定] をクリックします。

    設定

    説明

    移行タイプ

    必要に応じて 移行タイプ を選択します。

    • 完全移行 + 増分移行 (デフォルト): ネイティブの Redis 同期ロジックを使用して、データをメモリスナップショットとして宛先に書き込みます。これにより、ソースデータベースを停止せずに移行できます。

      ソースデータベースに SYNC または PSYNC 権限がない場合は、完全データ移行 を選択します。

    • 完全データ移行: SCAN コマンドを使用してソースデータベース全体を走査し、走査したデータを宛先に書き込みます。データ整合性を確保するため、移行中にソースインスタンスに新しいデータを書き込まないでください。

    競合テーブルの処理モード

    • 事前チェックしてエラー時にブロック (デフォルト): ターゲットデータベースにキーが存在するかどうかをチェックします。

      キーが存在する場合、事前チェックフェーズでエラーが報告され、移行タスクは開始されません。キーが存在しない場合、チェックは合格します。

    • 無視して続行: [ターゲットデータベース内の既存オブジェクトのチェック] をスキップします。同じ名前のキーがターゲットデータベースにすでに存在する場合、それらは上書きされます。

    ソースオブジェクト選択中のオブジェクト

    ソースオブジェクト ボックスで移行するオブジェクトを選択し、image.png をクリックして 選択中のオブジェクト ボックスに移動します。選択したオブジェクトを削除するには、選択中のオブジェクト ボックスでそれをクリックし、image.png をクリックして ソースオブジェクト ボックスに戻します。

    説明

    移行の粒度はデータベースレベル (DB 0 から DB 255) です。

  5. 詳細設定を行い、ページ下部の [次へ: データ検証] をクリックします。

    ほとんどの場合、デフォルト設定のままにできます。詳細については、「付録: 詳細設定」をご参照ください。

  6. 検証設定を行い、ページ下部の [次へ: タスクを保存して事前チェック] をクリックします。

    ほとんどの場合、デフォルト設定のままにできます。詳細については、「DTS 同期または移行インスタンスのデータ検証を設定する」をご参照ください。

  7. 事前チェックを実行します。事前チェックが完了したら、[次へ: 購入] をクリックします。

    事前チェックで [警告] または [失敗] した項目が返された場合は、1 つずつ対処する必要があります。[詳細の表示] をクリックして、提供された指示に基づいて項目を修正できます。また、[アラート詳細の確認] をクリックして項目を無視することもできますが、これによりデータ不整合が発生し、ビジネスにリスクをもたらす可能性があります。詳細については、「事前チェックの問題」をご参照ください。問題を解決した後、事前チェックを再度実行します。

  8. [購入] ページで設定を行い、[購入して開始] をクリックします。

    • (オプション) DTS 移行リンクの リソースグループ を選択します。デフォルトでは デフォルトのリソースグループ が使用されます。

    • (オプション) DTS 移行リンクのインスタンスクラスを選択します。インスタンスクラスが高いほど移行速度は速くなりますが、コストも高くなります。デフォルトは large です。詳細については、「データ移行リンクの仕様」をご参照ください。

    • サービス利用規約を読んで選択します。

    購入後、移行タスクが開始されます。データ移行ページで進行状況を確認できます。

次のステップ

  • 増分移行を実行した場合、移行完了後にコンソールでタスクを手動で終了またはリリースする必要があります。

  • 移行されたデータを検証できます。詳細については、「移行されたデータの検証」をご参照ください。

参考資料

データベースがオンライン移行を必要としない場合は、redis-cli などの軽量ツールを使用して AOF ファイルをインポートしてデータ移行を行うことができます。詳細については、「AOF ファイルを使用したデータ移行」をご参照ください。

よくある質問

  • 接続テストが失敗するのはなぜですか?

    次の項目を確認してください:

    • アカウントまたはパスワードが正しくありません。Redis パスワードのフォーマットは user:password です。詳細については、「インスタンスのログオン方法」をご参照ください。

    • ソースデータベースがオンプレミスのデータセンターまたはサードパーティクラウドにある場合、ネットワークファイアウォールが存在する可能性があります。DTS からのアクセスを許可するには、対応するリージョンの DTS サーバーの IP アドレスをファイアウォールの許可リストに手動で追加する必要があります。詳細については、「DTS サーバーの CIDR ブロックを許可リストに追加する」をご参照ください。

  • タスクが失敗するのはなぜですか?

    • 移行中に、スケーリング、インスタンスタイプの変更、ソースまたはターゲットデータベースのエンドポイントの変更などの操作を行うと、タスクが失敗します。タスクを再設定する必要があります。

    • 宛先インスタンスのメモリが不足している場合、またはクラスターインスタンスでシャードがメモリ制限に達した場合、DTS タスクはメモリ不足 (OOM) エラーで失敗します。

    • 宛先インスタンスで TDE (透過的データ暗号化) が有効になっている場合、DTS を使用したデータ移行はサポートされません。

  • データ不整合が発生するのはなぜですか?

    • ソースデータベースの一部のキーに有効期限ポリシー (Expire) が設定されている場合、宛先データベースのキーの数がソースよりも少なくなることがあります。これは、期限切れのキーが迅速に削除されなかった可能性があるためです。

    • List オブジェクトの場合、DTS は PSYNC または SYNC を使用してデータを転送する際に、宛先の既存データに対して FLUSH 操作を実行しません。これにより、データが重複する可能性があります。

    • 完全移行中にネットワークが中断された場合、DTS は完全移行を複数回リトライすることがあります。このプロセスでは、同じ名前のキーが自動的に上書きされます。リトライ中にソースデータベースで削除操作が実行された場合、そのコマンドは宛先に同期されません。これにより、宛先データベースのデータがソースよりも多くなる可能性があります。

  • 事前チェックで Redis のエビクションポリシーが noeviction に設定されているかどうかを確認するのはなぜですか?

    Tair (Redis OSS-compatible) のデフォルトのデータエビクションポリシー (maxmemory-policy) は volatile-lru です。ターゲットデータベースのメモリが不足すると、データエビクションがトリガーされ、ソースデータベースとターゲットデータベースの間でデータ不整合が発生する可能性があります。これはタスクの正常な動作には影響しません。この問題を回避するには、ターゲットデータベースのデータエビクションポリシーを noeviction に設定します。このポリシーを使用し、ターゲットデータベースのメモリが不足した場合、データ書き込みは失敗し、タスクも失敗します。ただし、ターゲットデータベースはエビクションによってデータを失うことはありません。データエビクションポリシーの詳細については、「Redis データエビクションポリシー」をご参照ください。

  • ソースデータベースに DTS_REDIS_TIMESTAMP_HEARTBEAT キーが存在するのはなぜですか?

    移行と同期の品質を確保するため、DTS はソースデータベースにプレフィックス DTS_REDIS_TIMESTAMP_HEARTBEAT を持つキーを挿入して更新タイムスタンプを記録します。ソースデータベースがクラスターアーキテクチャを使用している場合、DTS はこのキーを各シャードに挿入します。DTS はタスク中にこのキーをフィルターで除外し、タスク終了後にキーは自動的に期限切れになります。

  • 増分移行でサポートされているコマンドは何ですか?

    • 次のコマンドがサポートされています:

      • APPEND

      • BITOP, BLPOP, BRPOP, and BRPOPLPUSH

      • DECR, DECRBY, and DEL

      • EVAL, EVALSHA, EXEC, EXPIRE, and EXPIREAT

      • FLUSHALL and FLUSHDB

      • 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, PSETEX, and PUBLISH

      • 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

      • XADD, XCLAIM, XDEL, XAUTOCLAIM, XGROUP CREATECONSUMER, and XTRIM

    • EVAL または EVALSHA によって呼び出される Lua スクリプトの場合、宛先が実行結果を明示的に返さないため、DTS はスクリプトが正常に実行されたかどうかを確認できません。

付録: 詳細設定

設定

説明

失敗した接続の再試行時間

移行タスクの接続に失敗した場合、DTS は継続的に接続をリトライします。デフォルトのリトライ期間は 720 分で、値の範囲は 10 から 1440 分です。リトライ期間内に接続が回復した場合、移行タスクは自動的に再開されます。そうでない場合、タスクは失敗します。ビジネスニーズに応じてリトライ期間をカスタマイズできます。30 分以上に設定することをお勧めします。

DTS はリトライ期間中もサービスの課金を継続します。

移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。

移行中に、ソースまたはターゲットデータベースで接続以外の問題が発生した場合、DTS はエラーを報告し、継続的にリトライします。デフォルトのリトライ期間は 10 分で、値の範囲は 10 から 1440 分です。リトライ期間内に関連操作が正常に実行された場合、移行タスクは自動的に再開されます。そうでない場合、タスクは失敗します。期間を 10 分以上に設定することをお勧めします。

完全なデータ移行のスロットリングを有効化

増分データを書き込むと、宛先インスタンスの負荷が増加する可能性があります。1 秒あたりに移行される行数とデータ量に制限を設定することで、増分移行をスロットリングできます。これにより、宛先インスタンスの負荷を軽減できます。デフォルトは いいえ です。

環境タグ

インスタンスを識別するための環境タグを選択できます。

ターゲットデータベースのキー有効期限を延長する

この設定は、ターゲットデータベースのキーの有効期限を延長します。デフォルトの延長時間は 1800 秒です。移行時にキーがすでに期限切れになっている場合、そのキーはターゲットデータベースに移行されません。

スレーブノードの使用

自主管理ソース Redis の インスタンスモードクラスター の場合、スレーブノードからデータを読み取るかどうかを選択できます。デフォルトは いいえ で、これはマスターノードからデータが読み取られることを意味します。

ETL の設定

ETL (抽出·変換·書き出し) 機能を設定できます。ETL の詳細については、「ETL とは」をご参照ください。

  • はい: ETL 機能を設定します。テキストボックスにデータ処理ステートメントを入力できます。詳細については、「DTS 移行または同期タスクで ETL を設定する」をご参照ください。

  • いいえ (デフォルト): ETL 機能を設定しません。

アラート監視

データ同期インスタンスのアラートを設定するかどうかを指定します。タスクが失敗した場合、または同期遅延が指定されたしきい値を超えた場合、アラート連絡先は通知を受け取ります。有効な値:

  • いいえ: アラートを有効にしません。

  • はい: アラートを設定します。この場合、アラートのしきい値とアラート通知設定も設定する必要があります。詳細については、「モニタリングとアラートの設定」トピックの「DTS タスク作成時のモニタリングとアラートの設定」セクションをご参照ください。