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

Data Transmission Service:ApsaraDB RDS for PostgreSQL インスタンス間でのデータ移行

最終更新日:Apr 08, 2025

このトピックでは、Data Transmission Service (DTS) を使用して、ApsaraDB RDS for PostgreSQL インスタンス間でスキーマ移行、フルデータ移行、増分データ移行を実行する方法について説明します。 ApsaraDB RDS for PostgreSQL インスタンス間でデータを移行する場合は、サポートされているすべての移行タイプを選択して、サービスの継続性を確保できます。

前提条件

  • ソースとターゲットの ApsaraDB RDS for PostgreSQL インスタンスが作成されていること。 詳細については、「インスタンスの作成」をご参照ください。

    説明
    • ソースデータベースとターゲットデータベースのサポートされているバージョンについては、「データ移行シナリオの概要」をご参照ください。

    • 互換性を確保するために、ターゲットデータベースのバージョンは、ソースデータベースのバージョンと同じかそれ以上である必要があります。 ターゲットデータベースのバージョンがソースデータベースのバージョンよりも古い場合、データベースの互換性の問題が発生する可能性があります。

  • ターゲット ApsaraDB RDS for PostgreSQL インスタンスの使用可能なストレージ容量は、ソース ApsaraDB RDS for PostgreSQL インスタンスのデータの合計サイズよりも大きい必要があります。

使用上の注意

カテゴリ

説明

ソースデータベースの制限

  • 移行するテーブルには、PRIMARY KEY 制約または UNIQUE 制約が必要です。また、すべてのフィールドが一意である必要があります。 そうでない場合、ターゲットクラスターに重複したデータレコードが含まれる可能性があります。

    説明

    データの受信に使用するテーブルが DTS を使用して作成されていない場合([同期タイプ] パラメーターで [スキーマ同期] が選択されていない場合)、そのテーブルとソースデータベースから移行されるテーブルが同じ PRIMARY KEY 制約または NOT NULL UNIQUE 制約を持っていることを確認してください。 そうでない場合、ターゲットデータベースに重複したデータレコードが含まれる可能性があります。

    ソースデータベースの名前には、ハイフン (-) を含めることはできません。 例:dts-testdata。

  • 移行対象のオブジェクトとしてテーブルを選択し、ターゲットデータベース内のテーブルや列の名前変更など、テーブルを編集する必要がある場合は、1 つのデータ移行タスクで最大 1,000 個のテーブルを移行できます。 1,000 個を超えるテーブルを移行するタスクを実行すると、リクエストエラーが発生します。 この場合、複数のタスクを構成してテーブルを移行するか、データベース全体を移行するタスクを構成することをお勧めします。

  • DTS は、ソースデータベースの一時テーブル、内部トリガー、または C プログラミング言語で記述された一部の内部プロシージャと関数を移行することはできません。 DTS は、COMPOSITE、ENUM、および RANGE タイプのカスタムパラメーターを移行できます。 移行するテーブルには、PRIMARY KEY、FOREIGN KEY、UNIQUE、または CHECK 制約が必要です。

  • 増分データを移行する必要がある場合は、次の要件が満たされていることを確認する必要があります。

    • wal_level パラメーターの値を logical に設定する必要があります。

    • 増分データ移行のみを実行する場合、ソースデータベースの先行書き込みログ (WAL) ログは 24 時間以上保存する必要があります。 フルデータ移行と増分データ移行の両方を実行する場合、ソースデータベースの WAL ログは 7 日以上保存する必要があります。 そうでない場合、Data Transmission Service (DTS) は WAL ログを取得できず、タスクが失敗する可能性があります。 例外的な状況では、データの不整合または損失が発生する可能性があります。 フルデータ移行が完了したら、保存期間を 24 時間以上に設定できます。 前述の要件に基づいて WAL ログの保存期間を設定してください。 そうでない場合、DTS のサービスレベル契約 (SLA) におけるサービスの信頼性またはパフォーマンスが保証されない場合があります。

  • ソースデータベースで実行する操作の制限:

    • スキーマ移行とフルデータ移行中は、データベースまたはテーブルのスキーマを変更する DDL 操作を実行しないでください。 そうでない場合、データ移行タスクは失敗します。

    • フルデータ移行のみを実行する場合、データ移行中にソースデータベースにデータを書き込まないでください。 そうでない場合、ソースデータベースとターゲットデータベース間でデータの不整合が発生します。 データの整合性を確保するために、スキーマ移行、フルデータ移行、および増分データ移行を移行タイプとして選択することをお勧めします。

    • ソースデータベースからの論理サブスクリプションには、DTS の使用に制限があります。 増分データの変更時にソースデータベースから移行される単一のデータのサイズが 256 MB を超えると、実行中のデータ移行インスタンスは実行に失敗し、回復できません。 タスクを再構成する必要があります。

  • ソースデータベースに 1 つ以上の長時間トランザクションがあり、データ移行タスクで増分データが移行される場合、長時間トランザクションがコミットされる前に生成された WAL ログが蓄積される可能性があります。 その結果、ソースデータベースのディスク容量が不足する可能性があります。

  • 実行中のデータ移行インスタンスのソースデータベースのメジャーバージョンアップグレードが実行されると、インスタンスは実行に失敗し、回復できません。 タスクを再構成する必要があります。

