チュートリアル: 移行サービスを使用して Azure Database for PostgreSQL - 単一サーバーからフレキシブル サーバーに移行する

適用対象: Azure Database for PostgreSQL - フレキシブル サーバー

Azure portal を使って、Azure Database for PostgreSQL – 単一サーバーのインスタンスを Azure Database for PostgreSQL – フレキシブル サーバーに移行できます。 このチュートリアルでは、Azure portal を使用して、Azure Database for PostgreSQL シングル サーバーから PostgreSQL フレキシブル サーバーへのサンプル データベースの移行を実行します。

  • Azure Database for PostgreSQL - フレキシブル サーバーを構成する
  • 移行タスクを構成する
  • 移行を監視する
  • 移行の取り消し
  • 移行後の処理

Azure portal を使用して移行できます。

前提条件 (オフライン)

Azure Database for PostgreSQL の移行サービスを使用して移行を開始する前に、オフライン移行シナリオに適用される次の前提条件を満たす必要があります。

ソース バージョンの確認

ソース PostgreSQL のバージョンは >= 9.5 である必要があります。 ソース PostgreSQL のバージョンが 9.5 より小さい場合は、移行前にソース PostgreSQL のバージョンを 9.5 以上にアップグレードします。

ターゲット設定

  • 移行プロセスを開始する前に、Azure Database for PostgreSQL フレキシブル サーバーを Azure にデプロイし、適切に構成する必要があります。

  • Azure Database for PostgreSQL 用に選択された SKU は、互換性と適切なパフォーマンスを確保するために、ソース データベースの仕様に対応している必要があります。

  • 新しい Azure Database for PostgreSQL を作成する方法の詳細については、次の「クイック スタート: サーバー の作成」リンクを参照してください。

ネットワークのセットアップ

ネットワーク セットアップは、移行サービスが正しく機能するために重要です。 ソースの PostgreSQL サーバーがターゲットの Azure Database for PostgreSQL サーバーと通信できることを確認します。 移行を成功させるには、次のネットワーク構成が不可欠です。

ネットワーク セットアップの詳細については、移行サービスのネットワーク ガイドを参照してください。

拡張機能を有効にする

Azure Database for PostgreSQL の移行サービスを使用して移行を成功させるには、ソース PostgreSQL インスタンスの拡張機能を検証する必要がある場合があります。 拡張機能では、アプリケーションに必要な追加の機能が提供されます。 移行プロセスを開始する前に、ソース PostgreSQL インスタンスの拡張機能を検証してください。

ターゲットの Azure Database for PostgreSQL フレキシブル サーバー上のソース PostgreSQL インスタンスで識別されるサポート対象拡張機能を有効にします。

拡張機能の詳細については、Azure Database for PostgreSQL の拡張機能に関する記事を参照してください。

Note

shared_preload_libraries パラメーターに変更がある場合は、再起動が必要です。

サーバー パラメーターを確認する

これらのパラメーターはターゲット環境に自動的に移行されないので手動で構成する必要があります。

  • ソース PostgreSQL データベースのサーバー パラメーター値を Azure Database for PostgreSQL と照合します。そのためには、Azure portal の [サーバー パラメーター] セクションにアクセスし、手動で値を適宜更新します。

  • パラメーターの変更を保存し、必要に応じて Azure Database for PostgreSQL フレキシブル サーバーを再起動して新しい構成を適用します。

ターゲットで高可用性 (信頼性) と読み取りレプリカを無効にする

  • ターゲット環境で高可用性 (信頼性)読み取りレプリカを無効にすることが不可欠です。 これらの機能は、移行が完了した後にのみ有効にする必要があります。

  • これらのガイドラインに従うと、高可用性と読み取りレプリカによって導入された変数を追加することなく、スムーズな移行プロセスを実現できます。 移行が完了し、データベースが安定したら、これらの機能を有効にして、Azure のデータベース環境の可用性とスケーラビリティを向上させることができます。

Azure Database for PostgreSQL フレキシブル サーバーを構成する

移行タスクを構成する

