- O que é o Database Migration Service?
- Quais origens são compatíveis?
- Quais destinos são compatíveis?
- Há suporte para várias versões?
- Quais componentes de dados, esquema e metadados são migrados?
- Quais mudanças são replicadas durante a migração contínua?
- O que não é migrado?
- Quais métodos de rede são usados?
- Quais são as limitações conhecidas?
- O que é o Database Migration Service?
- O Database Migration Service é um serviço que facilita a migração de dados para o Google Cloud. O Database Migration Service ajuda a fazer uma migração lift-and-shift das suas cargas de trabalho do PostgreSQL para o Cloud SQL.
- Quais origens são compatíveis?
-
- Amazon RDS 9.6.10+, 10.5+, 11.1+, 12, 13, 14, 15, 16, 17 e 18.
- Amazon Aurora 10.11+, 11.6+, 12.4+, 13.3+, 14.6+, 15.2+, 16, 17 e 18.
- PostgreSQL 9.4, 9.5, 9.6, 10, 11, 12, 13, 14, 15, 16, 17 e 18 autogerenciado (no local ou em qualquer VM de nuvem totalmente controlada por você).
- Cloud SQL para PostgreSQL 9.6, 10, 11, 12, 13, 14, 15, 16, 17 e 18.
- Microsoft Azure Database para PostgreSQL Flexible Server: 11 ou posterior
- Quais destinos são compatíveis?
-
- Cloud SQL para PostgreSQL 9.6, 10, 11, 12, 13, 14, 15, 16, 17 e 18.
- Há suporte para várias versões?
- O Database Migration Service oferece suporte a migrações do PostgreSQL para o Cloud SQL em qualquer versão principal, em que o destino é a mesma versão ou uma versão mais recente que o banco de dados de origem.
- Quais componentes de dados, esquema e metadados são migrados?
- O Database Migration Service migra o esquema, os dados e os metadados da origem para o destino. Todos os componentes de dados, esquema e metadados a seguir são migrados como parte da migração do banco de dados:
Migração de dados
- Todos os esquemas e todas as tabelas do banco de dados selecionado.
- Nomenclatura
- Chave primária
- Tipo de dado
- Posição ordinal
- Valor padrão
- Nulidade
- Atributos de incremento automático
- Índices secundários
- Procedimentos armazenados
- Funções
- Gatilhos
- Visualizações
- Restrições de chave externa
- Quais mudanças são replicadas durante a migração contínua?
-
Apenas as mudanças de DML são atualizadas automaticamente durante a migração. O gerenciamento da DDL para que os bancos de dados de origem e destino permaneçam compatíveis é de responsabilidade do usuário e pode ser feito de duas maneiras:
- Interrompa as gravações na origem e execute os comandos DDL na origem e no destino. Antes de executar comandos DDL no destino, conceda o papel
cloudsqlexternalsyncao usuário do Cloud SQL que aplica as mudanças DDL. Para ativar consultas ou mudanças dos dados, conceda ocloudsqlexternalsyncpapel aos usuários relevantes do Cloud SQL. Use o
pglogical.replicate_ddl_commandpara executar a DDL na origem e no destino em um ponto consistente. O usuário que executa esse comando precisa ter o mesmo nome de usuário na origem e no destino e ser o superusuário ou o proprietário do artefato que está sendo migrado (por exemplo, a tabela, a sequência, a visualização ou o banco de dados).Confira alguns exemplos de como usar
pglogical.replicate_ddl_command.Para adicionar uma coluna a uma tabela de banco de dados, execute o seguinte comando:
select pglogical.replicate_ddl_command('ALTER TABLE [schema].[table] add column surname varchar(20)', '{default}');Para mudar o nome de uma tabela de banco de dados, execute o seguinte comando:
select pglogical.replicate_ddl_command('ALTER TABLE [schema].[table] RENAME TO [table_name]','{default}');Para criar uma tabela de banco de dados, execute os seguintes comandos:
select pglogical.replicate_ddl_command(command := 'CREATE TABLE [schema].[table] (id INTEGER PRIMARY KEY, name VARCHAR);', replication_sets := ARRAY['default'']);select pglogical.replication_set_add_table('default', '[schema].[table]');
- Interrompa as gravações na origem e execute os comandos DDL na origem e no destino. Antes de executar comandos DDL no destino, conceda o papel
- O que não é migrado?
-
Para adicionar usuários à instância de destino do Cloud SQL, acesse a instância e adicione usuários na guia Usuários ou adicione-os no cliente do PostgreSQL. Saiba mais sobre como criar e gerenciar usuários do PostgreSQL.
Não é possível replicar objetos grandes porque o recurso de decodificação lógica do PostgreSQL não oferece suporte à decodificação de mudanças em objetos grandes. Para tabelas que têm o tipo de coluna oid que referencia objetos grandes , as linhas ainda são sincronizadas e as novas linhas são replicadas. No entanto, tentar acessar o objeto grande no banco de dados de destino (ler usando lo_get, exportar usando lo_export, ou verificar o catálogo
pg_largeobjectpara o oid fornecido) falha com uma mensagem informando que o objeto grande não existe.Para tabelas sem chaves primárias, o Database Migration Service oferece suporte à migração de snapshots iniciais e instruções
INSERTdurante a fase de captura de dados alterados (CDC). Migre as instruçõesUPDATEeDELETEmanualmente.O Database Migration Service não migra dados de visualizações materializadas, apenas o esquema de visualização. Para preencher as visualizações, execute o seguinte comando:
REFRESH MATERIALIZED VIEW view_name.Os estados
SEQUENCE(por exemplo,last_value) no novo destino do Cloud SQL podem variar dos estadosSEQUENCEde origem. - Quais métodos de rede são usados?
- Para criar uma migração no Database Migration Service, a conectividade precisa ser estabelecida entre a origem e a instância de destino do Cloud SQL. Há vários métodos com suporte.
Escolha o que funciona melhor para a carga de trabalho específica.
Método de rede Descrição Prós Contras Lista de permissões de IP Funciona configurando o servidor de banco de dados de origem para aceitar conexões do IP público de a instância do Cloud SQL. Se você escolher esse método, o Database Migration Service vai orientar você no processo de configuração durante a criação da migração. - Fácil de configurar.
- Recomendado para cenários de migração de curta duração (POC ou migrações de banco de dados pequenos).
- A configuração do firewall pode exigir assistência de TI.
- Expõe o banco de dados de origem a um IP público.
- A conexão não é criptografada por padrão. Exige a ativação do SSL no banco de dados de origem para criptografar a conexão.
Túnel SSH reverso por VM hospedada na nuvem Estabelece a conectividade do destino para a origem por um túnel SSH reverso seguro. Exige uma VM de Bastion Host no Google Cloud projeto e uma máquina (por exemplo, um laptop na rede) que tenha conectividade com a origem. O Database Migration Service coleta as informações necessárias no momento da criação da migração e gera automaticamente o script para configuração. - Fácil de configurar.
- Não exige nenhuma configuração de firewall personalizada.
- Recomendado para cenários de migração de curta duração (POC ou migrações de banco de dados pequenos).
- Você é o proprietário e gerencia a VM bastion.
- Pode gerar custos adicionais.
Peering de VPC Esse método funciona configurando as VPCs para se comunicarem entre si. Isso só é aplicável se a origem e o destino estiverem hospedados no Google Cloud. Recomendado para migrações de longa duração ou de alto volume. - Google Cloud solução.
- Fácil de configurar.
- Alta largura de banda
Disponível apenas quando a origem está hospedada no Google Cloud. VPN Configura um túnel VPN IPSec que conecta a rede interna e Google Cloud a VPC por uma conexão segura na Internet pública. Use Google Cloud aVPN ou qualquer solução de VPN que esteja configurada para a rede interna. - Solução de conectividade robusta e escalonável.
- Largura de banda média-alta.
- Segurança integrada.
- Oferecido comosoluções ou de outros terceiros. Google Cloud
- Custo adicional.
- Configuração não trivial (a menos que já esteja em vigor).
Cloud Interconnect Usa uma conexão de alta disponibilidade e baixa latência entre a rede local e Google Cloud. Maior largura de banda, ideal para migrações de alto volume de longa duração. - Custo adicional.
- A conexão não é segura por padrão.
- Configuração não trivial (a menos que já esteja em vigor).
- Quais são as limitações conhecidas?
- Consulte Limitações conhecidas.