Quando você migra para uma instância de destino atual, o Database Migration Service rebaixa a instância de destino para configurá-la como uma réplica externa em migrações padrão. O rebaixamento de uma instância não coloca o Cloud SQL para PostgreSQL no modo somente leitura, mas a execução de determinadas operações durante o processo de migração pode resultar em erros de migração. Ao migrar para uma instância de destino existente, tenha em mente as seguintes considerações operacionais:
- Rebaixamento de instância:para migrações padrão, o Database Migration Service rebaixa a instância de destino para configurá-la como uma réplica do banco de dados de origem. As migrações de início rápido não exigem nem realizam o rebaixamento da instância de destino.
- Evite operações de gravação na migração de dados:não realize operações de gravação
(como
INSERT,UPDATE,DELETEou alterações de esquema DDL) na instância de destino em tabelas ou bancos de dados incluídos na migração. Essas operações podem levar a conflitos de replicação com dados provenientes da origem. - Gerenciar usuários do banco de dados:é possível criar e gerenciar usuários do banco de dados
a qualquer momento usando comandos padrão do
psqlou pelo Cloud SQL no console do Google Cloud . Para mais informações, consulte Gerenciar usuários na documentação do Cloud SQL. - Backups e réplicas de leitura:os backups automatizados e a recuperação pontual (PITR, na sigla em inglês) são suspensos durante a replicação contínua, e não é possível criar réplicas de leitura do Cloud SQL na instância de destino até que o job de migração seja promovido.
Para mais informações, consulte Limitações conhecidas para instâncias atuais.
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
- Definir as configurações de origem e selecionar os bancos de dados a serem migrados
- Como selecionar a instância do banco de dados de destino atual
- Rebaixar a instância atual para configurá-la como uma réplica do banco de dados de origem (somente migrações padrão)
- 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ê:
- 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.
Crie a instância do banco de dados de destino. Consulte Criar uma instância na documentação do Cloud SQL.
- Prepare a instância do banco de dados de origem. Consulte as seguintes páginas:
Para criar um job de migração para uma instância de destino atual, faça o seguinte:
Console
Definir configurações para o job de migração
- No console do Google Cloud , acesse a página Jobs de migração.
- 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. É possível concluir o rascunho do job de migração mais tarde.
- Na página Começar, insira as seguintes informações:
- 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 .
- ID da tarefa de migração
Este é um identificador legível por máquina para 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.
- Na lista Mecanismo de banco de dados de origem, selecione
PostgreSQL.
O campo Mecanismo do banco de dados de destino é preenchido automaticamente e não pode ser alterado.
- 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.
- Especifique o tipo de serviço de migração: Único (somente snapshot) ou Contínuo (snapshot + mudanças contínuas).
- Nome do job de migração
- 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:
- No menu suspenso Perfil de conexão de origem, selecione o perfil de conexão do banco de dados 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 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.
Se você escolher 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. - Clique em Salvar e continuar.
Selecione a instância de destino do Cloud SQL
- No menu Tipo de instância de destino, selecione Instância atual.
- Na seção Selecionar instância de destino, selecione a instância de destino.
-
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 em migrações padrão, o Database Migration Service rebaixa a instância de destino e a configura como uma réplica. Para indicar que o rebaixamento pode ser realizado 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 suspenso Método de conectividade, selecione um método de conectividade de rede. Esse método define como a instância de destino do Cloud SQL vai 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 de 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 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. |
| 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 uma instância de destino com o Private Service Connect ativado e 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 bancos de dados específicos. 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 nome de banco de dados, o banco de dados ofensivo será descartado no destino antes da migração.
- 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, 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 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.
-
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 PostgreSQL.
-
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. Independentemente de quando o job de migração começar, sua organização será 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 e a replicação iniciais. Para mais informações, consulte Limitações conhecidas.
- Prossiga para Revisar o job de migração.
CLI do Google Cloud
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ê.
Crie o perfil de conexão de destino.
Crie o perfil de conexão de destino para sua instância de destino atual executando o comandogcloud database-migration connection-profiles create(clique no link para expandir):gcloud database-migration connection-profiles create postgresqlEste exemplo usa a flag opcional
--no-asyncpara 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-asyncpara executar comandos de forma assíncrona. Se você fizer isso, use o comandogcloud database-migration operations describepara verificar se a operação foi bem-sucedida.Antes de usar os dados do comando abaixo, faça estas substituições:
- DEST_CONN_ID pelo identificador do perfil de conexão de destino.
- REGION pela região em que você quer salvar o perfil de conexão. Essa região precisa ser a mesma da instância de destino.
- DEST_INSTANCE pelo ID da instância de destino do Cloud SQL pré-criada.
- DEST_USER pelo nome do usuário de migração no banco de dados de destino.
- DEST_PASSWORD pela senha do usuário de migração no banco de dados de destino.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID \ --region=REGION \ --cloudsql-instance=DEST_INSTANCE \ --username=DEST_USER \ --password=DEST_PASSWORD \ --role=DESTINATION \ --no-async
Windows (PowerShell)
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID ` --region=REGION ` --cloudsql-instance=DEST_INSTANCE ` --username=DEST_USER ` --password=DEST_PASSWORD ` --role=DESTINATION ` --no-async
Windows (cmd.exe)
gcloud database-migration connection-profiles create postgresql DEST_CONN_ID ^ --region=REGION ^ --cloudsql-instance=DEST_INSTANCE ^ --username=DEST_USER ^ --password=DEST_PASSWORD ^ --role=DESTINATION ^ --no-async
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]
Crie o job de migração.
Os exemplos a seguir representam um cenário de migração em que você usa a conectividade de IP privado entre os bancos de dados de origem e de destino. Se você usar um tipo de conectividade diferente (por exemplo, peering de VPC ou um túnel SSH reverso), adicione as flags necessárias, como--peer-vpc, ou--vm,--vm-ip,--vm-port,--vpc. Para mais informações, consulte Configurar conectividade e Exemplos da Google Cloud CLI.
Execute o seguinte comando (clique no link para expandir):gcloud database-migration migration-jobs createEste exemplo usa a flag opcional
--no-asyncpara 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-asyncpara executar comandos de forma assíncrona. Se você fizer isso, use o comandogcloud database-migration operations describepara 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. Para mais informações, consulte Criar um 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]
Rebaixe o banco de dados de destino.
Para migrações padrão, o Database Migration Service exige que você rebaixe a instância de banco de dados de destino existente para configurá-la como uma réplica externa antes de iniciar o job de migração. Execute o comandogcloud database-migration migration-jobs demote-destination(clique no link para expandir):gcloud database-migration migration-jobs demote-destinationAntes 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.
- MIGRATION_JOB_ID pelo
identificador do job de migração.
Opcional: verifique o job 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 operaçõesverify,start,stop,restarteresume. Recomendamos que você primeiro verifique o job de migração executando o comandogcloud database-migration migration-jobs verify(clique no link para expandir):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.
Inicie o job de migração.
Inicie o job de migração executando o comandogcloud database-migration migration-jobs start(clique no link para expandir):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.
Promova 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 para uma instância independente. Execute o comandogcloud database-migration migration-jobs promote(clique no link para expandir):gcloud database-migration migration-jobs promoteAntes 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.
- MIGRATION_JOB_ID pelo
identificador do job de migração.