移行サービスには、Azure portal に関する簡単なウィザード ベースのエクスペリエンスが付属しています。 開始する方法は次のとおりです。

  1. Web ブラウザーを開き、ポータルに移動します。 サインインするには、資格情報を入力します。 既定のビューはサービス ダッシュボードです。

  2. お使いの Azure Database for PostgreSQL フレキシブル サーバーに移動します。

  3. フレキシブル サーバーの [概要] タブの左側のメニューで、下にスクロールして [移行] を選びます。

    フレキシブルの [概要] ページのスクリーンショット。

  4. [作成] ボタンを選んで、単一サーバーからフレキシブル サーバーへの移行を始めます。 初めて移行サービスを使う場合、空のグリッドと最初の移行の開始を促すプロンプトが表示されます。

    フレキシブル サーバーの [移行] タブのスクリーンショット。

    フレキシブル サーバー ターゲットへの移行を既に作成してある場合は、単一サーバーからこのターゲットに対して試みられた移行に関する情報がグリッドに含まれます。

  5. ウィザードベースの一連のタブを使用して、考えられるさまざまなソースからこのフレキシブル サーバー ターゲットへの移行を作成します。 既定では、[ソース サーバーの種類][Azure Database for PostgreSQL 単一サーバー] に設定されています。このシナリオではこれを対象にしています。

または、Azure Database for PostgreSQL 単一サーバーから移行プロセスを開始することもできます。

  1. Web ブラウザーを開き、ポータルに移動します。 サインインするには、資格情報を入力する必要があります。 既定のビューはサービス ダッシュボードです。

  2. シングル サーバーを選択すると、概要タブで移行に関連するバナーを確認できます。[今すぐ移行する] を選択して開始します。

    [シングル サーバー] タブから移行を開始する画面のスクリーンショット。

  3. 2 つのオプションがあるページが表示されます。 フレキシブル サーバーを既に作成してあり、それをターゲットとして使う場合は、[既存から選択] を選んで、対応する [サブスクリプション][リソース グループ][サーバー名] の詳細を選択します。 選択が完了したら、[移行ウィザードに移動] を選択し、[セットアップ] セクションの手順に進みます。

    既存のフレキシブル サーバーのオプション選択を示すスクリーンショット。

  4. 新しいフレキシブル サーバーを作成することを選んだ場合は、[新規作成] を選択し、[作成ウィザードに移動] を選択します。 このアクションにより、フレキシブル サーバーの作成プロセスが実行され、フレキシブル サーバーがデプロイされます。

    新しいフレキシブル サーバーのオプション選択を示すスクリーンショット。

フレキシブル サーバーをデプロイした後、「移行タスクを構成する」のステップ 3 から 5 を行います。

セットアップ

最初のタブは [セットアップ] です。 これを行っていなかった場合は、移行を開始する前に、「Azure Database for PostgreSQL フレキシブル サーバーを構成する」の説明に従って、必要な拡張機能を許可リストに載せてください。

オフラインの [セットアップ] タブに含まれる詳細のスクリーンショット。

移行名は、このフレキシブル サーバーへの移行ごとの一意識別子です。 このフィールドで使用できる文字は英数字のみで、アンダースコア (_) とハイフン (-) 以外の特殊文字は使用できません。 名前は英数字で始まる必要があります。 同じフレキシブル サーバー ターゲットへの 2 つの移行の名前を同じにすることはできないため、名前はターゲット サーバーに対して一意である必要もあります。

[ソース サーバーの種類] はソースを示します。 この場合は、Azure Database for PostgreSQL 単一サーバーです

[移行オプション] では、移行をトリガーする前に検証を実行できます。 次のいずれかのオプションを選択できます。

  • [検証] - サーバーとデータベースがターゲットに移行できる状態になっていることを調べます。
  • [移行] - 検証をスキップして移行を始めます。
  • [検証と移行] - 移行をトリガーする前に検証を実行します。 検証エラーがない場合にのみ、移行がトリガーされます。

[検証] または [検証と移行] オプションを選び、移行を実行する前に移行前の検証を実行することを常にお勧めします。

[移行モード] では、オンラインとオフラインのどちらかの移行を選択できます。ここでは、[オフライン] に設定する必要があります。

[次: ランタイム サーバーの選択] ボタンを選択します。

ランタイム サーバー

移行ランタイム サーバーは、Azure Database for PostgreSQL の移行サービス内の特殊な機能であり、移行中に中間サーバーとして機能するように設計されています。 これは、ターゲット サーバーではない、別の Azure Database for PostgreSQL - フレキシブル サーバー インスタンスですが、プライベート ネットワーク経由でのみアクセスできるソース環境からのデータベースの移行を容易にするために使用されます。

