このページでは、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 : 移行ジョブを保存するリージョンの識別子。
- 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 これは、Database Migration Service API が有効になっていて、移行ジョブを作成するプロジェクトと同じである必要があります。
- COMMA_SEPARATED_DATABASE_ID_LIST バックアップ ファイルから移行する SQL Server のデータベース識別子のカンマ区切りリスト。
次のコマンドを実行します。
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 が必要なすべてのソース エンティティと移行先エンティティに到達できるかどうかを確認します。
- 移行ジョブを開始して、データの移行先インスタンスへの移動を開始します。