その他の制限

  • ソース ApsaraDB RDS for PostgreSQL インスタンスでプライマリ/セカンダリスイッチオーバーを実行する必要がある場合は、論理レプリケーションスロットフェイルオーバー機能を有効にする必要があります。 これにより、論理サブスクリプションが中断されるのを防ぎ、データ移行タスクが想定どおりに実行されるようにします。 詳細については、「論理レプリケーションスロットフェイルオーバー」をご参照ください。

  • 1 つのデータ移行タスクでは、1 つのデータベースからのみデータを移行できます。 複数のデータベースからデータを移行するには、データベースごとにデータ移行タスクを作成する必要があります。

  • スキーマ間で継承できるテーブルは移行できません。

  • 移行するテーブルに SERIAL フィールドが含まれている場合、ソースデータベースにシーケンスが作成されます。 [ソースオブジェクト] パラメーターを構成するときに、[移行タイプ] として [スキーマ移行] を選択した場合は、シーケンスまたは完全なスキーマ移行を選択することをお勧めします。 そうでない場合、移行インスタンスは実行に失敗します。

  • 移行対象のオブジェクトとしてスキーマを選択し、増分データ移行中にスキーマにテーブルを作成するか、RENAME 文を実行してスキーマ内のテーブルの名前を変更する場合は、テーブルにデータを書き込む前に、ALTER TABLE schema.table REPLICA IDENTITY FULL; 文を実行する必要があります。 この文を実行するときは、テーブルをロックしないことをお勧めします。 そうでない場合、デッドロックが発生します。

    説明
    • 上記のサンプル文の schematable を実際のスキーマ名とテーブル名に置き換えます。

    • この操作は、オフピーク時に実行することをお勧めします。

  • DTS は、シーケンスなどのメタデータの有効性をチェックしません。 メタデータの有効性は手動でチェックする必要があります。

  • ワークロードをターゲットデータベースに切り替えた後、新しいシーケンスはソースデータベースのシーケンスの最大値から増加しません。 したがって、ワークロードをターゲットデータベースに切り替える前に、ターゲットデータベースのシーケンスの開始値を更新する必要があります。

  • DTS は、ソースデータベースに次のテンポラリテーブルを作成して、増分データの DDL 文、増分テーブルのスキーマ、およびハートビート情報を取得します。 データ移行中は、ソースデータベースの一時テーブルを削除しないでください。 そうでない場合、例外が発生します。 DTS インスタンスが解放されると、一時テーブルは自動的に削除されます。

    public.dts_pg_classpublic.dts_pg_attributepublic.dts_pg_typepublic.dts_pg_enumpublic.dts_postgres_heartbeatpublic.dts_ddl_command、および public.dts_args_session

  • フルデータ移行タスクまたは増分データ移行タスクを実行し、ソースデータベースから移行するテーブルに外部キー、トリガー、またはイベントトリガーが含まれており、ターゲットデータベースのアカウントが特権アカウントまたはスーパーユーザーロールの権限を持つアカウントである場合、DTS はフルデータ移行または増分データ移行中に session_replication_role パラメーターをセッションレベルで一時的に replica に設定します。 ターゲットデータベースのアカウントに権限がない場合は、ターゲットデータベースで session_replication_role パラメーターを手動で replica に設定する必要があります。 フルデータ移行または増分データ移行中に session_replication_role パラメーターが replica に設定されている場合、ソースデータベースでカスケード更新または削除操作を実行すると、データの不整合が発生する可能性があります。 データ移行タスクが解放されたら、session_replication_role パラメーターの値を origin に変更できます。

  • 増分データ移行のレイテンシが正確であることを確認するために、DTS はソースデータベースに dts_postgres_heartbeat という名前のハートビートテーブルを作成します。

  • 増分データ移行中に、DTS はソースデータベースにレプリケーションスロットを作成してデータをレプリケートします。 レプリケーションスロットには、dts_sync_ というプレフィックスが付きます。 このレプリケーションスロットを使用することで、DTS は過去 15 分以内のソースデータベースの増分ログを取得できます。

    説明
    • DTS インスタンスが解放されると、レプリケーションスロットは自動的に削除されます。 ソースデータベースのパスワードを変更するか、IP アドレスホワイトリストから DTS の IP アドレスを削除すると、レプリケーションスロットは自動的に削除されません。 その場合は、レプリケーションスロットが積み重なるのを防ぐために、ソースデータベースからレプリケーションスロットを手動で削除する必要があります。

    • データ移行タスクが解放または失敗した場合、DTS はレプリケーションスロットを自動的に削除します。 ソース ApsaraDB for PostgreSQL インスタンスでプライマリ/セカンダリスイッチオーバーが実行された場合は、セカンダリインスタンスにログインしてレプリケーションスロットを削除する必要があります。

  • データを移行する前に、データ移行がソースデータベースとターゲットデータベースのパフォーマンスに与える影響を評価してください。 オフピーク時にデータを移行することをお勧めします。 フルデータ移行中に、DTS はソースデータベースとターゲットデータベースの読み取りリソースと書き込みリソースを使用します。 これにより、データベースサーバーの負荷が増加する可能性があります。

  • フルデータ移行中、同時 INSERT 操作により、ターゲットデータベースのテーブルで断片化が発生します。 フルデータ移行が完了すると、ターゲットデータベースの表領域はソースデータベースの表領域よりも大きくなります。

  • FLOAT データ型または DOUBLE データ型の列の精度設定がビジネス要件を満たしていることを確認する必要があります。 DTS は、ROUND(COLUMN,PRECISION) 関数を使用して、FLOAT データ型または DOUBLE データ型の列から値を取得します。 精度を指定しない場合、DTS は FLOAT データ型の精度を 38 桁に、DOUBLE データ型の精度を 308 桁に設定します。

  • DTS は、過去 7 日以内に失敗したデータ移行タスクの再開を試みます。 ワークロードをターゲットクラスターに切り替える前に、失敗したタスクを停止または解放する必要があります。 また、REVOKE 文を実行して、DTS がターゲットデータベースにアクセスするために使用するアカウントから書き込み権限を取り消すこともできます。 そうでない場合、失敗したタスクが再開された後、ソースデータベースのデータがターゲットデータベースのデータを上書きします。

  • DTS タスクの実行に失敗した場合、DTS テクニカルサポートは 8 時間以内にタスクの復元を試みます。 復元中に、タスクが再起動され、タスクのパラメーターが変更される場合があります。

    説明

    タスクのパラメーターのみが変更される可能性があります。 データベースのパラメーターは変更されません。 変更される可能性のあるパラメーターには、「DTS インスタンスのパラメーターの変更」トピックの「インスタンスパラメーターの変更」セクションのパラメーターが含まれますが、これらに限定されません。

