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

Data Transmission Service:自己管理型PostgreSQLデータベースからAnalyticDB for PostgreSQLインスタンスへのデータの同期

最終更新日:Nov 13, 2024

このトピックでは、data Transmission Service (DTS) を使用して、自己管理型PostgreSQLデータベースからAnalyticDB for PostgreSQLインスタンスにデータを同期する方法について説明します。 DTSが提供するデータ同期機能により、データの転送と分析が容易になります。

前提条件

  • 自己管理型PostgreSQLデータベースから同期されるテーブルには、主キーが含まれています。

  • 移行先のAnalyticDB for PostgreSQLインスタンスが作成されました。 詳細については、次をご参照ください: インスタンスの作成

使用上の注意

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

  • データ同期中に、ソースデータベースに作成された新しいテーブルも同期できます。 ただし、データの一貫性を確保するには、新しいテーブルを同期する前に、次のステートメントを実行する必要があります。

    ALTER TABLE schema.table REPLICA IDENTITY FULL;
  • データ同期タスクが期待どおりに実行されるようにするには、ApsaraDB RDS for PostgreSQL 11インスタンスでのみプライマリ /セカンダリの切り替えを実行できます。 この場合、rds_failover_slot_modeパラメーターをsyncに設定する必要があります。 詳細については、「Logical Replication Slot Failover」をご参照ください。

    警告

    自己管理型PostgreSQLデータベースまたは他のバージョンのApsaraDB RDS for PostgreSQLインスタンスでプライマリ /セカンダリの切り替えを実行すると、データ同期タスクは失敗します。

  • 1つまたは複数の長期トランザクションがソースデータベースに存在し、増分データがデータ同期タスクで同期される場合、ソースデータベースの長期トランザクションがコミットされる前に生成されたライトアヘッドロギング (WAL) ログを蓄積することができます。 その結果、ソースデータベースのディスク容量が不足する可能性があります。

制限事項

  • スキーマ同期はサポートされていません。 DTSは、ソースデータベースからターゲットデータベースにオブジェクトのスキーマを同期しません。

  • 同期するオブジェクトとしてテーブルのみを選択できます。

  • DTSは、BIT、VARBIT、GEOMETRY、UUID、TSQUERY、TSVECTOR、およびTXID_SNAPSHOTのタイプのデータを同期しません。

  • データ同期中にソースデータベースで同期するオブジェクトに対してDDL操作を実行する場合は、ターゲットデータベースで操作を実行する必要があります。 次に、データ同期タスクを再起動する必要があります。

同期可能なSQL操作

挿入、更新、および削除

始める前に

同期するオブジェクトのスキーマに基づいて、ターゲットAnalyticDB for PostgreSQLインスタンスにデータベース、スキーマ、およびテーブルを作成します。 詳細については、「SQL構文」をご参照ください。

