データベースを AlloyDB for PostgreSQL に移行する
始める前に
- アカウントにログインします。 Google Cloud を初めて使用する場合は、 アカウントを作成して、実際のシナリオで Google プロダクトのパフォーマンスを評価してください。 Google Cloud新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify 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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Database Migration Service API を有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。詳しくは、ロールを付与する方法をご覧ください。 - ユーザー アカウントにデータベース移行管理者のロールが割り当てられていることを確認します。
要件
Database Migration Service は、さまざまな移行元データベース オプションと接続方法を提供します。さまざまなソースは、一部の接続方法でのほうが、他の接続方法よりもよく機能します。このクイックスタートでは、ネットワークを構成して受信ファイアウォール ルールを追加できる環境でスタンドアロンの PostgreSQL データベースを使用していることを前提としています。移行元データベースは、オンプレミスまたはクラウド プロバイダにできます。ユーザーの具体的な環境を把握できないため、ネットワーキング構成に関する詳細なステップは提供できません。
このクイックスタートでは、[**移行元データベース エンジン**] には [**PostgreSQL**]、[**移行先データベース エンジン**] には [**AlloyDB for PostgreSQL**]、ネットワーク方式には [**VPC ピアリング**] を選択します。
ソース接続プロファイルの作成
接続プロファイルを作成すると、移行元データベースに関する情報を含むレコードが作成されます。Database Migration Service は、接続プロファイルの情報を使用して、移行元データベースから移行先の AlloyDB データベース インスタンスにデータを移行します。コンソールで、Database Migration Service の [接続プロファイル] ページに移動します。 Google Cloud
[プロファイルを作成] をクリックします。
[接続プロファイルの作成] ページの [プロファイル ロール] リストから、[ソース] を選択します。
[データベース エンジン] リストから、移行元データベースの次のいずれかの分類タイプを選択します。
- スタンドアロンの PostgreSQL インスタンス(PostgreSQL)
- 既存の Cloud SQL for PostgreSQL インスタンス(Cloud SQL for PostgreSQL)
- PostgreSQL 用の Amazon RDS インスタンス(Amazon RDS for PostgreSQL)
このクイックスタートでは、[PostgreSQL] を選択します。
- 次の情報を指定します。
- [接続プロファイル名] フィールドに、移行元データベースの接続プロファイルの名前(
My Connection Profileなど)を入力します。 - 自動生成された接続プロファイル ID を保持します。
- 接続情報を入力します。
- 自己ホスト型のデータベースからレプリケーションを行う場合は、ホストにアクセスするためのホスト名または IP アドレス (ドメインまたは IP)とポート を入力します。(デフォルトの PostgreSQL ポートは 5432 です)。
- Cloud SQL データベースからレプリケーションを行う場合は、プルダウン リストから Cloud SQL インスタンスを選択します。
- 移行元インスタンスを認証するためのユーザー名 とパスワード を入力します。
- [接続プロファイル名] フィールドに、移行元データベースの接続プロファイルの名前(
ページの [接続プロファイルのリージョン] セクションで、接続プロファイルを保存するリージョンを選択します。
- [作成] をクリックします。
移行ジョブの作成
Database Migration Service は、移行ジョブを使用して、移行元のデータベース インスタンスから移行先の AlloyDB データベース インスタンスにデータを移行します。移行ジョブの作成には、次の手順が含まれます。
- ジョブの設定の定義
- 移行元データベース用に作成した接続プロファイル(ソース接続プロファイル)を選択する
- 移行先の AlloyDB データベース インスタンスの設定を定義する
- 移行元データベースと移行先データベースのインスタンス間の接続を設定する
- 移行ジョブをテストして、ジョブに指定した接続情報が有効であることを確認する
移行ジョブの設定を定義する
コンソールで、Database Migration Service の [移行ジョブ] ページに移動します。 Google Cloud
[移行ジョブを作成] をクリックします。
[移行ジョブ名] フィールドに、移行ジョブの名前(
My Migration Jobなど)を入力します。自動生成された移行ジョブ ID を保持します。
[移行元データベース エンジン] プルダウン リストを開き、移行元データベースの分類タイプを選択します。このクイックスタートでは、[AlloyDB for PostgreSQL] を選択します。
移行先インスタンスを作成する移行先リージョン を選択します。
移行元データベースで行われた変更を移行先の AlloyDB データベース インスタンスに移行するため、[移行ジョブタイプ] を [継続的] に設定します。
移行ジョブに環境を準備する方法が反映されるように、自動的に生成される必須の前提条件を確認します。これらの前提条件には、移行元データベースの構成方法や、移行先の AlloyDB データベース インスタンスに接続する方法が含まれます。この手順でこれらの前提条件を完了することをおすすめしますが、移行ジョブをテストまたは開始する前であればいつでも完了できます。これらの前提条件の詳細については、移行元を構成するをご覧ください。
[保存して次へ] をクリックします。
ソース接続プロファイルに関する情報の指定
[移行元接続プロファイルを選択する] プルダウン リストを開き、作成した接続プロファイルを選択します。
[保存して次へ] をクリックします。
移行先の AlloyDB クラスタを作成する
クラスタは AlloyDB の最上位リソースです。移行先クラスタを作成するには:
- クラスタタイプを選択します。Database Migration Service は現在、高可用性 の AlloyDB クラスタをサポートしています。これらのクラスタは、読み取りプールなしで、リージョン内の複数のゾーンからデータを提供できます。
- [続行] をクリックします。
- クラスタを構成します。
- [クラスタ ID] フィールドに、クラスタの ID を入力します。
- [パスワード] フィールドに、デフォルトの
postgresユーザーのパスワードを入力します。データベースにログインするには、このパスワードが必要です。 - [ネットワーク] フィールドで、ネットワーク パスを選択して、移行接続の設定時に使用可能なリソースを定義します。クラスタを構成するには、プライベート IP ネットワーク パスが必要ですVPC ピアリングを介して移行元データベースに接続する場合は、移行元データベースが存在する VPC を選択します。
- 必要に応じて、割り振られた IP 範囲名を選択して、インスタンスが接続できる IP アドレスを指定します。
- [続行] をクリックします。
- プライマリ インスタンスを構成します。プライマリ インスタンスは、クラスタのコンピューティング容量を決定し、読み取り / 書き込みオペレーションをサポートします。
- [インスタンス ID] フィールドに、プライマリ インスタンスの ID を入力します。
- マシンタイプを選択します。
- 省略可: インスタンスにフラグを設定します。フラグを使用してインスタンスをカスタマイズできます。サポートされているフラグについては、AlloyDB のドキュメントをご覧ください。フラグごとに次の操作を行います。
- [フラグを追加] をクリックします。
- [新しいデータベース フラグ] リストからフラグを選択します。
- フラグの値を指定します。
- [完了] をクリックします。
- [保存して次へ] をクリックします。
- [移行先を作成して続行] をクリックして、選択内容を確認します。
- 移行先インスタンスの作成が完了するまで待ちます。
接続を設定する
- 移行元データベースと移行先データベース間の接続を確立するために使用するネットワーク方式を選択します。 このクイックスタートでは、[接続方法] リストを使用して、ネットワーク方式として [VPC ピアリング] を選択します。
- 移行元データベースの VPC ネットワークを確認します。[構成して続行] をクリックして、接続プロファイルの設定を完了します。
移行データベースを構成する
移行するデータベースを選択できます。
- [移行するデータベース] リストから [すべてのデータベース] を選択します。
移行元に存在するすべてのデータベースが移行対象として選択されます。
- [保存して次へ] をクリックします。
移行ジョブをテストして作成する
移行ジョブに選択した設定を確認します。
[ジョブをテスト] をクリックして、移行元が正しく構成されていること、移行元インスタンスと移行先インスタンスが相互に通信可能であること、移行ジョブが有効であることを確認します。
「テストに合格しました」というステータスが表示されていることを確認します。
テストに失敗した場合は、フローの適切な部分で問題に対処してから、再テストに戻ることができます。
[ジョブを作成して開始] をクリックして、移行ジョブを作成してすぐに開始します。
次のダイアログ ボックスで [開始] をクリックします。
[移行ジョブ] ページで、移行ジョブのステータスが [開始中] であることを確認します。数分後、ステータスが [実行中] に変わっていることを確認します。
移行ジョブを確認する
このセクションでは、Database Migration Service が移行ジョブを使用して、移行元データベース インスタンスから移行先の AlloyDB データベース インスタンスにデータを移行したことを確認します。
- コンソールの Google Cloud [AlloyDB の**クラスタ**] ページに移動します。
- 移行ジョブのリードレプリカ エントリをクリックします。
- ページ右上に表示される [Cloud Shell をアクティブにする] アイコンをクリックします。
- Cloud Shell のプロンプトで、Enter キーを押します。
- 省略可: [Cloud Shell の承認] ダイアログ ボックスが表示されたら、[承認] をクリックします。
- [パスワードを入力] プロンプトで、移行先の AlloyDB インスタンスを定義して作成するで指定したパスワードまたは Database Migration Service が生成したパスワードを入力します。
- postgres プロンプトで
\listと入力してデータベースを一覧表示し、移行元データベース インスタンスが表示されていることを確認します。 - postgres プロンプトで
\connect SOURCE_DB_NAMEと入力します。これは、このデータベース インスタンスに関連付けられているテーブルを表示するためです。プロンプトの名前がpostgresから SOURCE_DB_NAME に変わります。 - SOURCE_DB_NAME プロンプトで、
\dtと入力して、このインスタンスのテーブルを表示します。 - SOURCE_DB_NAME プロンプトで、
GRANT alloydbexternalsync to USER;と入力します。これは、このインスタンスのテーブル内のデータへのアクセス権限をこのユーザーに付与するためです。 - SOURCE_DB_NAME プロンプトで、
SELECT * from TABLE_NAME;と入力して、移行元データベース インスタンスのテーブルから複製された情報を表示します。 - 表に正しい情報が表示されていることを確認します。
これにより、Database Migration Service がデータを移行したことが確認できます。
移行ジョブをプロモートする
移行ジョブをプロモートする準備ができました。その結果、移行先の AlloyDB データベース インスタンスが移行元データベース インスタンスに代わってプライマリ データベースになります。
[移行ジョブ] ページに戻ります。
プロモートする移行ジョブをクリックします。[移行ジョブの詳細] ページが表示されます。
レプリケーションの遅延がゼロになるまで待ちます。
移行元データベースへの書き込みをすべて停止します 。
レプリケーションの遅延がゼロになるまで待ちます。
プロモートする移行ジョブをクリックします。このジョブのステータスは [実行中] になっているはずです。
[プロモート] をクリックして、移行ジョブをプロモートします。
次のダイアログ ボックスで [プロモート] をもう一度クリックします。
移行ジョブのステータスが [プロモート処理中] であることを確認します。数分後、ステータスが [完了] に変わっていることを確認します。
新しい AlloyDB データベース インスタンスを使用できるようになりました。
クリーンアップ
このページで使用したリソースについて、 Google Cloud アカウントに課金されないようにするには、 次の手順を実施します。
- コンソールを使用して、不要な移行ジョブ、接続プロファイル、AlloyDB クラスタ、プロジェクトを削除します。 Google Cloud