特別な場合

データ移行中は、ソース ApsaraDB RDS for PostgreSQL インスタンスのエンドポイントまたはゾーンを変更しないでください。 そうでない場合、データ移行タスクは失敗します。

移行タイプ

  • スキーマ移行

    DTS は、選択したオブジェクトのスキーマをソースデータベースからターゲットデータベースに移行します。

  • フルデータ移行

    DTS は、必要なオブジェクトの既存データをソースデータベースからターゲットデータベースに移行します。

  • 増分データ移行

    フルデータ移行が完了すると、DTS はソースデータベースからターゲットデータベースに増分データを移行します。 増分データ移行により、データ移行中に自己管理アプリケーションのサービスを中断することなく、データをスムーズに移行できます。

移行対象のサポートされているオブジェクト

  • SCHEMA および TABLE。

    説明

    PRIMARY KEY、UNIQUE KEY、FOREIGN KEY、DATATYPE(組み込みデータ型)、および DEFAULT CONSTRAINT を含みます。

  • VIEW、PROCEDURE (PostgreSQL V11 以降)、FUNCTION、RULE、SEQUENCE、EXTENSION、TRIGGER、AGGREGATE、INDEX、OPERATOR、および DOMAIN。

増分移行をサポートする SQL 操作

操作タイプ

