このトピックでは、クラウド移行機能を使用して、Elastic Compute Service (ECS) インスタンスまたはデータセンターにある自己管理型PostgreSQLインスタンスからApsaraDB RDS for PostgreSQLインスタンスにデータを移行する方法について説明します。 ApsaraDB RDS for PostgreSQLのクラウド移行機能は、物理ストリーミングレプリケーションを使用して、データをクラウドに使いやすく、効率的な方法で、ダウンタイムなしで高速に移行できるようにします。 この機能はすべてのシナリオに適しています。
前提条件
ApsaraDB RDS for PostgreSQLインスタンスは、次の要件を満たしています。
ApsaraDB RDS for PostgreSQLインスタンスとセルフマネージド型PostgreSQLインスタンスは、同じバージョンのPostgreSQLを実行します。このバージョンは、PostgreSQL 10以降です。
説明PostgreSQL 10を実行するインスタンスからPostgreSQL 13を実行するRDSインスタンスにデータを移行する場合は、クラウド移行機能を使用して、ソースPostgreSQLインスタンスからPostgreSQL 10を実行するRDSインスタンスにデータを移行し、「メジャーバージョンエンジンのアップグレード」の説明に基づいて、RDSインスタンスのメジャーエンジンバージョンをPostgreSQL 13にアップグレードする必要があります。
ApsaraDB RDS for PostgreSQLインスタンスはプライマリインスタンスです。 読み取り専用のApsaraDB RDS for PostgreSQLインスタンスは、クラウド移行をサポートしていません。
RDSインスタンスにはクラウドディスクが搭載されています。
ApsaraDB RDS for PostgreSQLインスタンスが空です。 ApsaraDB RDS for PostgreSQLインスタンスの使用可能なストレージが、自己管理型PostgreSQLインスタンスのデータのサイズ以上であること。
自己管理型PostgreSQLインスタンスは、次の要件を満たしています。
ネットワーク構成
移行ソース
ネットワーク設定
自己管理型ECSベースのPostgreSQLデータベースまたはApsaraDB RDS for PostgreSQLインスタンス
自己管理型PostgreSQLインスタンスがECSインスタンスに存在する場合、ECSインスタンスと移行先RDSインスタンスは同じ仮想プライベートクラウド (VPC) に存在する必要があります。 ソースインスタンスがRDSインスタンスの場合、ソースRDSインスタンスとターゲットRDSインスタンスは同じVPCに存在する必要があります。 ソースインスタンスとターゲットRDSインスタンスが異なるVPCにある場合、VPCを接続するにはCloud Enterprise Network (CEN) を使用する必要があります。 詳細については、「CENとは何ですか? 」をご参照ください。
データセンター内の自己管理型PostgreSQLデータベース (ターゲットデータベースと同じVPC内)
データセンターは、移行先RDSインスタンスが属するVPCと通信できる必要があります。 詳細については、「データセンターをVPCに接続する」をご参照ください。
自己管理型PostgreSQLインスタンスがECSインスタンスに存在する場合、ECSセキュリティグループを設定する必要があります。 詳細については、「 (オプション) ECSセキュリティグループの設定」をご参照ください。
「自己管理型postgresqlインスタンスのPostgreSQL. confファイルの設定」で説明されている設定は完了です。
「アカウントの作成」で説明されている設定は完了です。
pg_hba.confファイルの更新で説明されている設定は完了です。
「サーバーのファイアウォールの設定」で説明されている設定が完了しました。
使用上の注意
クラウド移行中に、自己管理型PostgreSQLインスタンスからデータを読み書きできます。 セルフマネージド型PostgreSQLインスタンスに対して、移行、再起動、仕様の変更などの操作を実行しないでください。
ステップ1: クラウド移行評価の実行
ApsaraDB RDSコンソールにログインし、[インスタンス] ページに移動します。 上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。 RDSインスタンスを見つけ、インスタンスIDをクリックします。
左側のナビゲーションウィンドウで、[クラウド移行 /DR構築] をクリックします。 表示されるページで、[実現可能性評価] タブをクリックします。
設定ウィザードの [シナリオとソースタイプの設定] ステップで、[シナリオ] の場合は [クラウドへの移行] 、[ソース] の場合は [ApsaraDB RDSインスタンス] を選択します。 次に、[次へ] をクリックします。
では、宛先インスタンスの設定設定ウィザードのステップで、次へ.
設定ウィザードの [ソースインスタンスの設定] ステップで、リストされているすべての項目を選択し、[次へ] をクリックします。 クラウド移行を開始する前に、リストされた項目に記載されている準備を完了する必要があります。
説明設定ウィザードの [ソースインスタンスの設定] ステップに記載されている項目の詳細については、「 (オプション) ECSセキュリティグループの設定」、「アカウントの作成」、および「pg_hba.confファイルの更新」をご参照ください。
設定ウィザードの [Feasibility Assessmentの開始] ステップで、自己管理型PostgreSQLインスタンスに関する情報を設定します。
パラメーター
説明
移行タスク名
クラウド移行タスクの名前が自動的に生成されます。 生成された名前を変更する必要はありません。
ソースVPC/DNS IP
自己管理型PostgreSQLインスタンスがECSインスタンスにある場合、ECSインスタンスのプライベートIPアドレスを入力します。 ECSインスタンスのプライベートIPアドレスを取得する方法の詳細については、「IPアドレスの表示」をご参照ください。
自己管理型PostgreSQLインスタンスがデータセンターにある場合は、データセンターのプライベートIPアドレスを入力します。
ソースインスタンスのポート
自己管理型PostgreSQLインスタンスへの接続に使用されるポート。 ポートを表示するには、
netstat -a | grep PGSQL
コマンドを実行します。ユーザー名
自己管理型PostgreSQLインスタンスへの接続に使用されるアカウントのユーザー名。
migratetest
と入力します。これは、アカウントの作成ステップで作成したアカウントのユーザー名です。Password
自己管理型PostgreSQLインスタンスへの接続に使用されるアカウントのパスワード。
123456
を入力します。これは、アカウントの作成ステップで作成したアカウントのパスワードです。[実現可能性評価タスクの作成] をクリックします。
説明実現可能性の評価中に、ApsaraDB RDS for PostgreSQLインスタンスのステータスが [インスタンスの維持] に変わります。
クラウド移行評価が完了したら、[Feasibility assessment] タブの [migration to cloud] セクションでクラウド移行評価タスクのステータスを確認できます。
実現可能性評価タスクの [ステータス] 列の値が [成功] の場合、クラウド移行を開始できます。 詳細については、「手順2: クラウド移行の開始」をご参照ください。
実現可能性評価タスクの [ステータス] 列の値が [失敗] の場合、[アクション] 列の [レポートの表示] をクリックして、報告されたエラーを表示および処理できます。一般的なエラーの詳細については、クラウド移行評価レポートの概要.
報告されたエラーを処理した後、実行可能性評価タスクの [操作] 列で [再評価] をクリックして再度実行できます。
ステップ2: クラウド移行を開始する
クラウド移行は、実現可能性評価タスクのステータスが [成功] の場合にのみ開始できます。
[インスタンス] ページに移動します。 上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。
左側のナビゲーションウィンドウで、[クラウド移行 /DR構築] をクリックします。 表示されるページで、[クラウドへの移行] タブをクリックします。 表示されるタブで、[クラウド移行タスクの作成] をクリックします。
[クラウド移行タスクの作成] ダイアログボックスで、[関連する評価タスク] ドロップダウンリストから [ステップ1: クラウド移行評価の実行] でステータスが成功を示すクラウド移行評価タスクを選択します。
説明[関連する評価タスク] ドロップダウンリストからクラウド移行評価タスクを選択すると、[移行元タイプ] 、[送信元IP/DNS] 、[送信元ポート] 、および [ユーザー名] パラメーターの値が自動的に取得されます。 これらのパラメータを手動で設定する必要はありません。
[クラウドへの移行を開始] をクリックします。 クラウド移行タスクが自動的に開始されます。
警告クラウド移行中、ApsaraDB RDS for PostgreSQLインスタンスのステータスが [データインの移行] に変わります。 自己管理型PostgreSQLインスタンスからデータを読み書きできます。 セルフマネージド型PostgreSQLインスタンスに対して、移行、再起動、仕様の変更などの操作を実行しないでください。
自己管理型PostgreSQLインスタンスのワークロードをApsaraDB RDS for PostgreSQLインスタンスに切り替えます。
クラウド移行タスクの [クラウド移行フェーズ] 列のリンクをクリックして、タスクの進行状況を表示します。
クラウド移行タスクが増分データ同期のフェーズに入ったら、クラウド移行タスクの [操作] 列で [切り替え] をクリックして、セルフマネージド型PostgreSQLインスタンスのワークロードをApsaraDB RDS for PostgreSQLインスタンスに切り替えます。
[切り替え] ダイアログボックスで、読み取り要求のみを処理するように自己管理型PostgreSQLインスタンスを設定します。 または、接続されたアプリケーションが自己管理型PostgreSQLインスタンスにデータを書き込むのを停止します。
説明読み取り要求のみを処理するようにソースインスタンスを設定できます。
ソースインスタンスがApsaraDB RDS for PostgreSQLインスタンスの場合、次の手順を実行します。
RDSインスタンスのrds_force_trans_ro_non_supパラメーターの値をonに変更します。 詳細については、「ApsaraDB RDS For PostgreSQLインスタンスのパラメーターの変更」をご参照ください。
次のステートメントを実行して、既存のセッションをすべて終了します。
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE usename not in ('replicator', 'monitor', 'pgsql', 'aurora') AND pid != pg_backend_pid();
ソースインスタンスが自己管理型PostgreSQLインスタンスの場合、次の手順を実行します。
-- Configure the self-managed PostgreSQL instance to process only read requests. ALTER SYSTEM SET default_transaction_read_only=on; -- Reload the parameter configuration for the modification to take effect. SELECT pg_reload_conf(); -- Terminate all existing sessions. SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE usename not in ('replicator', 'monitor', 'pgsql', 'aurora') AND pid != pg_backend_pid();
すべてのチェックボックスを選択し、今すぐ切り替えるボタンをクリックします。 その後、クラウド移行が完了するまで待ちます。