Visão geral
O Database Migration Service usa jobs 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
- Como selecionar a instância do banco de dados de destino atual
- 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.
É preciso considerar algumas limitações ao migrar para uma instância de destino criada fora do Database Migration Service. Para mais informações, consulte Limitações conhecidas.
O assistente do Database Migration Service ajuda você a criar um job de migração. Esse assistente consiste nos seguintes painéis: Primeiros passos, Definir uma origem, Criar um destino, Definir método de conectividade, Configurar bancos de dados de migração e Testar e criar job de migração. As informações sobre como preencher cada painel estão disponíveis nas seções a seguir desta página.
Criar um job de migração usando o console do Google Cloud
Definir configurações para o job de migração
Acesse Jobs de migração no console do Google Cloud .
Clique em Criar job de migração na parte de cima da página.
Dê um nome para o job de migração. Escolha um nome fácil que ajude a identificar o job de migração. Não inclua informações sensíveis ou de identificação pessoal no nome do job.
Mantenha o código da tarefa de migração gerado automaticamente.
Selecione o mecanismo de banco de dados de origem.
Selecione AlloyDB para PostgreSQL como o mecanismo de destino.
Selecione a região de destino da migração. Essa região precisa ser a mesma em que o banco de dados de destino está localizado. Depois de escolher a região de destino, essa seleção não poderá ser alterada.
Escolha Contínuo (snapshot + alterações em andamento) como o tipo de serviço de migração.
Na seção Antes de continuar, revise os pré-requisitos, clique em Abrir para ver as instruções geradas automaticamente que podem ajudar você a preparar o banco de dados de origem para a migração. É recomendável concluir esses pré-requisitos nessa etapa, mas é possível concluí-los a qualquer momento antes de testar ou iniciar o job de migração. Para mais informações, consulte Configurar a origem.
Clique em Salvar e continuar.
Especificar informações sobre o perfil de conexão de origem
-
Se você tiver criado um perfil de conexão, selecione-o na lista de perfis de conexão.
Se você ainda não criou um perfil de conexão, clique em Criar um perfil de conexão na parte de baixo da lista suspensa e siga as mesmas etapas de Criar um perfil de conexão de origem.
Recomendamos criar um perfil de conexão designado para sua migração do AlloyDB.
- Na seção Personalizar configurações de despejo de dados,
clique em Mostrar configurações de despejo de dados.
A velocidade do paralelismo de despejo de dados está relacionada à quantidade de carga no banco de dados de origem. Você pode usar as seguintes configurações:
- 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.
Se você quiser usar as configurações ajustadas de paralelismo de despejo de dados, aumente os parâmetros
max_replication_slots,max_wal_sendersemax_worker_processesno banco de dados de origem. Para verificar sua configuração, execute o teste do job de migração ao final da criação do job. - Clique em Salvar e continuar.
Selecionar a instância de destino
- No menu Tipo de cluster de destino, selecione Cluster atual.
- Na seção Selecionar cluster de destino, selecione o cluster de destino.
- Revise as informações sobre o cluster 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 o rebaixamento pode ser realizado com segurança, insira o identificador da instância de destino na janela de confirmação.
- 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 o cluster do AlloyDB recém-criado vai se conectar ao banco de dados de origem. Os métodos atuais de conectividade de rede incluem lista de permissões de IP, peering de VPC, interfaces do Private Service Connect, túnel SSH reverso e proxy TCP por uma VM hospedada na nuvem.
- Se você selecionar o método de conectividade de rede da lista de permissões de IP, será necessário especificar o endereço IP de saída da instância de destino. Copie os endereços IP de saída das instâncias principal e secundária e use-os para configurar o firewall de rede do servidor de banco de dados de origem e no arquivo
pg_hba.conf, para que a origem possa aceitar conexões desses endereços. Se você selecionar o método de conectividade de rede de 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.
- Se você usar um dos métodos de conectividade de IP particular, selecione Peering de VPC ou Interface do PSC.
- Se você selecionar 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.
Se você selecionar o método de conectividade de proxy TCP usando VM hospedada na nuvem, insira os detalhes necessários para a nova instância de VM do Compute Engine que vai hospedar o proxy TCP.
Depois de especificar os detalhes, o console do Google Cloud vai fornecer um script que executa as etapas para configurar o proxy entre os bancos de dados de origem e de destino. Você precisará executar o script em uma máquina com uma Google Cloud CLI atualizada.
Depois de executar o script, ele vai gerar o IP privado da VM recém-criada. Insira o IP e clique em Configurar e continuar.
- Depois de selecionar o método de conectividade de rede e fornecer as informações adicionais para o método, clique em CONFIGURAR E CONTINUAR.
Configurar bancos de dados de migração
Selecione os bancos de dados que você quer migrar.
- 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.
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.
- Clique em Salvar e continuar.
Testar e criar 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 e 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 são editáveis.
Clique em TESTAR JOB para verificar se:
- O banco de dados de origem foi configurado corretamente, com base nos pré-requisitos.
- As instâncias de origem e destino podem se comunicar entre si.
- Todas as atualizações necessárias nos endereços IP particulares no destino foram feitas.
- O job de migração é válido, e as versões de origem e destino são compatíveis.
Se o teste falhar, você pode resolver o problema na parte do fluxo destinada a isso e refazer o teste.
O job de migração pode ser criado mesmo se o teste falhar, mas, depois que o job for iniciado, ele poderá falhar em algum momento durante a execução.
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.
Independentemente de quando o job de migração começar, sua organização será cobrada pela existência da instância de destino.
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 Considerações sobre o paralelismo de despejo de dados.
O job de migração é adicionado à lista de jobs de migração e pode ser visualizado diretamente.
Prossiga para Analisar 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 do Google Cloud , já que o Database Migration Service cuida da criação e remoção do perfil de conexão de destino para você.
Antes de começar
Antes de usar a CLI gcloud para criar um job de migração para uma instância de banco de dados de destino, faça o seguinte:
- Crie a instância do banco de dados de destino.
- Prepare a instância do banco de dados de origem. Consulte:
- Configurar sua origem
- Crie o perfil de conexão de origem (o identificador do perfil de conexão de origem é necessário para criar um job de migração).
- Configurar a conectividade
Criar perfil de conexão de destino
Crie o perfil de conexão de destino para sua instância de destino atual
executando o comando
gcloud database-migration connection-profiles create:
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 pelo 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 do Google Cloud .
Execute o seguinte comando:
Linux, macOS ou 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
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 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.
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-filtere especifique os identificadores como uma lista separada por vírgulas.Por exemplo:
--databases-filter=my-business-database,my-other-databaseDepois, é possível editar os jobs de migração criados com a flag
--databases-filterusando o comandogcloud 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=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 ^
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 do 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 do 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 listpara 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 \ 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 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: demote-destination 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:
- Use o comando
gcloud database-migration migration-jobs describepara conferir o status do job de migração. - Use o
gcloud database-migration operations describecom o OPERATION_ID para ver o status da operação em si.
Gerenciar jobs de migração
Neste ponto, o job de migração está configurado e conectado à instância do banco de dados de destino. É possível gerenciá-lo usando as seguintes operações:
Opcional: verifique o job de migração.
Recomendamos que você verifique primeiro o job de migração executando o comandogcloud database-migration migration-jobs verify.Para mais informações, abra a seção a seguir:
gcloud database-migration migration-jobs verifyAntes 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 listpara 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 \ 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 ver se a operação foi bem-sucedida, consulte o objeto de operação retornado ou verifique o status do job de migração:
- Use o comando
gcloud database-migration migration-jobs describecom o MIGRATION_JOB_ID para conferir o status do job de migração. - Use o comando
gcloud database-migration operations describecom o OPERATION_ID para ver o status da operação em si.
- MIGRATION_JOB_ID pelo
identificador do job de migração.
Opcional: recupere informações sobre os bancos de dados selecionados para migração.
Ao migrar bancos de dados específicos, o Database Migration Service precisa recuperar os detalhes sobre os bancos de dados selecionados para o job de migração usando a flag--database-filter.Antes de iniciar o job de migração, execute o comando
gcloud database-migration migration-jobs fetch-source-objects.Para mais informações, abra a seção a seguir:
gcloud database-migration migration-jobs fetch-source-objectsAntes 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 listpara 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 \ fetch-source-objects MIGRATION_JOB_ID \ --region=REGION
Windows (PowerShell)
gcloud database-migration migration-jobs ` fetch-source-objects MIGRATION_JOB_ID ` --region=REGION
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ fetch-source-objects MIGRATION_JOB_ID ^ --region=REGION
Resultado
O resultado será o seguinte:
Waiting for migration job MIGRATION_JOB_ID to fetch source objects with OPERATION_ID Waiting for operation OPERATION_ID to complete...done. SOURCE_OBJECT STATE PHASE ERROR {'database': 'DATABASE_NAME', 'type': 'DATABASE'} NOT_SELECTED PHASE_UNSPECIFIED {'database': 'DATABASE_NAME', 'type': 'DATABASE'} STOPPED CDC {'code': 1, 'message': 'Internal error'}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:
- Use o comando
gcloud database-migration migration-jobs describecom o MIGRATION_JOB_ID para conferir o status do job de migração. - Use o comando
gcloud database-migration operations describecom o OPERATION_ID para ver o status da operação em si.
- MIGRATION_JOB_ID pelo
identificador do job de migração.
Inicie o job de migração.
Inicie o job de migração executando o comandogcloud database-migration migration-jobs start.Para mais informações, abra a seção a seguir:
gcloud database-migration migration-jobs startAntes 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 listpara 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 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: 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:
- Use o comando
gcloud database-migration migration-jobs describecom o MIGRATION_JOB_ID para conferir o status do job de migração. - Use o comando
gcloud database-migration operations describecom o OPERATION_ID para ver o status da operação em si.
- MIGRATION_JOB_ID pelo
identificador 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 pelo
identificador do job de migração.
Se você não souber o identificador, use o comando
gcloud database-migration migration-jobs listpara 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 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: 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:
- Use o comando
gcloud database-migration migration-jobs describecom o MIGRATION_JOB_ID para conferir o status do job de migração. - Use o comando
gcloud database-migration operations describecom o OPERATION_ID para ver o status da operação em si.