このページでは、Database Migration Service のパブリック IP 許可リスト ネットワーク接続方法を使用して、Cloud SQL Enterprise エディション インスタンスを Cloud SQL Enterprise Plus エディションにアップグレードする方法について説明します。Database Migration Service が新しい Cloud SQL インスタンスを作成し、そのインスタンスにデータを移行します。
概要
Cloud SQL Enterprise Plus エディションは、最大の書き込みのパフォーマンスを必要とするアプリケーションに最適です。これらの改善の詳細については、パフォーマンスの強化をご覧ください。
既存の Cloud SQL Enterprise エディション インスタンスを強化できるようにするには、Database Migration Service を使用して Cloud SQL Enterprise Plus エディションにアップグレードする必要があります。
始める前に
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Database Migration Service API を有効にします。
- ユーザー アカウントにデータベース移行管理者のロールが割り当てられていることを確認します。
要件
Database Migration Service は、さまざまな移行元のデータベース オプションとネットワーク接続方法を提供します。さまざまなソースは、一部の接続方法でのほうが、他の接続方法よりもよく機能します。このページでは、ネットワークを構成して受信ファイアウォール ルールを追加できる環境で Cloud SQL Enterprise エディション インスタンスを使用していることを前提としています。ユーザーの具体的な環境を把握できないため、ネットワーキング構成に関する詳細なステップは提供できません。
移行元インスタンスを構成する
移行元の Cloud SQL Enterprise エディション インスタンスを構成するには、次の手順を完了します。
- 移行元インスタンスに
postgres
データベースがない場合は、作成します。詳細については、Cloud SQL インスタンスでデータベースを作成するをご覧ください。 - 移行元インスタンスのデータベースに
pglogical
パッケージをインストールします。パッケージがshared_preload_libraries
変数に含まれていることを確認します。詳細については、移行元データベースを構成するをご覧ください。 - 移行元インスタンスのデータベースの論理レプリケーションとデコードを有効にします。詳細については、移行元データベースの論理レプリケーションとデコードを有効にするをご覧ください。
移行元データベースを構成する
template0
および template1
データベースとは別に、Database Migration Service は、移行元の Cloud SQL Enterprise エディション インスタンスで他のあらゆるデータベースを移行します。
上記以外の移行元インスタンスのデータベースごとに、次の手順を完了します。
データベースに
pglogical
拡張機能をインストールするには、CREATE EXTENSION IF NOT EXISTS pglogical
コマンドを実行します。主キーのないテーブルの場合は、
UPDATE
ステートメントとDELETE
ステートメントを手動で移行します。移行した各データベースにこれらの権限を設定するには、ユーザーを作成するか、既存のユーザーの権限を設定します。このユーザーを使用して移行元インスタンスに接続し、[接続プロファイル] ページでユーザーとしてこのユーザーを構成します。このユーザーには、移行された各データベースとデフォルトの
postgres
データベースに対する一定の権限が必要です。これらの権限を設定するには、インスタンスに接続して次のコマンドを実行します。
- 移行する各データベースのすべてのスキーマ(情報スキーマと
pg_
で始まるスキーマを除く)に対するGRANT USAGE on SCHEMA SCHEMA to USER
。 - 移行する各データベースに対する
GRANT USAGE on SCHEMA pglogical to PUBLIC;
。 - 移行元データベースからレプリケーション情報を取得するすべてのデータベースに対する
GRANT SELECT on ALL TABLES in SCHEMA pglogical to USER
。 - 移行する各データベースのすべてのスキーマ(情報スキーマと
pg_
で始まるスキーマを除く)に対するGRANT SELECT on ALL TABLES in SCHEMA SCHEMA to USER
。 - 移行する各データベースのすべてのスキーマ(情報スキーマと
pg_
で始まるスキーマを除く)に対するGRANT SELECT on ALL SEQUENCES in SCHEMA SCHEMA to USER
。 ALTER USER USER with REPLICATION role
- 移行する各データベースのすべてのスキーマ(情報スキーマと
移行元データベースの論理レプリケーションとデコードを有効にする
cloudsql.logical_decoding
フラグと cloudsql.enable_pglogical
フラグを On
に設定して、移行元 Cloud SQL Enterprise エディション インスタンスのデータベースの論理レプリケーションとデコードを有効にします。これらのフラグの詳細について詳しくは、データベース フラグを構成するをご覧ください。
こららのフラグの両方を有効にするには、次の手順を完了します。
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
- 移行元インスタンスをクリックします。
- [編集] をクリックします。
- [インスタンスのカスタマイズ] セクションで [構成オプションを表示] メニューが表示されたら、それをクリックします。
[フラグ] セクションを開きます。
cloudsql.logical_decoding
フラグとcloudsql.enable_pglogical
フラグを設定するには、次の手順を完了します。- [データベース フラグを追加] をクリックします。
- プルダウン メニューから、
cloudsql.logical_decoding
フラグを選択します。 - このフラグの値を
On
に設定します。 - [完了] をクリックします。
cloudsql.enable_pglogical
フラグについて、これらの手順を繰り返します。
[保存] をクリックします。
[変更後は再起動が必要です] ダイアログで、[保存して再起動] をクリックします。Cloud SQL は移行元インスタンスを再起動し、フラグに対して行った構成の変更が有効になります。
- [構成] ペインの [データベース フラグ] セクションで、変更を確認します。
接続プロファイルを作成する
接続プロファイルには、移行元の Cloud SQL Enterprise エディションのデータベースに関する情報が含まれています。Database Migration Service は、接続プロファイルの情報を使用して、移行元データベースから移行先の Cloud SQL Enterprise Plus エディション インスタンスにデータを移行します。
接続プロファイルを作成するには、次の手順を完了します。
Google Cloud コンソールで、Database Migration Service の [接続プロファイル] ページに移動します。
[プロファイルの作成] をクリックします。
[データベース エンジン] プルダウン リストから [Cloud SQL for PostgreSQL] を選択します。
[接続プロファイル名] フィールドに、移行元データベースの接続プロファイルの名前(
My Connection Profile
など)を入力します。接続プロファイルを保存するリージョンを選択します。
[Cloud SQL インスタンス] プルダウン リストから、Cloud SQL Enterprise エディション インスタンスの名前を選択します。
移行元インスタンスを認証するには、ユーザー名とパスワードを入力します。その後、[続行] をクリックします。
データを暗号化する場合は、移行元データベースと移行先データベース間の接続で SSL/TLS 暗号化を有効にします。それ以外の場合は、デフォルト値の [None] のままにします。
[続行] をクリックします。
[接続テスト] プルダウン メニューから [パブリック IP] を選択します。
移行元が正しく構成され、Database Migration Service が移行元と通信できることを確認します。
[テストを実行] をクリックします。
Your connection profile test was successful!
ステータスが表示されていることを確認します。
テストに失敗した場合は、フローの適切な部分で問題に対処してから、再テストに戻ることができます。
[作成] をクリックします。
移行ジョブを作成する
Database Migration Service は、移行ジョブを使用して、移行元の Cloud SQL Enterprise エディションのデータベース インスタンスから移行先の Cloud SQL Enterprise Plus エディション インスタンスにデータを移行します。
移行ジョブの作成には以下の手順が含まれます。
- ジョブの設定の定義。
- 移行元の Cloud SQL Enterprise エディションのデータベース用に作成した接続プロファイルの選択。これは移行元の接続プロファイルです。
- 移行先の Cloud SQL Enterprise Plus エディション インスタンスの設定の定義。
- 移行元データベースと移行先データベースのインスタンス間の接続を設定します。
- 移行ジョブをテストして、ジョブに指定した接続情報が有効であることを確認します。
移行ジョブの設定を定義する
Google Cloud コンソールで、Database Migration Service の [移行ジョブ] ページに移動します。
[移行ジョブを作成] をクリックします。
[移行ジョブ名] フィールドに、移行ジョブの名前(
My Migration Job
など)を入力します。[移行元データベース エンジン] プルダウン リストから [Cloud SQL for PostgreSQL] を選択します。
[移行先データベース エンジン] プルダウン リストから [Cloud SQL for PostgreSQL] を選択します。
Cloud SQL Enterprise Plus エディション インスタンスを作成する移行先リージョンを選択します。
[移行ジョブタイプ] プルダウン リストから [継続的] を選択します。これは、移行元の Cloud SQL Enterprise エディションのデータベースで進行中の変更を移行先の Cloud SQL Enterprise Plus エディション インスタンスに移行するためです。
移行ジョブに環境を準備する方法が反映されるように、自動的に生成される必須の前提条件を確認します。これらの前提条件には、移行元の Cloud SQL Enterprise エディション データベースを構成する方法と移行先の Cloud SQL Enterprise Plus エディション インスタンスに接続する方法が含まれます。
この手順では、これらの前提条件を完了することをおすすめしますが、これらの前提条件は、移行ジョブをテストまたは開始する前であればいつでも完了できます。
[保存して続行] をクリックします。
ソース接続プロファイルに関する情報を指定する
[移行元接続プロファイルを選択する] プルダウン リストから、作成した接続プロファイルを選択します。
[保存して続行] をクリックします。
移行先の Cloud SQL Enterprise Plus エディション インスタンスの設定を定義する
[パスワード] フィールドに、移行先の Cloud SQL Enterprise Plus エディション インスタンスの英数字のパスワードを入力します。これは、インスタンスの
postgres
管理者アカウントのパスワードです。[データベースのバージョン] プルダウン リストから、指定したデータベース エンジン用にサポートされている Cloud SQL のバージョンのリストから移行先インスタンスを選択します。
[Enterprise Plus] を選択します。
[リージョンとゾーンの選択] セクションで、新しい Cloud SQL Enterprise Plus エディション インスタンスに必要な Google Cloud ゾーンを選択します(または [任意] のままにします)。
[パブリック IP] チェックボックスをオンにします。
Cloud SQL Enterprise Plus エディション インスタンスのマシンの形態を選択します。ディスクサイズは移行元データベースのサイズ以上である必要があります。
Cloud SQL インスタンスのストレージ タイプとストレージ容量を定義します。
新しいインスタンスを作成するには、[作成して続行] をクリックします。
表示されたダイアログで、[移行先を作成して続行] をクリックします。インスタンスの作成が完了するまで数分かかる場合があります。
接続を設定する
- [接続方法] プルダウン リストから [IP 許可リスト] を選択します。
移行先の Cloud SQL Enterprise Plus エディション インスタンスの送信 IP アドレスを使用して、移行元の Cloud SQL Enterprise エディション インスタンスへの接続を確立するには、次の手順を完了します。
- [移行先の送信 IP アドレス] リージョンで、[すべてコピー] をクリックします。
- ブラウザで別のタブを開きます。
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
- 移行元インスタンスをクリックします。
- [編集] をクリックします。
- [インスタンスのカスタマイズ] セクションで [構成オプションを表示] メニューが表示されたら、それをクリックします。
- [接続] セクションをクリックします。
- [ネットワークを追加] をクリックします。
- [名前] フィールドに、コピーした最初の IP アドレスを表すネットワークの名前を入力します(例:
My First Network
)。このネットワークは、移行元の Cloud SQL Enterprise エディションと移行先の Cloud SQL Enterprise Plus エディション データベース インスタンスとの間の接続を確立するために使用されます。 - [ネットワーク] フィールドに、最初にコピーした IP アドレスを入力し、その後に
/32
を続けます。これにより、ネットワークはこの IP アドレスからの接続のみを受け入れるように制限されます。 - [完了] をクリックします。
- コピーした IP アドレスごとに、上記の手順を繰り返します。
- [保存] をクリックします。Cloud SQL が移行元の Cloud SQL Enterprise エディション インスタンスを再起動すると、行った構成変更が有効になります。
- 移行ジョブが含まれるタブで、[保存して続行] をクリックします。
移行ジョブをテスト、作成、開始する
移行ジョブに選択した設定を確認します。
移行元が正しく構成されていること、移行元の Cloud SQL Enterprise エディションと移行先の Cloud SQL Enterprise Plus エディション インスタンスが相互に通信可能であること、移行ジョブが有効であることを確認します。
[ジョブをテスト] をクリックします。
Your migration job test was successful!
ステータスが表示されていることを確認します。
テストに失敗した場合は、フローの適切な部分で問題に対処してから、再テストに戻ることができます。
移行ジョブを作成してすぐに開始するには、[ジョブを作成して開始] をクリックします。
表示されたダイアログで、[作成して開始] をクリックします。
[移行ジョブ] ページで、移行ジョブのステータスが
Starting
であることを確認します。数分後、ステータスが
Running
に変わっていることを確認します。
移行ジョブを確認する
Database Migration Service が移行ジョブを使用して、移行元の Cloud SQL Enterprise エディション データベース インスタンスから移行先の Cloud SQL Enterprise Plus エディション データベース インスタンスにデータを移行したことを確認するには、次の手順を完了します。
Google Cloud コンソールで、[SQL インスタンス] ページに移動します。
移行ジョブのリードレプリカ エントリをクリックします。
- [検索] フィールドの横に表示される [Cloud Shell をアクティブにする] アイコンをクリックします。
プロンプトで、移行先の Cloud SQL Enterprise Plus エディション データベース インスタンスに接続するには、
gcloud sql connect
コマンドを使用します。gcloud sql connect DESTINATION_INSTANCE_NAME --user=postgres
DESTINATION_INSTANCE_NAME は、移行先の Cloud SQL Enterprise Plus エディション インスタンスの名前に置き換えます。
- 省略可: [Cloud Shell の承認] ダイアログが表示されたら、[承認] をクリックします。
- [パスワードを入力する] プロンプトで、移行先の Cloud SQL Enterprise Plus エディション インスタンスの設定を定義するで指定したパスワードを入力します。
- postgres プロンプトで、データベースを一覧表示し、移行元の Cloud SQL Enterprise エディション データベース インスタンスが表示されていることを確認するには
\list
と入力します。 - postgres プロンプトで、このデータベース インスタンスに関連付けられているテーブルを表示するには
\connect SOURCE_DB_NAME
と入力します。プロンプトの名前がpostgres
から SOURCE_DB_NAME に変わります。 - SOURCE_DB_NAME プロンプトで、このインスタンスのテーブルを表示するには、
\dt
と入力します。 - SOURCE_DB_NAME プロンプトで、このインスタンスのテーブル内のデータへのアクセス権限をこのユーザーに付与するには、「
GRANT cloudsqlexternalsync to USER;
」と入力します。USER は、移行先の Cloud SQL Enterprise Plus エディション データベース インスタンスへの接続に使用したユーザーの名前に置き換えます。
- SOURCE_DB_NAME プロンプトで、移行元の Cloud SQL Enterprise エディション データベース インスタンスのテーブルから複製された情報を表示するには、「
SELECT * from TABLE_NAME;
」と入力します。 - 表に正しい情報が表示されていることを確認します。
移行ジョブをプロモートする
移行ジョブをプロモートすると、移行元の Cloud SQL Enterprise エディション データベース インスタンスが、移行先の Cloud SQL Enterprise Plus エディション データベース インスタンスをプライマリ データベースとして置き換えられます。
移行ジョブをプロモートする次の手順は次のとおりです。
[移行ジョブ] ページに戻ります。
プロモートする移行ジョブをクリックします。[移行ジョブの詳細] ページが表示されます。
移行元の Cloud SQL Enterprise エディション データベースへのすべての書き込みを停止します。
レプリケーションの遅延が最小限であることを確認します。
プロモートする移行ジョブをクリックします。このジョブのステータスは
Running
です。移行ジョブをプロモートするには、[プロモート] をクリックします。
表示されるダイアログで、[プロモート] をクリックします。
移行ジョブのステータスが
Promote in progress
であることを確認します。数分後、ステータスがCompleted
に変わっていることを確認します。
新しい Cloud SQL Enterprise Plus エディションのデータベース インスタンスを使用できるようになりました。
クリーンアップ
このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、Google Cloud コンソールを使用して、移行ジョブ、接続プロファイル、移行元の Cloud SQL Enterprise エディション インスタンス、プロジェクトを、それらが不要な場合は削除します。
次のステップ
- Cloud SQL Enterprise Plus エディションの主な機能の詳細を確認する。
- Cloud SQL Enterprise Plus エディションのパフォーマンスの向上の詳細を確認する。
- Cloud SQL Enterprise Plus エディションのリージョン サポートについて詳しくは、こちらをご覧ください。
- Cloud SQL Enterprise Plus エディションの料金を確認する。