このページでは、Google Cloud CLI を使用して Cloud SQL for SQL Server ソースの移行ジョブを作成する方法について説明します。Database Migration Service を使用して Cloud SQL for SQL Server インスタンス間で移行する方法については、 Cloud SQL for SQL Server ソースの移行ガイドをご覧ください。
始める前に
- 次の要件を満たしていることを確認してください。
- SQL Server バックアップ ファイル用の Cloud Storage バケットがある。
- ソース インスタンスのソース接続プロファイルがある。
- 移行先の Cloud SQL for SQL Server インスタンスを作成して構成し、インスタンスの移行先接続プロファイルを作成している。
- Google Cloud コンソールのプロジェクト セレクタ ページで、 Google Cloud プロジェクトを選択または 作成します。
- Database Migration Service、Compute Engine、Cloud Storage、Cloud SQL Admin API を有効にします。
必要なロール
Database Migration Service で移行ジョブを作成するために必要な権限を取得するには、プロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。
-
データベース移行管理者(
roles/datamigration.admin) -
ストレージ管理者(
roles/storage.admin) -
Cloud SQL 編集者(
roles/cloudsql.editor)
ロールの付与の詳細については、 アクセス権の管理をご覧ください。
これらの事前定義ロールには、Database Migration Service を使用して同種の SQL Server 移行を実行するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
Database Migration Service を使用して SQL Server の同種移行を行うには、次の権限が必要です。
datamigration.*resourcemanager.projects.getresourcemanager.projects.listcloudsql.instances.createcloudsql.instances.getcloudsql.instances.listcloudsql.databases.getcloudsql.databases.deletecloudsql.operations.getcompute.machineTypes.listcompute.machineTypes.getcompute.projects.getstorage.buckets.createstorage.buckets.liststorage.objects.list
カスタムロールや他の 事前定義ロールを使用して、これらの権限を取得することもできます。
設定を定義して移行ジョブを作成する
gcloud
このサンプルでは、オプションの --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 は、宛先接続プロファイルの機械で読み取り可能な識別子に置き換えます。
- DESTINATION_PROJECT_ID は、移行先の Cloud SQL for SQL Server インスタンスがある Google Cloud プロジェクト ID に置き換えます。これは、Database Migration Service API が有効になっていて、移行ジョブを作成するプロジェクトと同じである必要があります。
- COMMA_SEPARATED_DATABASE_ID_LIST は、バックアップ ファイルから移行する SQL Server のデータベース 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 \ --sqlserver-databases=COMMA_SEPARATED_DATABASE_ID_LIST \ --project=DESTINATION_PROJECT_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 ` --sqlserver-databases=COMMA_SEPARATED_DATABASE_ID_LIST ` --project=DESTINATION_PROJECT_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 ^ --sqlserver-databases=COMMA_SEPARATED_DATABASE_ID_LIST ^ --project=DESTINATION_PROJECT_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 が必要なすべての移行元エンティティと移行先エンティティにアクセスできるかどうかを確認します。
- 移行ジョブを開始して、移行先インスタンスへのデータの移動を開始します。