このトピックでは、ワンクリックでのクラウド移行機能を使用して、Elastic Compute Service (ECS) インスタンス上またはオンプレミスのデータセンター内の自主管理 PostgreSQL データベースを ApsaraDB RDS for PostgreSQL に移行する方法について説明します。この機能は物理ストリーミングレプリケーションを使用し、幅広いシナリオをサポートする高速、シンプル、かつ安定した移行プロセスを提供して、移行効率を向上させます。
前提条件
ターゲットの ApsaraDB RDS for PostgreSQL インスタンスは、次の要件を満たす必要があります:
インスタンスのメジャーバージョンは、自主管理 PostgreSQL データベースのメジャーバージョンと同じである必要があります。PostgreSQL 10 以降がサポートされています。
説明PostgreSQL 10 から ApsaraDB RDS for PostgreSQL 13 への移行など、メジャーバージョンをまたいで移行するには、まずこのドキュメントで説明されているワンクリックでのクラウド移行を完了する必要があります。その後、ApsaraDB RDS for PostgreSQL インスタンスのメジャーバージョンをアップグレードできます。詳細については、「データベースのメジャーバージョンをアップグレードする」をご参照ください。
インスタンスはプライマリインスタンスである必要があります。読み取り専用インスタンスは、ワンクリックでのクラウド移行をサポートしていません。
インスタンスのストレージタイプはクラウドディスクである必要があります。
インスタンスは空である必要があります。利用可能なストレージ容量は、自主管理 PostgreSQL データベースの合計データサイズ以上である必要があります。
自主管理 PostgreSQL データベースは、次の要件を満たす必要があります:
ネットワーク
移行元
ネットワーク構成要件
Alibaba Cloud ECS インスタンス上または ApsaraDB RDS for PostgreSQL インスタンス上の自主管理 PostgreSQL データベース
ソース ECS インスタンスまたは ApsaraDB RDS for PostgreSQL インスタンスは、ターゲットの ApsaraDB RDS for PostgreSQL インスタンスと同じ VPC にある必要があります。異なる VPC にある場合は、Cloud Enterprise Network (CEN) を使用して接続する必要があります。詳細については、「Cloud Enterprise Network」をご参照ください。
VPC に接続されているオンプレミスのデータセンター内の自主管理 PostgreSQL データベース
オンプレミスのデータセンターとターゲットの ApsaraDB RDS for PostgreSQL インスタンスとの間にプライベートネットワーク接続を確立する必要があります。構成の詳細については、「VPC をオンプレミス IDC に接続する」をご参照ください。
ECS インスタンスから自主管理 PostgreSQL データベースを移行する場合は、ECS インスタンスのセキュリティグループを設定する必要があります。詳細については、「(オプション) ECS セキュリティグループを設定する」をご参照ください。
postgresql.conf ファイルが設定されています。詳細については、「postgresql.conf ファイルを設定する」をご参照ください。
移行アカウントが作成されています。詳細については、「移行アカウントを作成する」をご参照ください。
pg_hba.conf ファイルが更新されています。詳細については、「pg_hba.conf ファイルを更新する」をご参照ください。
サーバーのファイアウォールが設定されています。詳細については、「サーバーのファイアウォールを設定する」をご参照ください。
注意
クラウド移行タスク中、自主管理 PostgreSQL データベースでの読み取りおよび書き込み操作は許可されます。ただし、別の移行、再起動、インスタンスのスペックアップまたはスペックダウンなど、ソースインスタンスで他の操作を実行しないでください。
ステップ 1: クラウド移行評価の実行
[インスタンス] ページに移動します。上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。次に、RDS インスタンスを見つけて、インスタンスの ID をクリックします。
左側のナビゲーションウィンドウで、[ワンクリックでのクラウド移行/ディザスタリカバリ] をクリックします。次に、[実現可能性評価] タブをクリックします。
設定ウィザードの [シナリオとソースタイプの選択] ステップで、[シナリオ] を [クラウド移行] に設定し、移行元を選択して、[次へ] をクリックします。
[ターゲットインスタンスの設定] ステップで、[次へ] をクリックします。
[ソースインスタンスの設定] ステップで、完了したすべての設定項目のチェックボックスをオンにして、[次へ] をクリックします。
説明[ソースインスタンスの設定] ステップの詳細については、「(オプション) ECS セキュリティグループを設定する」、「移行アカウントを作成する」、および「pg_hba.conf ファイルを更新する」をご参照ください。
[実現可能性評価の開始] ステップで、ソースインスタンスの情報を設定できます。
パラメーター
説明
移行タスク名
システムが自動的に名前を生成します。変更は必要ありません。
ソース VPC IP/DNS
ECS インスタンス上の自主管理 PostgreSQL データベースのワンクリック移行の場合、ECS インスタンスのプライベート IP アドレスを設定します。詳細については、「IP アドレスの表示」をご参照ください。
オンプレミスのデータセンター内の自主管理 PostgreSQL データベースのワンクリックでのクラウド移行の場合、データセンターのプライベート IP アドレスを入力します。
ソースインスタンスのポート
自主管理 PostgreSQL データベースのポートです。
netstat -a | grep PGSQLコマンドを実行してポートを表示します。ユーザー名
migratetest、「移行アカウントを作成する」ステップで作成したデータベースアカウントです。パスワード
123456、「移行アカウントを作成する」ステップで作成したデータベースアカウントのパスワードです。[実現可能性評価タスクの作成] をクリックします。
説明実現可能性評価タスク中、インスタンスのステータスは [インスタンスのメンテナンス中] に変わります。
移行評価が完了すると、[実現可能性評価] タブの [クラウド移行] リストでタスクのステータスを表示できます。
[ステータス] が [成功] の場合にのみ、クラウド移行ステップに進むことができます。詳細については、「ステップ 2: クラウドへの移行」をご参照ください。
[ステータス] が [失敗] の場合は、[操作] 列の [レポートの表示] をクリックし、エラーメッセージに基づいて問題を解決できます。一般的なエラーの詳細については、「クラウド移行評価レポートの解釈」をご参照ください。
エラーを解決した後、[操作] 列の [再評価] をクリックして、評価タスクを再度実行します。

