Criar um job de migração para uma origem do Cloud SQL para SQL Server

Nesta página, descrevemos como criar um job de migração para origens do Cloud SQL para SQL Server com a Google Cloud CLI. Para mais informações sobre como migrar entre instâncias do Cloud SQL para SQL Server com o Database Migration Service, consulte Guia de migração para origens do Cloud SQL para SQL Server.

Antes de começar

  1. Verifique se você atende aos seguintes requisitos:
    • Você tem um bucket do Cloud Storage para arquivos de backup do SQL Server.
    • Você tem um perfil de conexão de origem para sua instância de origem.
    • Você criou e configurou a instância de destino do Cloud SQL para SQL Server e tem um perfil de conexão de destino para ela.
  2. No console do Google Cloud , na página do seletor de projetos, selecione ou crie um projeto do Google Cloud .

    Acessar o seletor de projetos

  3. Ative as APIs Database Migration Service, Compute Engine, Cloud Storage e API Cloud SQL Admin.

    Ativar as APIs

Funções exigidas

Para receber as permissões necessárias para criar jobs de migração no Database Migration Service, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:

Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Esses papéis predefinidos contêm as permissões necessárias para realizar migrações homogêneas do SQL Server com o Database Migration Service. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As permissões a seguir são necessárias para realizar migrações homogêneas do SQL Server com o Database Migration Service:

  • datamigration.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • cloudsql.instances.create
  • cloudsql.instances.get
  • cloudsql.instances.list
  • cloudsql.databases.get
  • cloudsql.databases.delete
  • cloudsql.operations.get
  • compute.machineTypes.list
  • compute.machineTypes.get
  • compute.projects.get
  • storage.buckets.create
  • storage.buckets.list
  • storage.objects.list

Essas permissões também podem ser concedidas com papéis personalizados ou outros papéis predefinidos.

Definir configurações e criar um job de migração

gcloud

Este exemplo usa a flag opcional --no-async para que todas as operações sejam realizadas de forma síncrona. Isso significa que alguns comandos podem levar um tempo para serem concluídos. É possível pular a flag --no-async para executar comandos de forma assíncrona. Se fizer isso, use o comando gcloud database-migration operations describe para verificar se a operação foi bem-sucedida.

Antes de usar os dados do comando abaixo, faça estas substituições:

  • MIGRATION_JOB_ID por um identificador legível por máquina para o job de migração. Use esse valor para trabalhar com jobs de migração usando os comandos da CLI do Google Cloud ou a API do Database Migration Service.
  • REGION pelo identificador da região em que você quer salvar o job de migração.
  • MIGRATION_JOB_NAME por um nome legível por humanos para o job de migração. Esse valor é exibido no Database Migration Service no console do Google Cloud .
  • SOURCE_CONNECTION_PROFILE_ID por um identificador legível por máquina do perfil de conexão de origem.
  • DESTINATION_CONNECTION_PROFILE_ID pelo identificador legível por máquina do perfil de conexão de destino.
  • DESTINATION_PROJECT_ID pelo identificador do projeto do Google Cloud em que você tem a instância de destino do Cloud SQL para SQL Server. Esse precisa ser o mesmo projeto em que a API Database Migration Service está ativada e em que você cria o job de migração.
  • COMMA_SEPARATED_DATABASE_ID_LIST por uma lista separada por vírgulas de identificadores de banco de dados do SQL Server que você quer migrar dos arquivos de backup.

Execute o seguinte comando:

Linux, macOS ou 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

Você receberá uma resposta semelhante a esta:

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]
Resultado

O job de migração foi criado. Você pode prosseguir com o processo de migração:

A seguir