このドキュメントでは、クラウド移行機能を使用して MyBase for PostgreSQL インスタンスを ApsaraDB RDS for PostgreSQL インスタンスに移行する方法について説明します。
前提条件
次の要件を満たす ApsaraDB RDS for PostgreSQL インスタンスを作成します。
バージョンとカテゴリは、ソースの MyBase for PostgreSQL インスタンスと一致している必要があります。
ディスク領域は、ソースの MyBase for PostgreSQL インスタンスが使用する領域よりも大きい必要があります。
インスタンスファミリーは専用である必要があります。
インスタンスの作成方法の詳細については、「ApsaraDB RDS for PostgreSQL インスタンスのクイック作成」をご参照ください。
説明内部ネットワーク経由で移行する場合、移行先の ApsaraDB RDS for PostgreSQL インスタンスが、ソースの MyBase for PostgreSQL インスタンスと同じリージョンおよびVPC にあることを確認してください。
パブリックネットワーク経由で移行する場合、ApsaraDB RDS for PostgreSQL インスタンスと MyBase for PostgreSQL インスタンスの両方でパブリックエンドポイントを申請していることを確認してください。詳細については、「ApsaraDB RDS for PostgreSQL インスタンスのパブリックエンドポイントの申請」および「MyBase for PostgreSQL インスタンスのパブリックエンドポイントの申請」をご参照ください。
ApsaraDB RDS for PostgreSQL インスタンスと MyBase for PostgreSQL インスタンスが相互にアクセスできるように、IP ホワイトリストを設定します。詳細については、「ApsaraDB RDS for PostgreSQL インスタンスの IP ホワイトリストの設定」および「MyBase for PostgreSQL インスタンスの IP ホワイトリストの設定」をご参照ください。
ApsaraDB RDS または ApsaraDB for MyBase コンソールにログインして、インスタンスの内部 CIDR ブロックを表示できます。左側のナビゲーションウィンドウで、[データベース接続] をクリックします。このページで、[ネットワークタイプ] の行を見つけて、インスタンスの内部 CIDR ブロック (例:
172.x.x.x) を表示します。内部ポートは5432です。MyBase for PostgreSQL インスタンス用の高権限アカウントを作成します。詳細については、「データベースアカウントの作成」をご参照ください。
注意事項
クラウド移行タスクの実行中は、ソースの MyBase for PostgreSQL データベースに対して読み取りおよび書き込みができます。ただし、別の移行、再起動、仕様変更などの操作は行わないでください。
MyBase for PostgreSQL インスタンスを読み取り専用に設定すると、アプリケーションはインスタンスからの読み取りしかできなくなります。
新しい汎用インスタンスファミリーのインスタンスは、パブリックネットワーク経由の移行をサポートしていません。
ステップ 1:実現可能性評価
[インスタンス] ページに移動します。上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。次に、対象の RDS インスタンスを見つけて、インスタンスの ID をクリックします。
左側のナビゲーションウィンドウで、[クラウド移行/ディザスタリカバリ] をクリックします。次に、[実現可能性評価] タブをクリックします。
設定ウィザードの [シナリオとソースタイプの選択] ステップで、シナリオとして [クラウド移行] を選択し、ソースタイプとして [Alibaba Cloud RDS インスタンス] を選択します。次に、[次へ] をクリックします。
-
対象インスタンスの設定 ページで、次のステップ をクリックします。
[ソースインスタンスの設定] ステップで、完了したすべての前提条件チェックを選択し、[次へ] をクリックします。
[実現可能性評価の開始] ステップで、ソースデータベースの情報を設定します。
パラメーター
説明
移行タスク名
システムが自動的に名前を生成します。変更する必要はありません。
ソース VPC IP/DNS
MyBase for PostgreSQL インスタンスのエンドポイント。インスタンスのパブリックおよび内部エンドポイントの表示方法の詳細については、「内部およびパブリックエンドポイントとポートの表示または変更」をご参照ください。
ソースインスタンスポート
MyBase for PostgreSQL インスタンスのポート番号。インスタンスのポート番号の表示方法の詳細については、「内部およびパブリックエンドポイントとポートの表示または変更」をご参照ください。
ユーザー名
MyBase for PostgreSQL インスタンスの高権限アカウント。インスタンスアカウントの表示方法の詳細については、「データベースアカウントの表示」をご参照ください。
パスワード
高権限アカウントのパスワード。
[実現可能性評価タスクの作成] をクリックします。
説明実現可能性評価タスクの実行中、インスタンスのステータスは [インスタンスのメンテナンス中] に変わります。
実現可能性評価が完了すると、[実現可能性評価] ページの [クラウド移行] リストで評価タスクのステータスを確認できます。
ステータスが[成功]の場合にのみ、ステップ 2: クラウド移行に進むことができます。
[ステータス] が [失敗] の場合は、[操作] 列の [レポートの表示] をクリックし、レポートに記載されている詳細に従ってエラーを解決します。一般的なエラーについては、「実現可能性評価レポートの解釈」をご参照ください。
エラーを解決した後、[操作] 列の [再評価] をクリックして、評価を再度実行できます。
ステップ 2:クラウド移行
このステップは、実現可能性評価が成功した後にのみ実行できます。
[クラウド移行] タブで、[クラウド移行タスクの作成] をクリックします。
表示されるダイアログボックスで、[関連評価タスク] ドロップダウンリストから、ステップ 1:実現可能性評価 で成功した評価タスクを選択します。
説明評価タスクを関連付け を選択すると、ソースライブラリタイプ、ソースIPアドレス/DNS、ソースインスタンスのポート、および ユーザー名 パラメーターが自動的に入力されます。
[クラウド移行の開始] をクリックして、移行タスクを開始します。
重要移行タスクの実行中、インスタンスのステータスは [データ移行中] に変わります。ソースの MyBase for PostgreSQL データベースに対して読み取りおよび書き込みができますが、別の移行、再起動、仕様変更などの操作は行わないでください。
クラウドへの切り替えを実行します。
移行タスクリストで、[クラウド移行フェーズ] 列のリンクをクリックして、現在のタスクの進捗状況を表示します。
クラウド移行の段階が [増分同期] の場合、[アクション] 列の [クラウド切り替え] をクリックして、ApsaraDB RDS for PostgreSQL インスタンスをプライマリインスタンスにすることができます。
[クラウドへの切り替え] ダイアログボックスで、画面の指示に従って MyBase for PostgreSQL インスタンスを読み取り専用に設定するか、アプリケーションの書き込みを停止します。
説明MyBase for PostgreSQL インスタンスを読み取り専用に設定するには:
MyBase for PostgreSQL データベースにログインし、次のコマンドを実行してスーパーユーザーが存在するかどうかを確認します。
SELECT CASE WHEN(count(rolname)<= 3) THEN 'superuser check ok' ELSE 'exists superuser created by user' END AS result FROM pg_roles where rolsuper= 't' and rolname in ('aurora', 'replicator') or rolname like 'pg%' GROUP BY rolname limit 1;スーパーユーザーが存在する場合は、Alibaba Cloud のエンジニアに連絡して設定を変更してください。
スーパーユーザーが存在しない場合は、次の手順を実行して設定を変更します。
ApsaraDB for MyBase コンソールにログインします。
[パラメーター設定] 機能を使用して、[rds_force_trans_ro_non_sup] パラメーターを [on] に設定します。左側のナビゲーションウィンドウで、[パラメーター設定] をクリックします。[変更可能なパラメーター] タブで、
rds_force_trans_ro_non_supパラメーターを見つけ、その実行中の値をonに変更し、[パラメーターの送信] をクリックします。変更が完了したら、MyBase for PostgreSQL データベースにログインし、次のコマンドを実行してすべてのアクティブセッションを終了します。
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE usename not in ('replicator', 'monitor', 'pgsql', 'aurora') AND pid != pg_backend_pid();
すべてのチェックボックスを選択し、[今すぐ切り替え] をクリックします。移行が完了するまで待ちます。
ステップ 3:アプリケーションへの接続
オプション 1:エンドポイントの交換 (推奨)
MyBase for PostgreSQL インスタンスのエンドポイントを変更します。次に、その元のエンドポイントを ApsaraDB RDS for PostgreSQL インスタンスに割り当てます。
たとえば、MyBase for PostgreSQL インスタンスのエンドポイントが pgm-aaa.pg.rds.aliyuncs.com で、ApsaraDB RDS for PostgreSQL インスタンスのエンドポイントが pgm-bbb.pg.rds.aliyuncs.com であるとします。MyBase for PostgreSQL インスタンスのエンドポイントを pgm-ccc.pg.rds.aliyuncs.com に変更し、次に ApsaraDB RDS for PostgreSQL インスタンスのエンドポイントを pgm-aaa.pg.rds.aliyuncs.com に変更できます。
オプション 2:アプリケーションエンドポイントの更新
ApsaraDB RDS for PostgreSQL インスタンスのエンドポイントを取得し、アプリケーションの設定で更新します。