Criar um job de migração para uma instância de destino atual

O Database Migration Service usa jobs de migração para migrar dados da instância de banco de dados de origem para a de destino. A criação de um job de migração para uma instância de destino atual inclui:

  • Definir configurações para o job de migração
  • Selecionar o perfil de conexão do banco de dados de origem
  • Selecionar a instância do banco de dados de destino
  • Rebaixar a instância atual para convertê-la em uma réplica de leitura
  • Configurar a conectividade entre as instâncias de banco de dados de origem e destino
  • Testar o job de migração para garantir que as informações de conexão fornecidas para o job sejam válidas.

Antes de começar

Antes de criar um job de migração para uma instância de banco de dados de destino, verifique se você:

  1. Verifique se esse tipo de migração é compatível com seu cenário. Por exemplo, quando você quer migrar para um banco de dados criado fora do Database Migration Service, a instância de destino do Cloud SQL precisa estar vazia ou conter apenas dados de configuração do sistema. Para mais detalhes, consulte Limitações conhecidas.
  2. Crie os recursos necessários, configure o banco de dados de origem e estabeleça a conectividade de rede. A criação de um job de migração é uma das etapas do processo de migração completo. Recomendamos que você siga o tutorial de migração detalhado e retorne a este procedimento quando chegar à etapa do job de migração. Consulte Migrar para uma instância atual.

Criar um job de migração com o console Google Cloud

Quando você migra para uma instância atual com o console do Google Cloud , o Database Migration Service gerencia automaticamente o perfil de conexão de destino para você. Para criar um job de migração para uma instância atual com o console do Google Cloud , faça o seguinte:

Definir configurações para o job de migração

  1. No console do Google Cloud , acesse a página Jobs de migração.

    Acessar Jobs de migração

  2. Clique em Criar job de migração.

    A página do assistente de configuração do job de migração é aberta. Esse assistente contém vários painéis que orientam você em cada etapa da configuração.

    É possível pausar a criação de um job de migração a qualquer momento clicando em SALVAR E SAIR. Todos os dados inseridos até esse ponto são salvos em um rascunho de job de migração. Você pode concluir o rascunho do job de migração depois.

  3. Na página Começar, insira as seguintes informações:
    1. Nome do job de migração

      Este é um nome legível por humanos para o job de migração. Esse valor é exibido no console do Google Cloud .

    2. ID da tarefa de migração

      É um identificador legível por máquina do seu 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.

    3. Na lista Mecanismo de banco de dados de origem, selecione MySQL.

      O campo Mecanismo do banco de dados de destino é preenchido automaticamente e não pode ser alterado.

    4. Selecione a região em que você salvou o job de migração.

      O Database Migration Service é um produto totalmente regional, o que significa que todas as entidades relacionadas à migração (perfis de conexão de origem e destino, jobs de migração, bancos de dados de destino) precisam ser salvas em uma única região. Selecione a região com base na localização dos serviços que precisam dos seus dados, como instâncias do Compute Engine ou apps do App Engine, entre outros serviços. Depois de escolher a região de destino, essa seleção não poderá ser alterada.

  4. Clique em Salvar e continuar.

Especificar informações sobre o perfil de conexão de origem

