Data Transmission Service (DTS) は、自主管理 PostgreSQL データベースから AnalyticDB for PostgreSQL インスタンスへの一方向同期をサポートしており、初期の完全データロードと継続的な増分変更の両方をカバーします。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
制限事項
| 制限事項 | 詳細 |
|---|---|
| タスクごとの対象範囲 | 1 つのタスクで 1 つのデータベースのみを対象とします。追加のデータベースごとに個別のタスクを作成してください。 |
| サポートされるオブジェクト | 同期対象として選択できるのはテーブルのみです。 |
| スキーマ同期 | サポートされていません。タスク開始前に、宛先インスタンスで必要なスキーマを手動で作成してください。 |
| DDL 操作 | 同期中にソースオブジェクトで実行された DDL 変更は自動的にレプリケーションされません。同様の DDL を宛先側にも適用したうえで、タスクを再起動してください。 |
| サポートされる DML 操作 | INSERT、UPDATE、DELETE |
| サポートされないデータの型 | BIT、VARBIT、GEOMETRY、UUID、TSQUERY、TSVECTOR、TXID_SNAPSHOT |
注意事項
同期中に作成された新規テーブル
DTS は PostgreSQL の論理レプリケーションを使用して行レベルの変更をキャプチャします。UPDATE および DELETE 操作を正しくレプリケーションするには、先行書き込みログ(WAL)に完全な行イメージ(full row image)が含まれている必要があります。新規テーブルを同期可能にする前に、各テーブルに対して以下の文を実行してください。
ALTER TABLE schema.table REPLICA IDENTITY FULL;この設定がない場合、UPDATE および DELETE 操作の WAL ログには完全な行イメージが含まれず、DTS はこれらの変更をレプリケーションできません。
REPLICA IDENTITY FULL は、対象となるテーブルの WAL ボリュームを増加させます。CDC レプリケーションが必要なテーブルにのみ、選択的に適用してください。
プライマリ/セカンダリ スイッチオーバー
スイッチオーバーは、ApsaraDB RDS for PostgreSQL 11 インスタンスでのみサポートされています。スイッチオーバーを実行する前に、rds_failover_slot_mode パラメーターを sync に設定します。詳細については、「論理レプリケーションスロットのフェールオーバー」をご参照ください。
自主管理 PostgreSQL データベースまたはその他のバージョンの ApsaraDB RDS for PostgreSQL インスタンスでプライマリ/セカンダリ スイッチオーバーを実行すると、同期タスクが失敗します。
長時間トランザクション
ソースデータベース内の長時間トランザクションにより、当該トランザクションがコミットされるまで WAL ログが蓄積されます。放置すると、ソースデータベースのディスク領域が枯渇する可能性があります。長時間トランザクションを随時監視し、速やかにコミットまたはロールバックしてください。
同期タスクの構成
エンドツーエンドのフローは、以下の 4 つのステージで構成されます。
DTS インスタンスの購入
DTS コンソールを開き、同期タスクに移動
ソースおよび宛先インスタンスの構成と同期ポリシーの設定
事前チェックの実行とタスクの開始
ステップ 1:DTS インスタンスの購入
DTS インスタンスの購入を行います。購入ページで、以下のパラメーターを設定してください。
| パラメーター | 値 |
|---|---|
| ソースインスタンス | PostgreSQL |
| 宛先インスタンス | AnalyticDB for PostgreSQL |
| 同期トポロジー | 一方向同期 |
ステップ 2:DTS コンソールの開く
DTS コンソールにログインします。
Data Management (DMS) コンソールにリダイレクトされた場合は、
アイコンをクリックして、
内のメニューから DTS コンソールの旧バージョンに切り替えてください。
ステップ 3:同期タスクへの移動
左側のナビゲーションウィンドウで、[データ同期] をクリックします。
ステップ 4:宛先リージョンの選択
[同期タスク] ページの上部で、宛先インスタンスが配置されているリージョンを選択します。
ステップ 5:タスク構成画面の開く
同期インスタンスを検索し、[操作] 列の [構成タスク] をクリックします。
ステップ 6:ソースおよび宛先インスタンスの構成

