概要
Database Migration Service は、移行ジョブを使用して、移行元のデータベース インスタンスから移行先のデータベース インスタンスにデータを移行します。既存の移行先インスタンスの移行ジョブの作成には、次の手順が含まれます。
- 移行ジョブの設定を定義します
- 移行元データベース接続プロファイルの選択
- 既存の移行先データベース インスタンスの選択
- 既存のインスタンスを降格してリードレプリカに変換する
- 移行元データベースと移行先データベースのインスタンス間の接続を設定します
- 移行ジョブをテストして、ジョブに指定した接続情報が有効であることを確認します
Database Migration Service の外部で作成された移行先インスタンスに移行する場合は、考慮すべき制限事項があります。詳細については、既知の制限事項をご覧ください。
Google Cloud コンソールを使用して移行ジョブを作成する
移行ジョブの設定を定義する
Google Cloud コンソールで、[Migration jobs] に移動します。
ページ上部の [移行ジョブを作成] をクリックします。
移行ジョブの名前を指定します。移行ジョブを識別できるわかりやすい名前を選択します。ジョブ名には機密情報や個人を特定できる情報を含めないでください。
自動生成された移行ジョブ ID を保持します。
移行元データベース エンジンを選択します。
移行先エンジンとして AlloyDB for PostgreSQL を選択します。
移行先のリージョンを選択します。このリージョンは、宛先データベースが配置されているリージョンと同じである必要があります。宛先リージョンを選択した後、この選択を変更することはできません。
移行ジョブの種類として [継続的](スナップショット + 進行中の変更)を選択します。
[続行する前に、前提条件を確認する] セクションで [開く] をクリックして、移行用に移行元データベースを準備する際に役立つ自動生成された手順を表示します。この手順では、これらの前提条件を完了することをおすすめしますが、移行ジョブをテストまたは開始する前であればいつでも完了できます。詳細については、ソースを構成するをご覧ください。
[保存して次へ] をクリックします。
ソース接続プロファイルに関する情報の指定
-
接続プロファイルを作成した場合は、既存の接続プロファイルのリストから選択します。
接続プロファイルを作成していない場合は、プルダウン リストの下部にある [接続プロファイルを作成する] をクリックして接続プロファイルを作成してから、ソース接続プロファイルを作成すると同じ手順を行います。
AlloyDB の移行用に専用の接続プロファイルを作成することをおすすめします。
- [データダンプの構成をカスタマイズする] セクションで、[データダンプの構成を表示] をクリックします。
データダンプ並列処理の速度は、ソース データベースの負荷量に関連しています。次の設定を使用できます。
- 最適(推奨): ソース データベースへの負荷が最適な状態で、バランスの取れたパフォーマンスが実現します。
- 最大: ダンプ速度が最も速くなりますが、ソース データベースの負荷が増加する可能性があります。
- 最小: ソース データベースで消費されるコンピューティング リソースが最小になりますが、ダンプ スループットが低下する可能性があります。
調整されたデータダンプ並列処理設定を使用する場合は、ソース データベースで
max_replication_slots
、max_wal_senders
、max_worker_processes
パラメータを増やしてください。移行ジョブの作成の最後に 移行ジョブテストを実行して、構成を確認できます。 - [保存して次へ] をクリックします。
移行先インスタンスを選択する
1. [宛先クラスタのタイプ] メニューで、[既存のクラスタ] を選択します。[移行先クラスタの選択] セクションで、移行先クラスタを選択します。
クラスタに関する情報を確認して、[選択して続行] をクリックします。
既存の移行先データベースに移行するには、Database Migration Service は移行先インスタンスを降格させ、レプリカに変換します。降格を安全に実行できることを示すには、確認ウィンドウで移行先インスタンス ID を入力します。
[確認して次へ] をクリックします。
移行元データベースと移行先データベースのインスタンス間の接続を設定する
[接続方法] プルダウン メニューから、ネットワーク接続方法を選択します。この方法により、新しく作成された AlloyDB クラスタがソース データベースに接続される方法が定義されます。現在のネットワーク接続方法には、IP 許可リスト、VPC ピアリング、リバース SSH トンネル、クラウドでホストされている VM を介した TCP プロキシなどがあります。
- IP 許可リストのネットワーク接続方法を選択した場合は、宛先インスタンスの送信 IP アドレスを指定する必要があります。プライマリ インスタンスとセカンダリ インスタンスの両方の送信 IP アドレスをコピーし、それを使用して、移行元データベース サーバーと
pg_hba.conf
ファイルでネットワーク ファイアウォールを構成します。これにより、移行元がこれらのアドレスからの接続を受け入れることができます。 リバース SSH トンネル ネットワーク接続方法を選択した場合は、トンネルをホストする Compute Engine VM インスタンスを選択します。
インスタンスを指定すると、ソース データベースと移行先データベースの間にトンネルを設定する手順を実行するスクリプトが提供されます。スクリプトは Google Cloud CLI で実行する必要があります。
ソース データベースと Google Cloud の両方に接続できるマシンからコマンドを実行します。
- VPC ピアリング ネットワーク接続方法を選択する場合は、ソース データベースが存在する VPC ネットワークを選択します。このネットワークに接続するように Cloud SQL インスタンスが更新されます。
クラウドでホストされる VM の接続方法による TCP プロキシを選択した場合は、TCP プロキシをホストする新しい Compute Engine VM インスタンスに必要な詳細情報を入力します。
詳細を指定すると、 Google Cloud コンソールに、ソース データベースと宛先データベースの間にプロキシを設定する手順を実行するスクリプトが提供されます。更新された Google Cloud CLI がインストールされているマシンでスクリプトを実行する必要があります。
スクリプトを実行すると、新しく作成された VM のプライベート IP が出力されます。IP を入力し、[構成して続行] をクリックします。
- 詳しくは、接続を構成するをご覧ください。
ネットワーク接続方法を選択し、その方法の追加情報を入力したら、[構成して続行] をクリックします。
移行ジョブをテストして作成する
この最後のステップでは、移行ジョブの設定、ソース、宛先、接続方法の概要を確認し、移行ジョブの設定の有効性をテストします。問題が発生した場合は、移行ジョブの設定を変更できます。すべての設定を編集できるわけではありません。
[TEST JOB] をクリックして、次のことが確認されていることを確認します。
- 前提条件に基づいて、ソース データベースが正しく構成されている。
- ソース インスタンスと宛先インスタンスは相互に通信できます。
- 宛先で必要なプライベート IP アドレスの更新が完了します。
- 移行ジョブが有効で、移行元と移行先のバージョンが互換性があります。
テストに失敗した場合は、フローの適切な部分で問題に対処してから、再テストに戻ることができます。
テストが失敗しても移行ジョブは作成できますが、ジョブの開始後に実行中に失敗する可能性があります。
[ジョブを作成して開始] をクリックして移行ジョブを作成してすぐに開始するか、[ジョブを作成] をクリックして移行ジョブを作成してすぐに開始しないでください。
ジョブが作成時に開始されなかった場合は、[移行ジョブ] ページで [開始] をクリックして開始できます。
移行ジョブの開始時間に関係なく、移行先インスタンスの存在に対して料金が発生します。
移行ジョブを開始すると、Database Migration Service は完全なダンプを行い、移行元データベースを一時的にロックします。移行元が Amazon RDS または Amazon Aurora にある場合、Database Migration Service では、移行の開始時に短時間(約 1 分未満)の書き込みダウンタイムも必要になります。詳細については、 データダンプ並列化の考慮事項をご覧ください。
移行ジョブは移行ジョブのリストに追加され、直接表示できます。
移行ジョブを確認するに進みます。
Google Cloud CLI を使用して移行ジョブを作成する
Google Cloud CLI を使用して既存のインスタンスに移行する場合は、移行先インスタンスの接続プロファイルを手動で作成する必要があります。 Google Cloud コンソールを使用する場合は、Database Migration Service が移行先接続プロファイルの作成と削除を処理するため、これは必要ありません。
始める前に
gcloud CLI を使用して既存の移行先データベース インスタンスへの移行ジョブを作成する前に、次の点を確認してください。
- 移行先データベース インスタンスを作成します。
- 移行元データベース インスタンスを準備します。以下をご覧ください。
- ソースを構成する
- ソース接続プロファイルを作成する(移行ジョブの作成には、ソース接続プロファイル ID が必要です)。
- 接続を構成する
移行先の接続プロファイルを作成する
gcloud database-migration connection-profiles create
コマンドを実行して、既存の移行先インスタンスの宛先接続プロファイルを作成します。
このサンプルでは、オプションの --no-async
フラグを使用して、すべてのオペレーションが同期的に実行されます。そのため、一部のコマンドは完了するまでに時間がかかることがあります。--no-async
フラグをスキップして、コマンドを非同期で実行できます。その場合は、gcloud database-migration operations describe
コマンドを使用して、オペレーションが成功したかどうかを確認する必要があります。
後述のコマンドデータを使用する前に、次のように置き換えます。
- CONNECTION_PROFILE_ID は、接続プロファイルの機械読み取り可能な識別子に置き換えます。
- REGION は、接続プロファイルを保存するリージョンの ID に置き換えます。
- DESTINATION_INSTANCE_ID は、宛先インスタンスのインスタンス ID に置き換えます。
- (省略可)CONNECTION_PROFILE_NAME は、接続プロファイルのわかりやすい名前に置き換えます。この値は、 Google Cloud コンソールに表示されます。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud database-migration connection-profiles \ create postgresql CONNECTION_PROFILE_ID \ --no-async \ --alloydb-cluster=DESTINATION_INSTANCE_ID \ --region=REGION \ --display-name=CONNECTION_PROFILE_NAME
Windows(PowerShell)
gcloud database-migration connection-profiles ` create postgresql CONNECTION_PROFILE_ID ` --no-async ` --alloydb-cluster=DESTINATION_INSTANCE_ID ` --region=REGION ` --display-name=CONNECTION_PROFILE_NAME
Windows(cmd.exe)
gcloud database-migration connection-profiles ^ create postgresql CONNECTION_PROFILE_ID ^ --no-async ^ --alloydb-cluster=DESTINATION_INSTANCE_ID ^ --region=REGION ^ --display-name=CONNECTION_PROFILE_NAME
次のようなレスポンスが返されます。
Waiting for connection profile [CONNECTION_PROFILE_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created connection profile CONNECTION_PROFILE_ID [OPERATION_ID]
移行ジョブを作成する
このサンプルでは、オプションの --no-async
フラグを使用して、すべてのオペレーションが同期的に実行されます。そのため、一部のコマンドは完了するまでに時間がかかることがあります。--no-async
フラグをスキップして、コマンドを非同期で実行できます。その場合は、gcloud database-migration operations describe
コマンドを使用して、オペレーションが成功したかどうかを確認する必要があります。
後述のコマンドデータを使用する前に、次のように置き換えます。
- MIGRATION_JOB_ID は、移行ジョブの機械読み取り可能な識別子に置き換えます。この値は、Database Migration Service の Google Cloud CLI コマンドまたは API を使用して移行ジョブを操作する場合に使用します。
- REGION は、移行ジョブを保存するリージョン ID に置き換えます。
- MIGRATION_JOB_NAME は、移行ジョブのわかりやすい名前に置き換えます。この値は、 Google Cloud コンソールの Database Migration Service に表示されます。
- SOURCE_CONNECTION_PROFILE_ID は、移行元の接続プロファイルの機械読み取り可能な識別子に置き換えます。
- DESTINATION_CONNECTION_PROFILE_ID は、移行先接続プロファイルの機械読み取り可能な ID に置き換えます。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud database-migration migration-jobs \ create MIGRATION_JOB_ID \ --no-async \ --region=REGION \ --display-name=MIGRATION_JOB_NAME \ --source=SOURCE_CONNECTION_PROFILE_ID \ --destination=DESTINATION_CONNECTION_PROFILE_ID \ --type=CONTINUOUS \
Windows(PowerShell)
gcloud database-migration migration-jobs ` create MIGRATION_JOB_ID ` --no-async ` --region=REGION ` --display-name=MIGRATION_JOB_NAME ` --source=SOURCE_CONNECTION_PROFILE_ID ` --destination=DESTINATION_CONNECTION_PROFILE_ID ` --type=CONTINUOUS `
Windows(cmd.exe)
gcloud database-migration migration-jobs ^ create MIGRATION_JOB_ID ^ --no-async ^ --region=REGION ^ --display-name=MIGRATION_JOB_NAME ^ --source=SOURCE_CONNECTION_PROFILE_ID ^ --destination=DESTINATION_CONNECTION_PROFILE_ID ^ --type=CONTINUOUS ^
次のようなレスポンスが返されます。
Waiting for migration job [MIGRATION_JOB_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created migration job MIGRATION_JOB_ID [OPERATION_ID]
移行先データベースの降格
Database Migration Service では、移行中は移行先データベース インスタンスがリードレプリカとして機能する必要があります。移行ジョブを開始する前に、gcloud database-migration migration-jobs demote-destination
コマンドを実行して移行先データベース インスタンスを降格します。
後述のコマンドデータを使用する前に、次のように置き換えます。
- MIGRATION_JOB_ID は、移行ジョブ ID に置き換えます。
ID がわからない場合は、
gcloud database-migration migration-jobs list
コマンドを使用して、特定のリージョン内のすべての移行ジョブを一覧表示し、ID を表示できます。 - REGION は、接続プロファイルが保存されているリージョンの ID に置き換えます。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud database-migration migration-jobs \ demote-destination MIGRATION_JOB_ID \ --region=REGION
Windows(PowerShell)
gcloud database-migration migration-jobs ` demote-destination MIGRATION_JOB_ID ` --region=REGION
Windows(cmd.exe)
gcloud database-migration migration-jobs ^ demote-destination MIGRATION_JOB_ID ^ --region=REGION
結果
アクションは非同期で実行されます。そのため、このコマンドは長時間実行オペレーションを表す オペレーション エンティティを返します。
done: false metadata: '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata apiVersion: v1 createTime: '2024-02-20T12:20:24.493106418Z' requestedCancellation: false target: MIGRATION_JOB_ID verb: demote-destination name: OPERATION_ID
オペレーションが成功したかどうかを確認するには、返されたオペレーション オブジェクトをクエリするか、移行ジョブのステータスを確認します。
-
gcloud database-migration migration-jobs describe
コマンドを使用して、移行ジョブのステータスを表示します。 - OPERATION_ID で
gcloud database-migration operations describe
を使用して、オペレーション自体のステータスを確認します。
移行ジョブの管理
この時点で、移行ジョブが構成され、移行先データベース インスタンスに接続されます。verify
、start
、stop
、restart
、resume
オペレーションを使用して管理できます。
移行ジョブを確認する
最初に、gcloud database-migration migration-jobs verify
コマンドを実行して移行ジョブを確認することをおすすめします。
後述のコマンドデータを使用する前に、次のように置き換えます。
- MIGRATION_JOB_ID は、移行ジョブ ID に置き換えます。
ID がわからない場合は、
gcloud database-migration migration-jobs list
コマンドを使用して、特定のリージョン内のすべての移行ジョブを一覧表示し、ID を表示できます。 - REGION は、接続プロファイルが保存されているリージョンの ID に置き換えます。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud database-migration migration-jobs \ verify MIGRATION_JOB_ID \ --region=REGION
Windows(PowerShell)
gcloud database-migration migration-jobs ` verify MIGRATION_JOB_ID ` --region=REGION
Windows(cmd.exe)
gcloud database-migration migration-jobs ^ verify MIGRATION_JOB_ID ^ --region=REGION
結果
アクションは非同期で実行されます。そのため、このコマンドは長時間実行オペレーションを表す オペレーション エンティティを返します。
done: false metadata: '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata apiVersion: v1 createTime: '2024-02-20T12:20:24.493106418Z' requestedCancellation: false target: MIGRATION_JOB_ID verb: verify name: OPERATION_ID
オペレーションが成功したかどうかを確認するには、返されたオペレーション オブジェクトをクエリするか、移行ジョブのステータスを確認します。
- MIGRATION_JOB_ID で
gcloud database-migration migration-jobs describe
コマンドを使用して、移行ジョブのステータスを表示します。 - オペレーション自体のステータスを確認するには、OPERATION_ID で
gcloud database-migration operations describe
コマンドを使用します。
移行ジョブを開始する
gcloud database-migration migration-jobs start
コマンドを実行して移行ジョブを開始します。
後述のコマンドデータを使用する前に、次のように置き換えます。
- MIGRATION_JOB_ID は、移行ジョブ ID に置き換えます。
ID がわからない場合は、
gcloud database-migration migration-jobs list
コマンドを使用して、特定のリージョン内のすべての移行ジョブを一覧表示し、ID を表示できます。 - REGION は、接続プロファイルが保存されているリージョンの ID に置き換えます。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud database-migration migration-jobs \ start MIGRATION_JOB_ID \ --region=REGION
Windows(PowerShell)
gcloud database-migration migration-jobs ` start MIGRATION_JOB_ID ` --region=REGION
Windows(cmd.exe)
gcloud database-migration migration-jobs ^ start MIGRATION_JOB_ID ^ --region=REGION
結果
アクションは非同期で実行されます。そのため、このコマンドは長時間実行オペレーションを表す オペレーション エンティティを返します。
done: false metadata: '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata apiVersion: v1 createTime: '2024-02-20T12:20:24.493106418Z' requestedCancellation: false target: MIGRATION_JOB_ID verb: start name: OPERATION_ID
オペレーションが成功したかどうかを確認するには、返されたオペレーション オブジェクトをクエリするか、移行ジョブのステータスを確認します。
- MIGRATION_JOB_ID で
gcloud database-migration migration-jobs describe
コマンドを使用して、移行ジョブのステータスを表示します。 - オペレーション自体のステータスを確認するには、OPERATION_ID で
gcloud database-migration operations describe
コマンドを使用します。
移行ジョブを昇格させる
移行が変更データ キャプチャ(CDC)フェーズに達したら、移行先データベース インスタンスを読み取りレプリカからスタンドアロン インスタンスに昇格できます。gcloud database-migration migration-jobs promote
コマンドを実行します。
後述のコマンドデータを使用する前に、次のように置き換えます。
- MIGRATION_JOB_ID は、移行ジョブ ID に置き換えます。
ID がわからない場合は、
gcloud database-migration migration-jobs list
コマンドを使用して、特定のリージョン内のすべての移行ジョブを一覧表示し、ID を表示できます。 - REGION は、接続プロファイルが保存されているリージョンの ID に置き換えます。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud database-migration migration-jobs \ promote MIGRATION_JOB_ID \ --region=REGION
Windows(PowerShell)
gcloud database-migration migration-jobs ` promote MIGRATION_JOB_ID ` --region=REGION
Windows(cmd.exe)
gcloud database-migration migration-jobs ^ promote MIGRATION_JOB_ID ^ --region=REGION
結果
アクションは非同期で実行されます。そのため、このコマンドは長時間実行オペレーションを表す オペレーション エンティティを返します。
done: false metadata: '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata apiVersion: v1 createTime: '2024-02-20T12:20:24.493106418Z' requestedCancellation: false target: MIGRATION_JOB_ID verb: start name: OPERATION_ID
- MIGRATION_JOB_ID で
gcloud database-migration migration-jobs describe
コマンドを使用して、移行ジョブのステータスを表示します。 - オペレーション自体のステータスを確認するには、OPERATION_ID で
gcloud database-migration operations describe
コマンドを使用します。