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

Data Transmission Service:ApsaraDB RDS for PostgreSQLインスタンスからAnalyticDB for PostgreSQLインスタンスへのデータの同期

最終更新日:Nov 13, 2024

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

前提条件

  • ApsaraDB RDS for PostgreSQLインスタンスから同期されるテーブルには、プライマリキーが含まれている必要があります。

  • 移行先のAnalyticDB for 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操作

挿入、更新、および削除

準備

  1. ソースApsaraDB RDSインスタンスのwal_levelパラメーターの値を変更します。

    警告

    wal_levelパラメーターの値を変更した後、インスタンスを再起動して変更を適用する必要があります。 ビジネスへの影響を評価し、オフピーク時にパラメーター設定を変更することを推奨します。

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

    2. 左側のナビゲーションウィンドウで、[インスタンス] をクリックします。

    3. 上部のナビゲーションバーで、ApsaraDB RDS for PostgreSQLインスタンスが存在するリージョンを選択します。

    4. ApsaraDB RDS for PostgreSQLインスタンスを検索し、インスタンスのIDをクリックします。

    5. 左側のナビゲーションウィンドウで、[パラメーター] をクリックします。

    6. [パラメーター] ページで、wal_levelパラメーターを見つけ、パラメーター値をlogicalに変更します。

      説明

      詳細については、「ApsaraDB RDS For PostgreSQLインスタンスのパラメーターの変更」をご参照ください。

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

手順

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

    説明

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

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

    説明
    • DTSコンソールからデータ管理 (DMS) コンソールに移動している場合は、右下隅のjiqirenアイコンの上にポインターを移動し、Return to old versionアイコンをクリックしてDTSコンソールに戻ることができます。

    • 新しいバージョンのDTSコンソールに移動している場合は、右下隅のBack to Old Versionアイコンをクリックして、以前のバージョンのDTSコンソールに移動します。

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

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

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

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

    Configure the source and destination instances

    セクション

    パラメーター

    説明

    N/A

    同期タスク名

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

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

    インスタンスタイプ

    ソースデータベースのインスタンスタイプ。 RDS インスタンスを選択します。

    インスタンスリージョン

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

    Instance ID

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

    データベース名

    ソースデータベースの名前。

    データベースアカウント

    ApsaraDB RDS for PostgreSQLインスタンスの特権アカウント。 アカウントは、選択したデータベースの所有者である必要があります。

    説明

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

    データベースパスワード

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

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

    インスタンスタイプ

    このパラメーターの値は、AnalyticDB for PostgreSQLに固定されています。

    インスタンスリージョン

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

    Instance ID

    移行先のAnalyticDB for PostgreSQLインスタンスのID。

    データベース名

    ターゲットテーブルの名前です。

    説明

    データベースはAnalyticDB for PostgreSQLインスタンスに存在する必要があります。 それ以外の場合は、 データベースを作成します

    データベースアカウント

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

    説明

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

    データベースパスワード

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

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

    説明
    • ApsaraDBインスタンス (ApsaraDB RDS for MySQLおよびApsaraDB for MongoDBなど) およびECSホスト型データベースのセキュリティ設定を変更する必要はありません。 DTSは、DTSサーバーのCIDRブロックをApsaraDBインスタンスのホワイトリストまたはElastic Compute Service (ECS) インスタンスのセキュリティグループルールに自動的に追加します。 詳細については、「DTSサーバーのCIDRブロックをオンプレミスデータベースのセキュリティ設定に追加する」をご参照ください。

    • データ同期が完了したら、DTSサーバーのCIDRブロックをホワイトリストまたはセキュリティグループから削除することを推奨します。

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

    Select the objects to be synchronized

    セクション

    パラメーター

    説明

    同期ポリシーの設定

    同期の初期化

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

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

    • クリアデータ

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

    • 無視する

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

    同期タイプ

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

    説明

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

    • 挿入

    • 更新

    • 削除

    • AlterTable

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

    N/A

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

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

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

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

    N/A

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

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

    N/A

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

    説明

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

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

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

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

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

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

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

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

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