SQL 文

DML

INSERT、UPDATE、および DELETE

DDL

  • DDL 操作は、2020 年 10 月 1 日以降に作成されたデータ移行タスクでのみ移行できます。

    重要
    • 2023 年 5 月 12 日より前に作成されたデータ移行タスクを実行して DDL 操作を移行するには、データ移行タスクを構成する前に、ソースデータベースにトリガーと関数を作成して DDL 情報をキャプチャする必要があります。 詳細については、「トリガーと関数を使用して PostgreSQL データベースの増分 DDL 移行を実装する」をご参照ください。

    • 増分データ移行中に BIT タイプのデータを移行することはできません。

  • ソースデータベースのアカウントが特権アカウントであり、ソース ApsaraDB RDS for PostgreSQL インスタンスのマイナーエンジンバージョンが 20210228 以降の場合、データ移行タスクで次の DDL 文を移行できます。 ApsaraDB RDS for PostgreSQL インスタンスのマイナーエンジンバージョンを更新する方法については、「マイナーエンジンバージョンの更新」をご参照ください。

    • CREATE TABLE および DROP TABLE

    • ALTER TABLE(RENAME TABLE、ADD COLUMN、ADD COLUMN DEFAULT、ALTER COLUMN TYPE、DROP COLUMN、ADD CONSTRAINT、ADD CONSTRAINT CHECK、および ALTER COLUMN DROP DEFAULT を含む)

    • TRUNCATE TABLE(ソース ApsaraDB RDS for PostgreSQL インスタンスのバージョンは PostgreSQL V11 以降である必要があります。)

    • CREATE INDEX ON TABLE

    重要
    • CASCADE や RESTRICT などの DDL 文の追加情報は移行できません。

    • SET session_replication_role = replica 文が実行されたセッションからの DDL 文は移行できません。

    • 関数を呼び出して実行された DDL 文は移行できません。

    • ソースデータベースによって一度に送信された SQL 文に DML 文と DDL 文の両方が含まれている場合、DTS は DDL 文を移行しません。

    • ソースデータベースによって一度に送信された SQL 文に移行されない DDL 文が含まれている場合、DTS は DDL 文を移行しません。

データベースアカウントに必要な権限

データベースタイプ

スキーマ移行

フルデータ移行

増分データ移行

ソース ApsaraDB RDS for PostgreSQL インスタンス

pg_catalog スキーマに対する USAGE 権限

移行対象のオブジェクトに対する SELECT 権限

データベースの所有者である特権アカウントの権限

説明

ソース ApsaraDB RDS for PostgreSQL インスタンスが PostgreSQL 9.4 を実行しており、DML 操作のみを移行する場合、データベースアカウントには REPLICATION 権限のみが必要です。

ターゲット ApsaraDB RDS for PostgreSQL インスタンス

移行対象のオブジェクトに対する CREATE 権限と USAGE 権限

スキーマ所有者の権限

ApsaraDB RDS for PostgreSQL インスタンスにデータベースアカウントを作成し、データベースアカウントに権限を付与する方法の詳細については、「アカウントの作成」および「データベースの作成」をご参照ください。