Na página Definir uma origem, siga estas etapas:

  1. No menu suspenso Perfil de conexão de origem, selecione o perfil de conexão do banco de dados de origem.
  2. Na seção Personalizar a configuração de despejo completo, clique em Editar configuração.
  3. No painel Editar configuração de despejo completo, no menu suspenso Método de despejo completo, selecione uma das seguintes opções:
    • Baseado em arquivo físico: selecione essa opção se quiser usar o utilitário Percona XtraBackup para fornecer seu próprio arquivo de backup. Essa abordagem requer mais etapas de preparação. Para ver o guia completo sobre como usar arquivos de backup físico gerados pelo Percona XtraBackup, consulte Migrar seus bancos de dados usando um arquivo físico do Percona XtraBackup.
    • Baseado em lógica: selecione essa opção se quiser usar um arquivo de backup lógico criado pelo utilitário mysqldump. O Database Migration Service pode gerar automaticamente esse arquivo de backup para você, ou você pode fornecer sua própria cópia.
  4. Edite as outras configurações de despejo. Faça uma destas ações:
    • Se você usar o arquivo de backup físico, em Fornecer sua pasta, clique em Procurar e selecione a pasta em que você fez upload do arquivo dump completo. Selecione a pasta dedicada que contém o arquivo de backup completo, e não o bucket de armazenamento.
    • Se você usar um arquivo de backup lógico, configure o paralelismo de despejo de dados ou as flags de despejo.

      Abra esta seção para ver as etapas completas do arquivo de backup lógico

      Na seção Escolha como gerar o arquivo dump, use uma das seguintes opções:

      1. Gerada automaticamente (recomendado)

        Essa opção é recomendada porque o Database Migration Service sempre gera um arquivo dump do banco de dados inicial depois que o job de migração é criado e iniciado.

        O Database Migration Service usa esse arquivo para reproduzir as definições de objeto originais e os dados de tabela do banco de dados de origem para que essas informações possam ser migradas para uma instância de banco de dados de destino do Cloud SQL.

        Se você usar o despejo gerado automaticamente, selecione o tipo de operação que o Database Migration Service deve realizar na seção Configurar operação de despejo de dados:

        • Paralelismo de despejo de dados: use uma opção de paralelismo de alto desempenho, disponível ao migrar para as versões 5.7 ou 8 do MySQL.

          A velocidade do paralelismo de dados está relacionada à quantidade de carga induzida no banco de dados de origem:

          • Ideal (recomendado): desempenho equilibrado com carga ideal no banco de dados de origem.
          • Máximo: fornece as velocidades de despejo mais altas, mas pode causar um aumento da carga no banco de dados de origem.
          • Mínimo: usa a menor quantidade de recursos de computação no banco de dados de origem, mas pode ter uma capacidade de despejo mais lenta.
        • Flags de despejo: essa opção é exclusiva com Paralelismo de despejo de dados. Use essa configuração para definir diretamente as sinalizações do utilitário mysqldump usado para criar o arquivo dump.

          Para adicionar uma sinalização:

          1. Clique em ADICIONAR FLAG.
          2. Selecione uma das seguintes sinalizações:

            • add-locks: Essa flag envolve cada tabela contida no arquivo dump com as instruções LOCK TABLES e UNLOCK TABLES. Isso resulta em inserções mais rápidas quando o arquivo dump é carregado na instância de destino.
            • ignore-error: Use esta flag para inserir uma lista de números de erro separados por vírgulas. Esses números representam os erros que o utilitário mysqldump vai ignorar.
            • max-allowed-packet: Use esta flag para definir o tamanho máximo do buffer para comunicação entre o cliente MySQL e o banco de dados MySQL de origem. O tamanho padrão do buffer é de 24 MB, e o tamanho máximo é de 1 GB.
          3. Clique em CONCLUÍDO.
          4. Repita essas etapas para cada flag que você quiser adicionar.

          Para remover uma sinalização, clique no ícone de lixeira à direita da linha que contém a sinalização.

      2. Fornecer a sua

        Essa opção não é recomendada porque, por padrão, o Database Migration Service realiza um despejo inicial como parte da execução do job de migração.

        Se você quiser usar seu próprio arquivo dump, selecione Fornecer o próprio, clique em PROCURAR, selecione o arquivo (ou a pasta inteira do Cloud Storage se você usar vários arquivos) e clique em SELECIONAR.

        Verifique se o despejo foi gerado nas últimas 24 horas e se obedece aos requisitos de despejo.

  5. Clique em Salvar e continuar.

Selecione a instância de destino do Cloud SQL

  1. No menu Tipo de instância de destino, selecione Instância atual.
  2. Na seção Selecionar instância de destino, escolha a instância de destino.
  3. Revise as informações na seção Detalhes da instância e clique em Selecionar e continuar.

    Para migrar para um banco de dados de destino, o Database Migration Service rebaixa a instância de destino e a converte em uma réplica. Para indicar que a remoção pode ser feita com segurança, na janela de confirmação, insira o identificador da instância de destino.

  4. Clique em Confirmar e continuar.

Configurar a conectividade entre as instâncias de banco de dados de origem e destino

No menu suspenso Método de conectividade, selecione um método de conectividade de rede. Esse método define como a instância do Cloud SQL recém-criada se conectará ao banco de dados de origem. Os métodos atuais de conectividade de rede incluem lista de permissões de IP, túnel SSH reverso, interfaces do Private Service Connect e peering de VPC

Se você quiser usar…Faça o seguinte:
O método de conectividade de rede da lista de permissões de IP, É preciso especificar o endereço IP de saída da instância de destino. Se a instância do Cloud SQL criada for de alta disponibilidade, inclua os endereços IP de saída das instâncias primária e secundária.
O método de conectividade de rede do túnel SSH reverso. Selecione a instância de VM do Compute Engine que vai hospedar o túnel.

Depois de especificar a instância, o Google vai fornecer um script que executa as etapas para configurar o túnel entre os bancos de dados de origem e de destino. Você precisará executar o script na Google Cloud CLI.