ステップ 2: クラウドへの移行
このステップは、クラウド移行評価が成功した後にのみ実行できます。
[インスタンス] ページに移動します。上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。次に、RDS インスタンスを見つけて、インスタンスの ID をクリックします。
左側のナビゲーションウィンドウで、[ワンクリックでのクラウド移行/ディザスタリカバリ] をクリックします。[クラウド移行] タブで、[クラウド移行タスクの作成] をクリックします。
[クラウド移行タスクの作成] ウィンドウで、[関連評価タスク] リストから成功したクラウド移行評価タスクを選択します。これは、「ステップ 1: クラウド移行評価の実行」のタスクです。
説明[関連評価タスク] を選択すると、[ソースデータベースタイプ]、[ソース IP/DNS]、[ソースインスタンスポート]、および [ユーザー名] パラメーターが自動的に入力され、設定は不要です。
[クラウド移行の開始] をクリックして、移行タスクを自動的に開始します。
警告クラウド移行タスク中、インスタンスのステータスは [データ移行中] に変わります。自主管理 PostgreSQL データベースからの読み取りと書き込みは引き続き可能です。ただし、別の移行の開始、インスタンスの再起動、インスタンスのスペックアップまたはスペックダウンなどの他の操作は行わないでください。これらの操作を行うと、移行タスクが失敗します。
スイッチオーバーを実行します。
クラウド移行タスクリストで、[クラウド移行フェーズ] 列のリンクをクリックして、タスクの進捗状況を表示します。

移行が [増分同期] フェーズに入ったら、[操作] 列の [クラウドへの切り替え] をクリックします。これにより、ApsaraDB RDS for PostgreSQL インスタンスがプライマリデータベースに昇格し、サービスの提供を開始します。
[クラウドへの切り替え] ウィンドウで、ソースインスタンスを読み取り専用に設定するか、アプリケーションからの書き込み操作を停止します。
説明ソースインスタンスを読み取り専用に設定します:
ソースインスタンスが ApsaraDB RDS for PostgreSQL インスタンスの場合は、次のように設定します:
インスタンスパラメーターの設定 機能を使用して、ソースインスタンスの [rds_force_trans_ro_non_sup] パラメーターを [on] に設定できます。
次の文を実行して、既存のすべてのセッションを中断します。
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE usename not in ('replicator', 'monitor', 'pgsql', 'aurora') AND pid != pg_backend_pid();
ソースインスタンスが自己管理データベースの場合は、次のように設定します:
-- データベースを読み取り専用に設定 ALTER SYSTEM SET default_transaction_read_only=on; -- パラメーター設定を再読み込みして変更を適用 SELECT pg_reload_conf(); -- 既存のすべてのセッションを中断 SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE usename not in ('replicator', 'monitor', 'pgsql', 'aurora') AND pid != pg_backend_pid();
すべてのチェックボックスをオンにし、[今すぐ切り替え] をクリックして、移行が完了するのを待ちます。