手順

  1. 次のいずれかの方法を使用して [データ移行] ページに移動し、データ移行インスタンスが存在するリージョンを選択します。

    DTS コンソール

    1. DTS コンソール にログインします。

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

    3. ページの左上隅で、データ移行インスタンスが存在するリージョンを選択します。

    DMS コンソール

    説明

    実際の操作は、DMS コンソールのモードとレイアウトによって異なる場合があります。 詳細については、「シンプルモード」および「DMS コンソールのレイアウトとスタイルのカスタマイズ」をご参照ください。

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

    2. 上部のナビゲーションバーで、ポインターを [データ + AI] > DTS (DTS) > データ移行 の上に移動します。

    3. [データ移行タスク] の右側にあるドロップダウンリストから、データ同期インスタンスが存在するリージョンを選択します。

  2. タスクの作成 をクリックして、タスク構成ページに移動します。

  3. ソースデータベースとターゲットデータベースを構成します。 次の表にパラメーターを示します。

    警告

    ソースデータベースとターゲットデータベースを構成したら、ページの上部に表示される [制限] を読むことをお勧めします。 そうでない場合、タスクが失敗したり、データの不整合が発生したりする可能性があります。

    セクション

    パラメーター

    説明

    なし

    タスク名

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

    ソースデータベース

    [既存の接続を選択]

    • DTS に登録されているデータベースインスタンスを使用する場合は、ドロップダウンリストからインスタンスを選択します。 DTS は、インスタンスの次のデータベースパラメーターを自動的に入力します。 詳細については、「データベース接続の管理」をご参照ください。

      説明

      DMS コンソールでは、[DMS データベースインスタンスを選択] ドロップダウンリストからデータベースインスタンスを選択できます。

    • インスタンスを DTS に登録できなかった場合、または DTS に登録されているインスタンスを使用する必要がない場合は、次のデータベース情報を構成する必要があります。

    データベースタイプ

    ソースデータベースのタイプ。 [PostgreSQL] を選択します。

    アクセス方法

    ソースデータベースのアクセス方法。 [Alibaba Cloud インスタンス] を選択します。

    インスタンスリージョン

    ソース ApsaraDB RDS for PostgreSQL インスタンスが存在するリージョン。

    [インスタンス ID]

    ソース ApsaraDB RDS for PostgreSQL インスタンスの ID。

    [データベース名]

    ソース ApsaraDB RDS for PostgreSQL インスタンスから移行するオブジェクトを含むデータベースの名前。

    データベースアカウント

    ソース ApsaraDB RDS for PostgreSQL インスタンスのデータベースアカウント。 アカウントに必要な権限については、このトピックの「データベースアカウントに必要な権限」セクションを参照してください。

    データベースパスワード

    データベースインスタンスへのアクセスに使用されるパスワード。

    暗号化

    ソースデータベースへの接続を暗号化するかどうかを指定します。 このパラメーターは、ビジネス要件に基づいて構成できます。 この例では、非暗号化 が選択されています。

    ソースデータベースへの SSL 暗号化接続を確立する場合は、次の手順を実行します。 SSL 暗号化 を選択し、必要に応じて CA 証明書クライアント証明書、および クライアント証明書の秘密鍵 をアップロードし、クライアント証明書の秘密鍵のパスワード を指定します。

    説明
    • 自己管理 PostgreSQL データベースの [暗号化] を SSL 暗号化 に設定する場合は、CA 証明書 をアップロードする必要があります。

    • クライアント証明書を使用する場合は、クライアント証明書クライアント証明書の秘密鍵 をアップロードし、クライアント証明書の秘密鍵のパスワード を指定する必要があります。

    • ApsaraDB RDS for PostgreSQL インスタンスの SSL 暗号化を構成する方法については、「SSL 暗号化」をご参照ください。

    宛先データベース

    [既存の接続を選択]

    • DTS に登録されているデータベースインスタンスを使用する場合は、ドロップダウンリストからインスタンスを選択します。 DTS は、インスタンスの次のデータベースパラメーターを自動的に入力します。 詳細については、「データベース接続の管理」をご参照ください。

      説明

      DMS コンソールでは、[DMS データベースインスタンスを選択] ドロップダウンリストからデータベースインスタンスを選択できます。

    • インスタンスを DTS に登録できなかった場合、または DTS に登録されているインスタンスを使用する必要がない場合は、次のデータベース情報を構成する必要があります。

    データベースタイプ

    ターゲットデータベースのタイプ。 [PostgreSQL] を選択します。

    アクセス方法

    ターゲットデータベースのアクセス方法。 [Alibaba Cloud インスタンス] を選択します。

    インスタンスリージョン

    ターゲット ApsaraDB RDS for PostgreSQL インスタンスが存在するリージョン。

    [インスタンス ID]

    ターゲット ApsaraDB RDS for PostgreSQL インスタンスの ID。

    [データベース名]

    ターゲット ApsaraDB RDS for PostgreSQL インスタンスでオブジェクトの移行先となるデータベースの名前。

    データベースアカウント

    ターゲット ApsaraDB RDS for PostgreSQL インスタンスのデータベースアカウント。 アカウントに必要な権限については、このトピックの「データベースアカウントに必要な権限」セクションを参照してください。

    データベースパスワード

    データベースインスタンスへのアクセスに使用されるパスワード。

    暗号化

    ソースデータベースへの接続を暗号化するかどうかを指定します。 このパラメーターは、ビジネス要件に基づいて構成できます。 この例では、非暗号化 が選択されています。

    ソースデータベースへの SSL 暗号化接続を確立する場合は、次の手順を実行します。 SSL 暗号化 を選択し、必要に応じて CA 証明書クライアント証明書、および クライアント証明書の秘密鍵 をアップロードし、クライアント証明書の秘密鍵のパスワード を指定します。

    説明
    • 自己管理 PostgreSQL データベースの [暗号化] を SSL 暗号化 に設定する場合は、CA 証明書 をアップロードする必要があります。

    • クライアント証明書を使用する場合は、クライアント証明書クライアント証明書の秘密鍵 をアップロードし、クライアント証明書の秘密鍵のパスワード を指定する必要があります。

    • ApsaraDB RDS for PostgreSQL インスタンスの SSL 暗号化を構成する方法については、「SSL 暗号化」をご参照ください。

  4. 接続をテストして続行 をクリックします。ページの下部にあります。

    説明
    • DTS サーバーの CIDR ブロックをソースデータベースとターゲットデータベースのセキュリティ設定に自動または手動で追加して、DTS サーバーからのアクセスを許可できることを確認してください。 詳細については、「DTS サーバーの CIDR ブロックの追加」をご参照ください。

    • ソースデータベースまたはターゲットデータベースが自己管理データベースであり、その アクセス方法Alibaba Cloud インスタンス に設定されていない場合は、DTS サーバーの CIDR ブロック ダイアログボックスの 接続テスト をクリックします。

  5. 移行するオブジェクトを構成します。

    1. オブジェクト設定 ページで、移行するオブジェクトを構成します。

      パラメーター

      説明

      移行タイプ

      • フルデータ移行のみを実行するには、[スキーマ移行][フルデータ移行] を選択します。

      • サービスのダウンタイムなしでデータを移行するには、[スキーマ移行][フルデータ移行]、および [増分データ移行] を選択します。

      説明
      • [スキーマ移行] を選択すると、DTS は移行するテーブルのスキーマをソースデータベースからターゲットデータベースに移行します。 スキーマには外部キーが含まれます。

      • [増分データ移行] を選択しない場合は、データ移行中にソースデータベースにデータを書き込まないことをお勧めします。 これにより、ソースデータベースとターゲットデータベース間でデータの整合性が確保されます。

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

      • エラーの事前チェックと報告:ターゲットデータベースにソースデータベースのテーブルと同じ名前を使用するテーブルが含まれているかどうかをチェックします。 ソースデータベースとターゲットデータベースに同じテーブル名のテーブルが含まれていない場合、事前チェックは合格です。 そうでない場合、事前チェック中にエラーが返され、データ移行タスクを開始できません。

        説明

        ソースデータベースとターゲットデータベースに同じ名前のテーブルが含まれており、ターゲットデータベースのテーブルを削除または名前変更できない場合は、オブジェクト名マッピング機能を使用して、ターゲットデータベースに移行されるテーブルの名前を変更できます。 詳細については、「オブジェクト名のマッピング」をご参照ください。

      • エラーを無視して続行:ソースデータベースとターゲットデータベースの同じテーブル名の事前チェックをスキップします。

        警告

        エラーを無視して続行 を選択すると、データの不整合が発生し、ビジネスが次の潜在的なリスクにさらされる可能性があります。

        • ソースデータベースとターゲットデータベースのスキーマが同じで、データレコードのプライマリキーがターゲットデータベースの既存のデータレコードと同じである場合、次のシナリオが発生する可能性があります。

          • フルデータ移行中、DTS はデータレコードをターゲットデータベースに移行しません。 ターゲットデータベースの既存のデータレコードは保持されます。

          • 増分データ移行中、DTS はデータレコードをターゲットデータベースに移行します。 ターゲットデータベースの既存のデータレコードは上書きされます。

        • ソースデータベースとターゲットデータベースのスキーマが異なる場合、特定の列のみが移行されるか、データ移行タスクが失敗します。 注意して進めてください。

      ソースオブジェクト

      ソースオブジェクト セクションから 1 つ以上のオブジェクトを選択します。 向右小箭头 アイコンをクリックして、オブジェクトを 選択中のオブジェクト セクションに追加します。

      説明
      • スキーマまたはテーブルを移行対象のオブジェクトとして選択できます。 テーブルを移行対象のオブジェクトとして選択した場合、DTS はビュー、トリガー、ストアドプロシージャなどの他のオブジェクトをターゲットデータベースに移行しません。

      • 移行するテーブルに SERIAL データ型が含まれており、[移行タイプ] として [スキーマ移行] を選択した場合は、シーケンスまたはスキーマ全体の移行も選択することをお勧めします。

      選択中のオブジェクト

      • ターゲットインスタンスに移行するオブジェクトの名前を変更するには、[選択したオブジェクト] セクションでオブジェクトを右クリックします。 詳細については、「単一オブジェクトの名前のマッピング」をご参照ください。

      • 複数のオブジェクトの名前を一度に変更するには、[選択したオブジェクト] セクションの右上隅にある [一括編集] をクリックします。 詳細については、「一度に複数のオブジェクト名をマッピングする」をご参照ください。

      説明
      • オブジェクト名マッピング機能を使用してオブジェクトの名前を変更すると、そのオブジェクトに依存する他のオブジェクトが移行に失敗する可能性があります。

      • WHERE 条件を指定してデータをフィルタリングするには、[選択したオブジェクト] セクションでテーブルを右クリックします。 表示されるダイアログボックスで、条件を指定します。 詳細については、「フィルター条件の指定」をご参照ください。

      • 特定のデータベースまたはテーブルで実行された SQL 操作を移行するには、[選択したオブジェクト] セクションでオブジェクトを右クリックします。 表示されるダイアログボックスで、移行する SQL 操作を選択します。 増分移行をサポートする SQL 操作の詳細については、このトピックの「増分移行をサポートする SQL 操作」セクションを参照してください。

    2. 次へ:詳細設定 をクリックして、詳細設定を構成します。

      パラメーター

      説明

      [タスクスケジューリング専用のクラスター]

      デフォルトでは、専用のクラスターを指定しない場合、DTS はデータ移行タスクを共有クラスターにスケジュールします。 データ移行タスクの安定性を向上させるには、専用のクラスターを購入します。 詳細については、「DTS 専用クラスターとは」をご参照ください。

      [接続失敗時のリトライ時間]

      接続失敗時のリトライ時間の範囲。 データ移行タスクの開始後にソースデータベースまたはターゲットデータベースに接続できない場合、DTS はリトライ時間の範囲内で直ちに接続を再試行します。 有効値:10 ~ 1,440。 単位:分。 デフォルト値:720。 パラメーターを 30 より大きい値に設定することをお勧めします。 指定されたリトライ時間の範囲内で DTS がソースデータベースとターゲットデータベースに再接続されると、DTS はデータ移行タスクを再開します。 そうでない場合、データ移行タスクは失敗します。

      説明
      • 同じソースデータベースまたはターゲットデータベースを共有する複数のデータ移行タスクに異なるリトライ時間の範囲を指定した場合、後で指定した値が優先されます。

      • DTS が接続を再試行すると、DTS インスタンスの料金が発生します。 ビジネス要件に基づいてリトライ時間の範囲を指定することをお勧めします。 また、ソースデータベースとターゲットインスタンスが解放された後、できるだけ早く DTS インスタンスを解放することもできます。

      [その他の問題のリトライ時間]

      その他の問題のリトライ時間の範囲。 たとえば、データ移行タスクの開始後に DDL 操作または DML 操作の実行に失敗した場合、DTS はリトライ時間の範囲内で直ちに操作を再試行します。 有効値:1 ~ 1440。 単位:分。 デフォルト値:10。 パラメーターを 10 より大きい値に設定することをお勧めします。 指定されたリトライ時間の範囲内で失敗した操作が正常に実行されると、DTS はデータ移行タスクを再開します。 そうでない場合、データ移行タスクは失敗します。

      重要

      移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。 パラメーターの値は、失敗した接続の再試行時間 パラメーターの値よりも小さくなければなりません。

      [フルデータ移行のスロットリングを有効にする]

      フルデータ移行のスロットリングを有効にするかどうかを指定します。 フルデータ移行中に、DTS はソースデータベースとターゲットデータベースの読み取りリソースと書き込みリソースを使用します。 これにより、データベースサーバーの負荷が増加する可能性があります。 ビジネス要件に基づいて、フルデータ移行のスロットリングを有効にすることができます。 スロットリングを構成するには、1 秒あたりのソースデータベースのクエリ率 QPS1 秒あたりの完全移行の行数 RPS、および 1 秒あたりの完全移行データ量 (MB) BPS パラメーターを構成する必要があります。 これにより、ターゲットデータベースサーバーの負荷が軽減されます。

      説明

      移行タイプ パラメーターで 完全データ移行 を選択した場合にのみ、このパラメーターを構成できます。

      [増分データ移行のスロットリングを有効にする]

      増分データ移行のスロットリングを有効にするかどうかを指定します。 スロットリングを構成するには、1 秒あたりの増分移行の行数 RPS および 1 秒あたりの増分移行データ量 (MB) BPS パラメーターを構成する必要があります。 これにより、ターゲットデータベースサーバーの負荷が軽減されます。

      説明

      移行タイプ パラメーターで 増分データ移行 を選択した場合にのみ、このパラメーターを構成できます。

      [環境タグ]

      DTS インスタンスを識別するために使用される環境タグ。 ビジネス要件に基づいて環境タグを選択できます。 この例では、環境タグを選択する必要はありません。

      [ETL の構成]

      抽出、変換、書き出し (ETL) 機能を有効にするかどうかを指定します。 詳細については、「ETL とは」をご参照ください。 有効値:

      [監視とアラート]

      データ移行タスクのアラートを構成するかどうかを指定します。 タスクが失敗した場合、または移行レイテンシが指定されたしきい値を超えた場合、アラート連絡先に通知が送信されます。 有効値:

      • [いいえ]:アラートを構成しません。

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

    3. [次のステップ: データ検証] をクリックして、データ検証タスクを構成します。

      データ検証機能の使用方法の詳細については、「データ検証を構成する」をご参照ください。

  6. タスク設定を保存し、事前チェックを実行します。

    • DTS タスクを設定するために関連 API 操作を呼び出すときに指定するパラメーターを表示するには、次:タスク設定の保存と事前チェック にポインターを移動し、OpenAPI パラメーターのプレビュー をクリックします。

    • パラメーターを表示する必要がない場合、またはすでに表示済みの場合は、ページの下部にある 次:タスク設定の保存と事前チェック をクリックします。

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

    • タスクが事前チェックに合格しなかった場合は、失敗した各項目の横にある [詳細の表示] をクリックします。チェック結果に基づいて原因を分析した後、問題をトラブルシューティングします。その後、再度事前チェックを実行します。

    • 事前チェック中に項目に対してアラートがトリガーされた場合:

      • アラート項目を無視できない場合は、失敗した項目の横にある [詳細の表示] をクリックし、問題をトラブルシューティングします。その後、再度事前チェックを実行します。

      • アラート項目を無視できる場合は、[アラートの詳細の確認] をクリックします。 [詳細の表示] ダイアログボックスで、[無視] をクリックします。表示されるメッセージで、[OK] をクリックします。次に、[再チェック] をクリックして、再度事前チェックを実行します。アラート項目を無視すると、データの不整合が発生し、ビジネスが潜在的なリスクにさらされる可能性があります。

  7. インスタンスを購入します。

    1. [成功率][100%] になるまで待ちます。次に、[次へ: インスタンスの購入] をクリックします。

    2. [インスタンスの購入] ページで、データ移行インスタンスのインスタンスクラスパラメーターを設定します。次の表にパラメーターを示します。

      セクション

      パラメーター

      説明

      新しいインスタンスクラス

      リソースグループ

      データ移行インスタンスが属するリソースグループ。デフォルト値: [デフォルトのリソースグループ]。詳細については、「リソース管理とは」をご参照ください。

      インスタンスクラス

      DTS は、移行速度が異なるインスタンスクラスを提供します。ビジネスシナリオに基づいてインスタンスクラスを選択できます。詳細については、「データ移行インスタンスのインスタンスクラス」をご参照ください。

    3. チェックボックスをオンにして、[Data Transmission Service (従量課金制) サービス規約] を読んで同意します。

    4. [購入して開始] をクリックします。表示されるメッセージで、[OK] をクリックします。

      [データ移行] ページでタスクの進捗状況を確認できます。