手順

  1. データ同期インスタンスを購入します。 詳細については、「DTSインスタンスの購入」をご参照ください。

    説明

    購入ページで、ソースインスタンスをPostgreSQLに設定し、宛先インスタンスをAnalyticDB for PostgreSQLに設定し、同期トポロジを片道同期に設定します。

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

    説明

    データ管理 (DMS) コンソールにリダイレクトされている場合は、imageoldアイコンをクリックして、以前のバージョンのDTSコンソールに移動します。

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

  4. [同期タスク] ページの上部で、ターゲットインスタンスが存在するリージョンを選択します。

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

  6. ソースインスタンスとターゲットインスタンスを設定します。

    Configure the source and destination databases

    セクション

    パラメーター

    説明

    N/A

    同期タスク名

    タスク名は自動生成されます。 簡単に識別できるように、有益な名前を指定することをお勧めします。 一意のタスク名を使用する必要はありません。

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

    インスタンスタイプ

    ソースデータベースのデプロイに基づいてインスタンスタイプを選択します。 この例では、[ECSインスタンスのユーザー作成データベース] を選択します。

    説明

    他のインスタンスタイプを選択した場合、自己管理データベースのネットワーク環境をデプロイする必要があります。 詳細については、「準備の概要」をご参照ください。

    このトピックでは、ECSインスタンスのユーザー作成データベースを例として、データ同期タスクの設定方法について説明します。

    インスタンスリージョン

    購入ページで選択したソースリージョン。 このパラメーターの値は変更できません。

    ECS インスタンス ID

    自己管理型PostgreSQLデータベースがデプロイされているElastic Compute Service (ECS) インスタンスのIDを選択します。

    データベースエンジン

    このパラメーターはPostgreSQLに設定されており、変更できません。

    ポート番号

    自己管理型PostgreSQLデータベースのサービスポート番号を入力します。

    データベース名

    ソースデータベースの名前を入力します。

    データベースアカウント

    自己管理型PostgreSQLデータベースのアカウントを入力します。

    説明

    アカウントには、スキーマ所有者の権限が必要です。

    データベースパスワード

    データベースアカウントのパスワードを入力します。

    ターゲットインスタンスの詳細

    インスタンスタイプ

    このパラメーターはAnalyticDB for PostgreSQLに設定されており、変更できません。

    インスタンスリージョン

    購入ページで選択したターゲットリージョン。 このパラメーターの値は変更できません。

    インスタンス ID

    AnalyticDB for PostgreSQLインスタンスのIDを選択します。

    データベース名

    ターゲットデータベースの名前を入力します。

    データベースアカウント

    AnalyticDB for PostgreSQLインスタンスの初期アカウントを入力します。 詳細については、「データベースアカウントの作成」をご参照ください。

    説明

    RDS_SUPERUSER権限を持つアカウントを入力することもできます。 詳細については、「ユーザーと権限の管理」をご参照ください。

    データベースパスワード

    データベースアカウントのパスワードを入力します。

  7. ページの右下隅にある [ホワイトリストと次への設定] をクリックします。

    説明

    DTSは、DTSサーバーのCIDRブロックをECSインスタンスのインバウンドセキュリティグループルールとAnalyticDB for PostgreSQLインスタンスのホワイトリストに追加します。 これにより、DTS サーバーがソースインスタンスおよびターゲットインスタンスに接続できるようになります。

  8. 同期ポリシーと同期するオブジェクトを設定します。

    Select the objects to be synchronized

    セクション

    パラメーター

    説明

    同期ポリシーの設定

    同期の初期化

    デフォルトでは、[初期フルデータ同期] が選択されています。 事前チェックの後、DTSは必要なオブジェクトの履歴データをソースデータベースからターゲットインスタンスに同期します。 データは、その後の増分同期の基礎となる。

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

    • クリアデータ

      事前チェック中に空の宛先テーブルのチェックをスキップします。 完全データ同期タスクが初期化される前に、宛先テーブルのデータをクリアします。 データ同期タスクのテスト後にビジネスデータを同期する場合は、このモードを選択できます。

    • 無視する

      事前チェック中に空の宛先テーブルのチェックをスキップします。 最初の完全データ同期中に既存のデータにデータを追加します。 複数のテーブルから1つのテーブルにデータを同期する場合は、このモードを選択できます。

    同期タイプ

    ビジネス要件に基づいて、同期する操作の種類を選択します。

    説明

    Alter Table操作はサポートされていません。

    • 挿入

    • 更新

    • 削除

    • AlterTable

    同期するオブジェクトの選択

    非該当

    [使用可能] セクションから1つ以上のテーブルを選択し、Rightwards arrowアイコンをクリックして、[選択済み] セクションにテーブルを追加します。

    説明
    • 同期するオブジェクトとしてテーブルのみを選択できます。

    • オブジェクト名マッピング機能を使用して、ターゲットデータベースに同期される列の名前を変更できます。 詳細については、「同期するオブジェクトの名前変更」をご参照ください。

    データベースとテーブルの名前変更

    非該当

    オブジェクト名マッピング機能を使用して、ターゲットインスタンスに同期されるオブジェクトの名前を変更できます。 詳細は、オブジェクト名のマッピングをご参照ください。

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

    非該当

    既定では、DTSがソースデータベースまたはターゲットデータベースへの接続に失敗した場合、DTSは次の720分 (12時間) 以内に再試行します。 必要に応じて再試行時間を指定できます。 DTSが指定された時間内にソースデータベースとターゲットデータベースに再接続すると、DTSはデータ同期タスクを再開します。 それ以外の場合、データ同期タスクは失敗します。

    説明

    DTSが接続を再試行すると、DTSインスタンスに対して課金されます。 ビジネスニーズに基づいて再試行時間を指定することを推奨します。 ソースインスタンスとターゲットインスタンスがリリースされた後、できるだけ早くDTSインスタンスをリリースすることもできます。

  9. ページの右下隅にある事前チェックをクリックします。

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

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

      • 詳細に基づいて問題をトラブルシューティングした後、新しい事前チェックを開始します。

      • 問題をトラブルシューティングする必要がない場合は、失敗した項目を無視して新しい事前チェックを開始してください。

  10. 次のメッセージが表示されたら、[事前チェック] ダイアログボックスを閉じます。[事前チェックの合格] その後、データ同期タスクが開始されます。

  11. 初期同期が完了し、データ同期タスクが同期状態になるまで待ちます。

    データ同期タスクのステータスは、[同期タスク] ページで確認できます。 View the status of a data synchronization task