データを移行してデータベースのメジャー バージョンをアップグレードする

ここでは、新しいバージョンの PostgreSQL を実行しているインスタンスにデータを移行する方法を説明します。このメソッドを続行する前に、データベースのメジャー バージョンのインプレース アップグレードを検討してください。

Cloud SQL for PostgreSQL インスタンスのデータベースのメジャー バージョンをアップグレードする場合、データを移行する方法が 2 つあります。

  • オプション 1: Database Migration Service(DMS)を使用します。DMS は、Cloud SQL for PostgreSQL インスタンスからの移行をサポートしています。データベースのバージョンをアップグレードすることもできます。
  • オプション 2: 現在のインスタンスからデータをエクスポートし、新しいバージョンのインスタンスを実行する PostgreSQL にデータをインポートすることにより、PostgreSQL のバージョン間でデータを移動します。このプロセスにはダウンタイムが伴います。エクスポートを始める前に、現在のインスタンスを読み取り専用モードにします。

このページの残りの部分では、2 番目のオプションについて説明します。

メジャー バージョン アップグレードの計画

  1. 対象のメジャー バージョンを選択します。

    Cloud SQL でサポートされているバージョンのリストをご覧ください。

  2. PostgreSQL のバージョンごとに提供される機能を検討し、非互換性に対処します。

    新しいメジャー バージョンでは、互換性のない変更が導入され、データベース インスタンスをアップグレードする前に、アプリケーション コード、スキーマ、またはデータベース設定の変更が必要になる場合があります。対象メジャー バージョンのリリースノートを確認して、対処が必要な非互換性を特定します。メジャー バージョンをいくつかスキップする場合は、スキップする各バージョンの非互換性に対処します。

  3. ドライランでアップグレードをテストします。

    本番環境データベースをアップグレードする前に、テスト インスタンスを使用してエンドツーエンドのアップグレード プロセスのドライランを実行します。本番環境ワークロードのエクスポートによるパフォーマンスへの影響を避けるため、本番環境データベースの代わりにクローンを使用してアップグレードをテストすることをおすすめします。

    アップグレードが正常に完了したことを確認するだけでなく、アップグレードの予想ダウンタイムの把握、アップグレード ワークフローの確認、アップグレードされたデータベースでアプリケーションが想定どおりに動作することの確認のためのテストを実施します。ストレージの自動増量をまだ有効にしていない場合は、アップグレード後のドライラン インスタンスによるディスク ストレージの使用量をメモし、アップグレード前に本番環境インスタンスのストレージ容量を増やす必要があるかどうかを判断します。

  4. アップグレードのタイミングを決めます。

データの移行

移行するには、pg_dump コマンドを使用して、ソース インスタンスからデータをエクスポートし、pg_restoreコマンドを使用して、ターゲット インスタンスにデータをインポートします。

新しいバージョンのデータベースを実行している Cloud SQL インスタンスにデータを移行する手順は次のとおりです。

  1. 目的の PostgreSQL のバージョンで移動先インスタンスを作成します。

    移動先インスタンスが次のものを備えていることを確認します。

    • 現在のインスタンスのすべてのデータを保持するのに十分なストレージ。
    • 現在のインスタンスと同じ承認済みネットワーク。詳細
    • 同じユーザー アカウント(PostgreSQL 権限とパスワードが同じ)。

    詳細については、インスタンスの作成をご覧ください。

  2. ローカル PostgreSQL ツールで新しいインスタンスに接続できることを確認し、必要な場合はツールを更新します。

  3. Cloud SQL にインポートするデータをエクスポートするの手順を行い、現在のインスタンスのデータを PostgreSQL ダンプファイルにエクスポートします。

    postgres システム データベースはエクスポートしないでください。postgres データベースは、他のデータベースを作成する前に接続するデフォルトのデータベースです。別のデータベースを作成したら、そのデータベースに切り替えてテーブルを作成し、データを挿入してください。アプリケーション データには postgres データベースを使用しないでください。

  4. 必要に応じて Cloud Storage バケットを作成し、SQL ダンプファイルをバケットにアップロードします。

  5. Cloud Storage からの PostgreSQL データベースのインポートの手順を行い、移動先インスタンスにデータをインポートします。

  6. 省略可。アップグレード プロセスが完了したら、pglogical を使用して移行元と移行先のインスタンス間のレプリケーションを設定し、最初のダンプの開始以降に行われたすべての変更を移行先に反映します。2 つのインスタンスが同期されたら、移行先のインスタンスを昇格できます。

    pglogical を使用して継続的なレプリケーションを実装する方法については、ソースの構成をご覧ください。

  7. 新しいインスタンスに接続するようにアプリケーションを更新します。

  8. 新しいインスタンスが正常に動作していることを確認し、古いインスタンスを削除します。

次のステップ