移行ランタイム サーバー ページのスクリーンショット。

ランタイム サーバーについて詳しくは、移行ランタイム サーバーに関する記事を参照してください。

[次へ: ソースに接続] ボタンを選択します。

ソースに接続する

[ソース] セクションでは、データベースのソースである単一サーバーに関連する詳細の指定を求められます。

[サブスクリプション][リソース グループ] を選ぶと、サーバー名のドロップダウン リストに、リージョン全体のそのリソース グループの下にシングル サーバーが表示されます。 データベースの移行元のソースを選びます。 単一サーバーから同じリージョン内のターゲットのフレキシブル サーバーに、データベースを移行できます。 リージョン間の移行は、インド、中国、UAE のサーバーについてのみ有効になります。

単一サーバー ソースを選ぶと、[場所][PostgreSQL バージョン] のボックスが自動的に設定されます。 管理者ロールの資格情報を指定してください。移行サービスでデータベースを正常に移行するためにそれが必要です。

すべてのフィールドに入力したら、[ソースに接続する] リンクを選びます。 これにより、入力されたソース サーバーの詳細が正しく、ソース サーバーに到達可能であることが検証されます。

ソース データベース サーバーの詳細のスクリーンショット。

[次: 移行ターゲットを選択] ボタンを選択して続行します。

移行ターゲットを選択する

[移行ターゲットの選択] セクションには、[サブスクリプション][リソース グループ][サーバー名][場所][PostgreSQL バージョン] など、フレキシブル サーバー ターゲットのメタデータが表示されます。

ターゲット データベース サーバーの詳細のスクリーンショット。

[認証方法] とすべての認証関連フィールドの適切な値を選択します。 指定した ID はターゲット サーバーの管理者ユーザーのものであることが必要です。 必要なすべての情報を入力した後、[ターゲットに接続] リンクを選択します。 これにより、入力されたターゲット サーバーの詳細が正しく、ターゲット サーバーに到達可能であることが検証されます。

[次: 移行するデータベースの選択] ボタンを選択して、移行するデータベースを選択します。

移行するデータベースの選択

このタブには、単一サーバー内のユーザー データベースの一覧が表示されます。 1 回の移行試行で最大 8 つのデータベースを選択して移行できます。 ユーザー データベースが 8 つを超える場合は、ソース サーバーとターゲット サーバーの間で、次のデータベース セットに対して移行プロセスが繰り返されます。 ターゲット サーバー上に存在する正確に同じ名前の選択したデータベースが上書きされます。

移行するデータベースのスクリーンショット。

[次: サマリー] ボタンを選択して詳細を確認します。

まとめ

[概要] タブには、検証または移行の作成に関するすべての詳細がまとめられています。 詳細を確認し、[検証して移行の開始] ボタンを選択します。

移行の詳細を確認する画面のスクリーンショット。

移行監視ポータル

移行を開始すると、検証または移行の作成が成功したことを示す通知が表示されます。 フレキシブル サーバーの [移行] ページに、自動的にリダイレクトされます。 ここには、最近作成された検証または移行に関する新しいエントリがあります。

最近作成された移行の詳細のスクリーンショット。

移行を表示するグリッドには、[名前][状態][移行モード][移行の種類][ソース サーバー][ソース サーバーの種類][データベース][開始時刻][実行時間] の列があります。 エントリは、開始日時の降順に表示され、最新のエントリが先頭に表示されます。

[最新の情報に更新] ボタンを使って、検証または移行の状態を更新できます。

グリッドで特定の移行の名前を選んで、関連する詳細を表示することもできます。

作成された検証または移行は、InProgress 状態と PerformingPreRequisiteSteps サブ状態になります。 ワークフローで移行インフラストラクチャとネットワーク接続が設定されるまで、2 から 3 分かかります。

移行の各オプションについて、移行を監視する方法を見てみましょう。

検証

PerformingPreRequisiteSteps サブ状態が完了すると、検証は Validation in Progress サブ状態になります。このサブ状態では、ソース サーバーとターゲット サーバーで移行の準備状況を評価するチェックが行われます。

すべての検証が Succeeded または Warning 状態の場合、検証は Succeeded 状態になります。

検証グリッドのスクリーンショット。

