Visão geral
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:
- Como 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 de 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
Há algumas limitações que você precisa considerar ao migrar para uma instância de destino criada fora do Database Migration Service. Por exemplo, a instância de destino do Cloud SQL precisa estar vazia ou conter apenas dados de configuração do sistema. Para mais informações, consulte Limitações conhecidas.
O assistente do Database Migration Service ajuda você a criar um job de migração. Este assistente tem os seguintes painéis: Começar, 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 são fornecidas nas seções a seguir desta página.
Criar um job de migração usando o console Google Cloud
Definir configurações para o job de migração
Acesse Jobs de migração no console Google Cloud .
Clique em Criar job de migração na parte de cima da página.
Dê um nome ao job de migração. Escolha um nome amigável que ajude você 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 ID do job de migração gerado automaticamente.
Selecione o mecanismo do banco de dados de origem.
Selecione o mecanismo do banco de dados 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, não é possível mudar essa seleção.
Especifique o tipo de job de migração: Única (somente snapshot) ou Contínua (snapshot + mudanças em andamento).
Na seção Antes de continuar, revise os pré-requisitos, clique em Abrir para conferir instruções geradas automaticamente que podem ajudar você a preparar o banco de dados de origem para a migração. É melhor concluir esses pré-requisitos nessa etapa, mas é possível fazer isso a qualquer momento antes de testar ou iniciar o job de migração. Para mais informações, consulte Configurar sua origem.
Clique em Salvar e continuar.
Especificar informações sobre o perfil de conexão de origem
-
Se você criou um perfil de conexão, selecione-o na lista de perfis de conexão atuais.
Se você não tiver criado um perfil de conexão, crie um clicando em Criar um perfil de conexão na parte de baixo da lista suspensa. Depois siga as mesmas etapas de Criar um perfil de conexão de origem.
- 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): performance equilibrada com carga ideal no banco de dados de origem.
- Máximo: oferece as maiores velocidades de despejo, mas pode aumentar a 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 taxa de transferência de despejo mais lenta.
Se você quiser usar configurações ajustadas de paralelismo de despejo de dados, aumente os parâmetros
max_replication_slots
,max_wal_senders
emax_worker_processes
no 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.
Selecione a instância de destino
- No menu Tipo de instância de destino, selecione Instância atual.
- Na seção Selecionar instância de destino, escolha a instância de destino.
- Analise 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.
- Clique em Confirmar e continuar.
Configurar a conectividade entre as instâncias de banco de dados de origem e destino
- No menu 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 e peering de VPC.
- Se você selecionar o método de conectividade de rede da lista de permissões de IP, especifique 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.
Se você selecionar o método de conectividade de rede do túnel SSH reverso, escolha 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 de configuração do túnel entre os bancos de dados de origem e 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ê selecionar o método de conectividade de rede de peering de VPC, escolha 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 o método de conectividade de rede e fornecer as informações adicionais necessárias, clique em CONFIGURAR E CONTINUAR.
Configurar bancos de dados de migração
É possível selecionar 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 entre todos os 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 Recarregar. Se a descoberta de 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 depois.
- 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. 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.
Clique em TEST 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 privados ou públicos no destino são 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 que o teste falhe, 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 e iniciar o job de migração imediatamente ou em CRIAR JOB para criar o job de migração sem iniciá-lo imediatamente.
Atenção: se você usou o Terraform para provisionar o banco de dados de destino, pode haver desvio de configuração durante a execução do job de migração. Não tente reaplicar as configurações do Terraform antes da conclusão da migração. Para mais informações, consulte Desvio de configuração do Terraform.
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çar, sua organização vai receber uma cobrança 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 período curto 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 acessado diretamente.
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 do Google Cloud , porque o Database Migration Service cria e remove o 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, verifique se você:
- Crie a instância de banco de dados de destino.
- Prepare a instância do banco de dados de origem. Consulte:
- Configurar sua fonte
- 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
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. Você pode 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 com um identificador legível por máquina para seu perfil de conexão.REGION com o 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 para seu 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 postgresqlCONNECTION_PROFILE_ID \ --no-async \ --cloudsql-instance=DESTINATION_INSTANCE_ID \ --region=REGION \ --display-name=CONNECTION_PROFILE_NAME
Windows (PowerShell)
gcloud database-migration connection-profiles ` create postgresqlCONNECTION_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 postgresqlCONNECTION_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 profileCONNECTION_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. Você pode 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 com um nome legível para o job de migração. Esse valor é exibido no Database Migration Service no console 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 com um identificador legível por máquina do perfil de conexão de destino.Opcional: por padrão, o Database Migration Service migra todos os bancos de dados na sua origem. 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
É possível editar depois os jobs de migração criados com o
--database-filter flag
usando o comandogcloud database-migration migration-jobs update
.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud database-migration migration-jobs \ createMIGRATION_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 ` createMIGRATION_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 ^ createMIGRATION_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 jobMIGRATION_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 do banco de dados de destino.
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 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 \ demote-destinationMIGRATION_JOB_ID \ --region=REGION
Windows (PowerShell)
gcloud database-migration migration-jobs ` demote-destinationMIGRATION_JOB_ID ` --region=REGION
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ demote-destinationMIGRATION_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: 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:
- Use o comando
gcloud database-migration migration-jobs describe
para conferir o status do job de migração. - Use o
gcloud database-migration operations describe
com o OPERATION_ID para conferir o status da operaçã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. É possível gerenciar usando as seguintes operações:
Opcional: verifique o job de migração.
Recomendamos que você primeiro verifique seu 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 verify
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 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 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: 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:
- Use o comando
gcloud database-migration migration-jobs describe
comMIGRATION_JOB_ID para conferir o status do job de migração. - Use o comando
gcloud database-migration operations describe
com o OPERATION_ID para conferir o status da operaçã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-objects
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 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 \ 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á assim:
Waiting for migration job
MIGRATION_JOB_ID to fetch source objects withOPERATION_ID Waiting for operationOPERATION_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 saber 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 describe
comMIGRATION_JOB_ID para conferir o status do job de migração. - Use o comando
gcloud database-migration operations describe
com o OPERATION_ID para conferir o status da operaçã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 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 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 \ 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 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 saber 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 describe
comMIGRATION_JOB_ID para conferir o status do job de migração. - Use o comando
gcloud database-migration operations describe
com o OPERATION_ID para conferir o status da operação.
Promover o job de migração
Quando a migração atingir a 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 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 \ promoteMIGRATION_JOB_ID \ --region=REGION
Windows (PowerShell)
gcloud database-migration migration-jobs ` promoteMIGRATION_JOB_ID ` --region=REGION
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ promoteMIGRATION_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
- Use o comando
gcloud database-migration migration-jobs describe
comMIGRATION_JOB_ID para conferir o status do job de migração. - Use o comando
gcloud database-migration operations describe
com o OPERATION_ID para conferir o status da operação.