Quando você cria a instância de destino com o Database Migration Service, ela não é rebaixada e não é executada 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 nova instância de destino, lembre-se das seguintes considerações operacionais:
- 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.
A criação de um job de migração inclui:
- Definir as configurações do job de migração.
- Definir as configurações de origem e selecionar os bancos de dados a serem migrados.
- Definir configurações para a instância de destino do banco de dados do Cloud SQL e criar a instância.
- 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.
Para criar um job de migração para uma nova instância de destino, 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 de banco de dados de destino é preenchido automaticamente com Cloud SQL para PostgreSQL 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 à sua 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 ou Contínuo.
- Revise os pré-requisitos gerados para seu ambiente. Verifique se o banco de dados de origem está configurado corretamente. Para mais informações, consulte Configurar o banco de dados de origem.
- 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 (ou clique em Criar um perfil de conexão, consulte Criar um perfil de conexão de origem).
- Na seção Personalizar as configurações de paralelismo,
clique em Mostrar as configurações de paralelismo.
A velocidade do paralelismo de despejo de dados está relacionada à quantidade de carga induzida 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ê escolher configurações de paralelismo ajustadas, aumente os parâmetros
max_replication_slots,max_wal_sendersemax_worker_processesno banco de dados de origem. Para verificar a configuração, execute o teste do job de migração ao final da criação dele. - Clique em Salvar e continuar.
Configurar e criar a instância de destino do Cloud SQL
- Na página Definir um destino, no menu suspenso Tipo de instância de destino, selecione Nova instância. Defina todas
as configurações relevantes:
- No campo ID da instância de destino, forneça um identificador
para a instância do Cloud SQL ou use o identificador gerado automaticamente.
Não inclua informações sensíveis ou de identificação pessoal no identificador. Não é necessário incluir o ID do projeto no nome da instância. Isso é feito automaticamente quando necessário, como nos arquivos de registros.
- No campo Senha, forneça uma senha alfanumérica para
a instância de destino do Cloud SQL. Esta é a senha da conta de administrador
postgresna instância.Insira a senha manualmente ou clique em Gerar para que o Database Migration Service crie uma automaticamente.
- No menu suspenso Versão do banco de dados,
escolha a versão do banco de dados para a instância de destino.
Saiba mais sobre o suporte à migração entre versões.
- Selecione a edição do Cloud SQL para PostgreSQL da instância de destino.
Há duas opções disponíveis: Cloud SQL para PostgreSQL Enterprise e Cloud SQL para PostgreSQL Enterprise Plus.
As edições do Cloud SQL para PostgreSQL vêm com diferentes conjuntos de recursos, tipos de máquina disponíveis e preços. Consulte a documentação do Cloud SQL para escolher a edição adequada às suas necessidades. Para mais informações, consulte Introdução às edições do Cloud SQL para PostgreSQL.
- O menu Região mostra a mesma região que você selecionou na página
Começar.
Se você estiver configurando a instância para alta disponibilidade, selecione Várias zonas (altamente disponível). É possível selecionar as zonas primária e secundária. As condições a seguir se aplicam quando a zona secundária é usada durante a criação da instância:
- As zonas padrão são Qualquer para a zona primária e Qualquer (diferente da primária) para a zona secundária.
- Se as zonas primária e secundária forem especificadas, elas precisarão ser zonas diferentes.
- Na seção Conexões, escolha se quer adicionar
um endereço IP público ou privado à instância de destino.
É possível configurar a instância para ter os dois tipos de endereços IP, mas pelo menos um tipo é necessário para a migração.
Selecione uma destas opções:
- Se você quiser migrar usando o peering de VPC
ou um túnel SSH reverso, selecione IP privado.
Para ativar a conectividade de IP privado, verifique se você atende a todos os requisitos de rede adicionais.
Abra esta seção para ver todos os requisitos de IP particular.
- A API Service Networking está ativada. É possível ativar a API Service Networking usando o console do Google Cloud .
- Você tem a permissão do IAM
servicenetworking.services.addPeering. - Você configurou o acesso a serviços particulares para seu projeto, para o qual é necessário ter o papel do IAM
compute.networkAdmin. - Há pelo menos uma rede VPC não legada no projeto ou uma rede /vpc/docs/shared-vpc.
- Se você estiver usando uma rede VPC compartilhada, também será necessário fazer o seguinte:
- Ativar a API Service Networking no projeto host
- Adicionar o usuário ao projeto host
- Conceda ao usuário o papel compute.networkAdmin do IAM no projeto host.
- Selecione a rede VPC associada para fazer peering. Se você planeja se conectar à origem da migração usando o peering de VPC, escolha a VPC em que a instância está localizada.
- Se uma rede de serviço gerenciado nunca tiver sido configurada para a VPC selecionada, você poderá selecionar um intervalo de IP e clicar em Conectar ou usar um intervalo de IP selecionado automaticamente e clicar em Alocar e conectar.
- Se você quiser migrar pela Internet usando uma lista de permissões de IP,
selecione
IP público.
Se quiser, em IP público, clique no campo Redes autorizadas e autorize uma rede ou um proxy a se conectar à instância do Cloud SQL. As redes são autorizadas apenas com os endereços que você fornecer. Consulte Configurar IP público na documentação do Cloud SQL.
Você vai configurar a conectividade do job de migração em uma etapa posterior. Para saber mais sobre os métodos de rede disponíveis, consulte Configurar conectividade.
- Se você quiser migrar usando o peering de VPC
ou um túnel SSH reverso, selecione IP privado.
- No campo ID da instância de destino, forneça um identificador
para a instância do Cloud SQL ou use o identificador gerado automaticamente.
- Selecione o tipo de máquina para a instância do Cloud SQL. Saiba mais sobre os tipos de máquina do PostgreSQL.
- Para o Cloud SQL para PostgreSQL Enterprise Plus: marque a caixa de seleção Ativar cache de dados
se quiser usar o recurso de cache de dados no banco de dados de destino.
O cache de dados é um recurso opcional disponível para instâncias da edição Cloud SQL para PostgreSQL Enterprise Plus que adiciona uma unidade de estado sólido local de alta velocidade ao banco de dados de destino. Esse recurso pode gerar custos adicionais para o Cloud SQL. Para mais informações sobre o cache de dados, consulte Visão geral do cache de dados na documentação do Cloud SQL.
- Especifica o tipo de armazenamento da instância do Cloud SQL. É possível escolher uma unidade de estado sólido (SSD) ou uma unidade de disco rígido (HDD).
- Especifique a capacidade de armazenamento (em GB) da instância do Cloud SQL.
Verifique se a instância tem capacidade de armazenamento suficiente para processar os dados do banco de dados de origem. É possível aumentar essa capacidade a qualquer momento, mas não é possível diminuí-la.
(Opcional) Configure as opções de criptografia de dados ou os rótulos de recursos para a instância de destino.
Abra esta seção para ver as etapas opcionais.
Clique em Mostrar configurações opcionais e, em seguida:
Especifique se você quer gerenciar a criptografia dos dados migrados da origem para o destino. Por padrão, seus dados são criptografados com uma chave gerenciada pelo Google Cloud. Se você quiser gerenciar a criptografia, use uma chave de criptografia gerenciada pelo cliente (CMEK). Para fazer isso, siga estas etapas:
- Marque a caixa de seleção Usar uma chave de criptografia gerenciada pelo cliente (CMEK).
- No menu Selecionar uma chave gerenciada pelo cliente, selecione sua CMEK.
Se você não encontrar sua chave, clique em Inserir nome do recurso da chave para fornecer o nome do recurso da chave que você quer usar. Exemplo de nome de recurso de chave:
projects/my-project-name/locations/my-location/keyRings/my-keyring/cryptoKeys/my-key.- Adicione as flags necessárias para serem aplicadas ao servidor de banco de dados. Se possível, verifique se as flags de banco de dados na instância de destino do Cloud SQL criada são as mesmas do banco de dados de origem. Saiba mais sobre as flags de banco de dados compatíveis com o PostgreSQL.
- Adicione os
rótulos específicos da instância do Cloud SQL.
Os rótulos ajudam a organizar as instâncias. Por exemplo, é possível organizar rótulos por centro de custos ou por ambiente. Os rótulos também são incluídos na fatura para que você confira a distribuição de custos entre eles.
- Clique em Criar destino e continuar. O Database Migration Service está criando sua instância de destino do Cloud SQL. Esse processo pode levar vários minutos.
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 recém-criada do Cloud SQL vai se conectar ao banco de dados de origem. Os métodos atuais de conectividade de rede para migrar para uma nova instância incluem lista de permissões de IP, túnel SSH reverso 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 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 que compartilhem o nome com os 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 inicial e a replicação. Para mais informações, consulte Limitações conhecidas.
- Prossiga para Revisar o job de migração.
CLI do Google Cloud
Crie o perfil de conexão de destino.
Ao migrar para uma nova instância de destino com a Google Cloud CLI, você cria a instância de destino e o perfil de conexão em uma única ação.
Execute o seguinte comando (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.
Se você usar o peering de VPC ou uma conectividade de 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]