Execute os comandos em uma máquina que tenha conectividade com o banco de dados de origem e com o Google Cloud.

O método de conectividade de interfaces do Private Service Connect, O Database Migration Service estabelece automaticamente as conexões necessárias. Esse método de conectividade só está disponível se você tiver a instância habilitada para o Private Service Connect com um anexo de rede. Para mais informações sobre as interfaces do Private Service Connect, consulte Conexões de saída do Private Service Connect na documentação do Cloud SQL.
O método de conectividade de rede de peering de VPC, Selecione a rede VPC em que o banco de dados de origem está localizado. A instância do Cloud SQL será atualizada para se conectar a essa rede.

Depois de selecionar e configurar a conectividade de rede, clique em Configurar e continuar.

Configurar bancos de dados de migração

É possível migrar todos os bancos de dados da instância de origem ou escolher apenas alguns. A instância de destino não pode conter bancos de dados com o mesmo nome dos bancos de dados escolhidos para migração. Se o Database Migration Service encontrar uma colisão de nomes de banco de dados, o banco de dados ofensivo será descartado no destino antes da migração.

  1. Na lista Bancos de dados a serem migrados, selecione uma das seguintes opções:
    • Todos os bancos de dados: seleciona todos os bancos de dados que existem na origem.
    • Bancos de dados específicos: permite selecionar bancos de dados específicos de todos os bancos de dados que existem na origem.
  2. Se quiser migrar bancos de dados específicos, filtre a lista que aparece e selecione os bancos de dados que você quer que o Database Migration Service migre para o destino.

    Se a lista não aparecer e um erro de descoberta de banco de dados for exibido, clique em Atualizar. Se a descoberta do banco de dados falhar, o job vai migrar todos os bancos de dados. Você pode continuar criando um job de migração e corrigir os erros de conectividade mais tarde.

  3. Clique em Salvar e continuar.

Testar, criar e executar o job de migração

Nesta etapa final, revise o resumo das configurações do job de migração, da origem, do destino e do método de conectividade. Em seguida, teste a validade da configuração do job de migração. Se houver problemas, modifique as configurações do job de migração. Nem todas as configurações podem ser editadas.

  1. Na página Testar e criar job de migração, clique em Testar job.

    Se o teste falhar, você pode resolver o problema na parte do fluxo destinada a isso e refazer o teste. Para informações sobre como resolver problemas em um teste de job de migração com falha, consulte Diagnosticar problemas do MySQL

  2. Quando o teste do job de migração terminar, clique em Criar e iniciar job para criar o job de migração e iniciá-lo imediatamente ou clique em Criar job para criar o job de migração sem iniciá-lo imediatamente.

    Se o job não for iniciado no momento da criação, ele poderá ser iniciado na página Jobs de migração clicando em INICIAR. Independente de quando o job de migração começa, sua organização é cobrada pela existência da instância de destino.

    A migração está em andamento. Quando você inicia o job de migração, o Database Migration Service começa o despejo completo, bloqueando brevemente o banco de dados de origem. Se a origem estiver no Amazon RDS ou no Amazon Aurora, o Database Migration Service também vai exigir um curto período de inatividade na gravação (aproximadamente menos de um minuto) no início da migração. Para mais informações, consulte Limitações conhecidas.

  3. Acesse Revisar o job de migração.

Criar um job de migração usando a Google Cloud CLI

Ao migrar para uma instância atual usando a Google Cloud CLI, é necessário criar manualmente o perfil de conexão para a instância de destino. Isso não é necessário ao usar o console Google Cloud , porque o Database Migration Service cria e remove o perfil de conexão de destino para você.

Criar perfil de conexão de destino

Execute o comando gcloud database-migration connection-profiles create para criar o perfil de conexão de destino da sua instância de destino atual:

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 você 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:

  • CONNECTION_PROFILE_ID por um identificador legível por máquina para seu perfil de conexão.
  • REGION pelo identificador da região em que você quer salvar o perfil de conexão.
  • DESTINATION_INSTANCE_ID com o identificador da instância de destino.
  • (Opcional) CONNECTION_PROFILE_NAME com um nome legível por humanos para o perfil de conexão. Esse valor é exibido no console Google Cloud .

Execute o seguinte comando:

Linux, macOS ou Cloud Shell

gcloud database-migration connection-profiles \
create mysql CONNECTION_PROFILE_ID \
  --no-async \
  --cloudsql-instance=DESTINATION_INSTANCE_ID \
  --region=REGION \
  --display-name=CONNECTION_PROFILE_NAME

Windows (PowerShell)