検証グリッドには次の情報があります

  • [インスタンスの検証の詳細][データベースの検証の詳細] セクション: 移行の準備状況の確認に使われる検証ルールを表します。
  • [検証名] - 特定の各検証規則の名前。
  • [検証状態] - 各規則の結果を表し、3 つの値のいずれかになります。
    • [成功] - エラーが見つからなかった場合。
    • [失敗] - 検証エラーがある場合。
    • [警告] - 検証の警告がある場合。
  • [実行時間] - 検証操作にかかった時間。
  • [開始時刻 (UTC)][終了時刻 (UTC)] - 検証操作の UTC での開始時刻と終了時刻。

検証中にエラーが発生した場合、[検証状態][失敗] 状態になります。 失敗した [検証名] または [データベース名] の検証を選ぶと、ファンアウト ペインに、詳細と、このエラーを回避するために実行する必要がある是正措置が表示されます。

失敗状態を含む検証グリッドのスクリーンショット。

移行

PerformingPreRequisiteSteps というサブ状態が完了すると、移行は、データベースの複製/コピーが行われる [データを移行しています] のサブ状態に移ります。 移行が完了するまでの時間は、移行するデータベースのサイズと形状によって異なります。 データがすべてのテーブルにほぼ均等に分散されている場合、移行はすぐに完了します。 テーブル サイズにスキューがあると、相対的に長い時間がかかります。

移行中のいずれかのデータベースを選ぶと、ファンアウト ペインが表示されます。 すべてのテーブル数 (コピー済み、キュー済み、コピー中、エラー) と、データベースの移行状態が表示されます。

すべての DB 詳細を含む移行グリッドのスクリーンショット。

MigratingData 状態が正常に完了すると、移行は Succeeded 状態に移ります。 Migrating Data 状態で問題が発生した場合、移行は Failed 状態に移ります。

移行結果のスクリーンショット。

移行が Succeeded 状態になると、単一サーバーからフレキシブル サーバー ターゲットへのスキーマとデータの移行が完了します。 ページを更新して進行状況を確認できます。

完了した移行のスクリーンショット。

検証と移行

このオプションでは、最初に検証が実行されてから移行が開始されます。 PerformingPreRequisiteSteps サブ状態が完了すると、ワークフローは Validation in Progress サブ状態になります。

  • 検証にエラーがある場合、移行は Failed 状態になります。
  • 検証がエラーなしで完了すると、移行が開始され、ワークフローは Migrating Data のサブストレートに移ります。

操作が完了したら、[検証と移行] の結果を表示できます。

詳細ページの検証タブを示すスクリーンショット。

ポータルを使って移行を取り消す

進行中の検証または移行は取り消すことができます。 ワークフローを取り消すには、InProgress 状態である必要があります。 Succeeded または Failed 状態の検証または移行を取り消すことはできません。

検証を取り消すと、検証アクティビティはそれ以上行われなくなり、検証は Canceled 状態になります。

移行を取り消すと、ターゲット サーバーでそれ以上移行アクティビティは行われなくなり、Canceled 状態になります。 取り消しアクションでは、ターゲット サーバー上で移行サービスによって行われたすべての変更がロールバックされます。

完了時に移行を確認する

データベースを完了したら、ソースとターゲット間のデータを手動で検証し、ターゲット データベース内のすべてのオブジェクトが正常に作成されたことを確認する必要があります。

移行後、次のタスクを実行できます:

  • フレキシブル サーバー上のデータを確認し、ソース インスタンスの正確なコピーであることを確認します。

  • 検証後、必要に応じてフレキシブル サーバーで高可用性オプションを有効にします。

  • アプリケーションのニーズに合わせてフレキシブル サーバーの SKU を変更します。 この変更には、データベース サーバーの再起動が必要です。

  • ソース インスタンスの既定値からサーバー パラメーターを変更する場合は、フレキシブル サーバーでこれらのサーバー パラメーターの値をコピーします。

  • タグ、アラート、ファイアウォール規則 (該当する場合) などの他のサーバー設定をソース インスタンスからフレキシブル サーバーにコピーします。

  • 接続文字列がフレキシブル サーバーをポイントするように、アプリケーションに変更を加えます。

  • データベースのパフォーマンスを厳密に監視して、パフォーマンス チューニングが必要かどうかを確認します。