ソースインスタンスの詳細
| パラメーター | 説明 |
|---|---|
| 同期タスク名 | DTS が自動的に名前を生成します。識別しやすいように、意味のある名前を指定してください。名前は一意である必要はありません。 |
| インスタンスタイプ | ソースデータベースのデプロイ方法に応じて選択します。本例では [ECS インスタンス上のユーザー作成データベース] を使用します。その他のインスタンスタイプの場合は、ネットワーク環境を事前に構成してください。詳細については、「事前準備の概要」をご参照ください。 |
| インスタンスリージョン | 購入ページで選択したソースリージョン。読み取り専用です。 |
| ECS インスタンス ID | 自主管理 PostgreSQL データベースがデプロイされている Elastic Compute Service (ECS) インスタンスを選択します。 |
| データベースタイプ | PostgreSQL。読み取り専用です。 |
| ポート番号 | 自主管理 PostgreSQL データベースのサービスポート。 |
| データベース名 | ソースデータベースの名前。 |
| データベースアカウント | スキーマ所有者権限を持つアカウント。 |
| データベースパスワード | データベースアカウントのパスワード。 |
宛先インスタンスの詳細
| パラメーター | 説明 |
|---|---|
| インスタンスタイプ | AnalyticDB for PostgreSQL。読み取り専用です。 |
| インスタンスリージョン | 購入ページで選択した宛先リージョン。読み取り専用です。 |
| インスタンス ID | AnalyticDB for PostgreSQL インスタンスを選択します。 |
| データベース名 | 宛先データベースの名前。 |
| データベースアカウント | AnalyticDB for PostgreSQL インスタンスの初期アカウント、または RDS_SUPERUSER 権限を持つアカウント。詳細については、「データベースアカウントの作成」および「ユーザーと権限の管理」をご参照ください。 |
| データベースパスワード | データベースアカウントのパスワード。 |
ステップ 7:DTS の IP アドレスをホワイトリストに追加
[ホワイトリストの設定と次へ] をクリックします。DTS は、ECS インスタンスのセキュリティグループのインバウンドルールおよび AnalyticDB for PostgreSQL インスタンスのホワイトリストに、自社サーバーの CIDR ブロックを自動的に追加します。これにより、DTS は両端への接続が可能になります。
ステップ 8:同期ポリシーおよび同期対象の構成

| パラメーター | 説明 |
|---|---|
| 同期の初期化 | [初期完全データ同期] がデフォルトで選択されています。事前チェックが成功した後、DTS はソースデータベースから既存のすべてのデータを宛先インスタンスにコピーし、増分同期のベースラインとして使用します。 |
| 競合テーブルの処理モード | [データのクリア]:空テーブルチェックをスキップし、完全同期前に宛先テーブルのデータをクリアします。テスト目的でタスクを実行した後に本番データを同期する場合に使用します。[無視]:空テーブルチェックをスキップし、受信データを宛先側の既存データに追加します。複数のソーステーブルから 1 つの宛先テーブルへ同期する場合に使用します。 |
| 同期タイプ | 同期する DML 操作を選択します:[挿入]、[更新]、および [削除]。AlterTable オプションは表示されますが、サポートされていません。 |
| 同期対象のオブジェクト | 利用可能選択済み[利用可能] リストからテーブルを選択し、 |
| 接続失敗時のリトライ時間 | デフォルトは 720 分(12 時間)です。この期間内に DTS が再接続できた場合、タスクは自動的に再開されます。それ以外の場合はタスクが失敗します。リトライ期間中も DTS の課金が発生します。ビジネス要件に応じてこの値を設定し、ソースおよび宛先インスタンスがいずれもリリースされた場合は、速やかに DTS インスタンスもリリースしてください。 |
ステップ 9:事前チェックの実行
右下隅の [事前チェック] をクリックします。事前チェックが成功しない限り、タスクを開始できません。
いずれかの項目が失敗した場合は、失敗した項目の横にある
アイコンをクリックして詳細を表示します。問題を解決した後、新しい事前チェックを開始してください。問題を修正しない場合は、失敗した項目を無視して新しい事前チェックを開始できます。
ステップ 10:タスクの開始
[事前チェック成功] のメッセージが表示されたら、[事前チェック] ダイアログボックスを閉じます。同期タスクが自動的に開始されます。
ステップ 11:タスクのステータスの確認
初期の完全同期が完了するまで待ちます。完了後、タスクのステータスは [同期中] に遷移します。

[同期タスク] ページでタスクの状態を監視します。