gcloud database-migration connection-profiles `
create mysql CONNECTION_PROFILE_ID `
  --no-async `
  --cloudsql-instance=DESTINATION_INSTANCE_ID `
  --region=REGION `
  --display-name=CONNECTION_PROFILE_NAME

Windows (cmd.exe)

gcloud database-migration connection-profiles ^
create mysql CONNECTION_PROFILE_ID ^
  --no-async ^
  --cloudsql-instance=DESTINATION_INSTANCE_ID ^
  --region=REGION ^
  --display-name=CONNECTION_PROFILE_NAME

Você receberá uma resposta semelhante a esta:

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]

Criar o job de migração

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 você 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 com um identificador legível por máquina para seu job de migração. Você usa esse valor para trabalhar com jobs de migração usando comandos da CLI do Google Cloud ou a API do Database Migration Service.
  • REGION com o 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 com 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.
  • Opcional: o Database Migration Service migra todos os bancos de dados na origem por padrão. Se você quiser migrar apenas bancos de dados específicos, use a flag --databases-filter e especifique os identificadores como uma lista separada por vírgulas.

    Por exemplo: --databases-filter=my-business-database,my-other-database

    Depois, é possível editar os jobs de migração criados com a flag --databases-filter usando o comando gcloud database-migration migration-jobs update.

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 \
  --type= \

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= `

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= ^

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]

Rebaixar o banco de dados de destino

O Database Migration Service exige que a instância de banco de dados de destino funcione como uma réplica de leitura durante a migração. Antes de iniciar o job de migração, execute o comando gcloud database-migration migration-jobs demote-destination para rebaixar a instância de banco de dados de destino.

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

  • MIGRATION_JOB_ID pelo identificador do job de migração.

    Se você não souber o identificador, use o comando gcloud database-migration migration-jobs list para listar todos os jobs de migração em uma determinada região e conferir os identificadores deles.

  • REGION com o identificador da região em que o perfil de conexão está salvo.

Execute o seguinte comando:

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

Resultado

A ação é realizada de forma assíncrona. Assim, esse comando retorna uma entidade Operation que representa uma operação de longa duração:

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

Para saber se a operação foi bem-sucedida, consulte o objeto de operação retornado ou verifique o status do job de migração:

Gerenciar jobs de migração

Neste ponto, o job de migração está configurado e conectado à instância do banco de dados de destino. Para gerenciar,use as operações verify, start, stop, restart e resume.

Verificar o job de migração

Recomendamos que você primeiro verifique o job de migração executando o comando gcloud database-migration migration-jobs verify.

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

  • MIGRATION_JOB_ID pelo identificador do job de migração.

    Se você não souber o identificador, use o comando gcloud database-migration migration-jobs list para listar todos os jobs de migração em uma determinada região e ver os identificadores deles.

  • REGION com o identificador da região em que o perfil de conexão está salvo.

Execute o seguinte comando:

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

Resultado

A ação é realizada de maneira assíncrona. Assim, esse comando retorna uma entidade Operation que representa uma operação de longa duração:

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

Para saber se a operação foi bem-sucedida, consulte o objeto de operação retornado ou verifique o status do job de migração:

Iniciar o job de migração

Inicie o job de migração executando o comando gcloud database-migration migration-jobs start.

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

  • MIGRATION_JOB_ID com o identificador do job de migração.

    Se você não souber o identificador, use o comando gcloud database-migration migration-jobs list para listar todos os jobs de migração em uma determinada região e conferir os identificadores deles.

  • REGION pelo identificador da região em que o perfil de conexão está salvo.

Execute o seguinte comando:

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

Resultado

A ação é realizada de maneira assíncrona. Assim, esse comando retorna uma entidade de operação que representa uma operação de longa duração:

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

Para saber se a operação foi bem-sucedida, consulte o objeto de operação retornado ou verifique o status do job de migração:

Promover o job de migração

Quando a migração chegar à fase de captura de dados alterados (CDC), será possível promover a instância do banco de dados de destino de uma réplica de leitura para uma instância independente. Execute o comando gcloud database-migration migration-jobs promote:

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

  • MIGRATION_JOB_ID com o identificador do job de migração.

    Se você não souber o identificador, use o comando gcloud database-migration migration-jobs list para listar todos os jobs de migração em uma determinada região e conferir os identificadores deles.

  • REGION pelo identificador da região em que o perfil de conexão está salvo.

Execute o seguinte comando:

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

Resultado

A ação é realizada de forma assíncrona. Assim, esse comando retorna uma entidade de operação que representa uma operação de longa duração:

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
Para ver se a operação foi bem-sucedida, consulte o objeto de operação retornado ou verifique o status do job de migração: