- O que é o Database Migration Service?
- Que origens são suportadas?
- Que destinos são suportados?
- Existe compatibilidade entre versões?
- Que componentes de dados, esquema e metadados são migrados?
- Que alterações são replicadas durante a migração contínua?
- O que não é migrado?
- Que 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 dos seus dados para o Google Cloud. O serviço de migração de base de dados ajuda a mover as suas cargas de trabalho do PostgreSQL para o Cloud SQL.
- Que fontes são suportadas?
-
- Amazon RDS 9.6.10+, 10.5+, 11.1+, 12, 13, 14, 15, 16 e 17.
- Amazon Aurora 10.11+, 11.6+, 12.4+, 13.3+, 14.6+, 15.2+, 16 e 17.
- PostgreSQL autogerido (no local ou em qualquer VM na nuvem que controla totalmente) 9.4, 9.5, 9.6, 10, 11, 12, 13, 14, 15, 16 e 17.
- Cloud SQL para PostgreSQL 9.6, 10, 11, 12, 13, 14, 15, 16 e 17.
- Microsoft Azure Database for PostgreSQL Flexible Server: 11 ou superior
- Que destinos são suportados?
-
- Cloud SQL para PostgreSQL 9.6, 10, 11, 12, 13, 14, 15, 16 e 17.
- Existe suporte entre versões?
- O serviço de migração de base de dados suporta 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 superior à da base de dados de origem.
- Que componentes de dados, esquema e metadados são migrados?
- O serviço de migração de bases de dados migra o esquema, os dados e os metadados da origem para o destino. Todos os seguintes componentes de dados, esquema e metadados são migrados como parte da migração da base de dados:
Migração de dados
- Todos os esquemas e todas as tabelas da base de dados selecionada.
- Atribuição de nomes
- Chave principal
- Tipo de dados
- Posição ordinal
- Valor predefinido
- Condição de nulidade
- Atributos de incremento automático
- Índices secundários
- Procedimentos armazenados
- Funções
- Acionadores
- Visualizações
- Restrições de chaves externas
- Que alterações são replicadas durante a migração contínua?
-
Apenas as alterações de DML são atualizadas automaticamente durante a migração. A gestão da DDL para que as bases de dados de origem e de destino permaneçam compatíveis é da responsabilidade do utilizador e pode ser alcançada de duas formas:
- Pare as escritas na origem e execute os comandos DDL na origem e no destino. Antes de executar comandos DDL no destino, conceda a função
cloudsqlexternalsync
ao utilizador do Cloud SQL que aplica as alterações DDL. Para ativar a consulta ou a alteração dos dados, conceda a funçãocloudsqlexternalsync
aos utilizadores relevantes do Cloud SQL. Use o comando
pglogical.replicate_ddl_command
para executar DDL na origem e no destino num ponto consistente. O utilizador que executa este comando tem de ter o mesmo nome de utilizador na origem e no destino, e deve ser o superutilizador ou o proprietário do artefacto que está a ser migrado (por exemplo, a tabela, a sequência, a vista ou a base de dados).Seguem-se alguns exemplos de utilização do ícone
pglogical.replicate_ddl_command
.Para adicionar uma coluna a uma tabela da base de dados, execute o seguinte comando:
select pglogical.replicate_ddl_command('ALTER TABLE [schema].[table] add column surname varchar(20)', '{default}');
Para alterar o nome de uma tabela da base 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 base 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]');
- Pare as escritas na origem e execute os comandos DDL na origem e no destino. Antes de executar comandos DDL no destino, conceda a função
- O que não é migrado?
-
Para adicionar utilizadores à instância de destino do Cloud SQL, navegue até à instância e adicione utilizadores a partir do separador Utilizadores ou adicione-os a partir do cliente PostgreSQL. Saiba mais sobre como criar e gerir utilizadores do PostgreSQL.
Não é possível replicar objetos grandes porque a funcionalidade de descodificação lógica do PostgreSQL não suporta a descodificação de alterações a objetos grandes. Para tabelas que tenham um oid do tipo de coluna que faça referência a objetos grandes, as linhas continuam a ser sincronizadas e as novas linhas são replicadas. No entanto, tentar aceder ao objeto grande na base de dados de destino (ler através de lo_get, exportar através de lo_export ou verificar o catálogo
pg_largeobject
para o oid fornecido) falha com uma mensagem a indicar que o objeto grande não existe.Para tabelas que não têm chaves principais, o Database Migration Service suporta a migração da imagem instantânea inicial e das declarações
INSERT
durante a fase de captura de dados de alterações (CDC). Deve migrar as declaraçõesUPDATE
eDELETE
manualmente.O Database Migration Service não migra dados de vistas materializadas, apenas o esquema de vistas. Para preencher as vistas, execute o seguinte comando:
REFRESH MATERIALIZED VIEW view_name
.Os estados
SEQUENCE
(por exemplo,last_value
) no novo destino do Cloud SQL podem variar em relação aos estadosSEQUENCE
de origem. - Que métodos de rede são usados?
- Para criar uma migração no serviço de migração de base de dados, tem de estabelecer a conetividade
entre a origem e a instância de destino do Cloud SQL. São suportados vários métodos.
Escolha o que funciona melhor para a carga de trabalho específica.
Método de rede Descrição Vantagens Desvantagens Lista de autorizações de IPs Funciona configurando o servidor da base de dados de origem para aceitar ligações do IP público da instância do Cloud SQL. Se escolher este método, o serviço de migração de bases de dados oferece-lhe instruções passo a passo durante o 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 bases de dados pequenas).
- A configuração da firewall pode exigir assistência do departamento de TI.
- Expõe a base de dados de origem a um IP público.
- A ligação não está encriptada por predefinição. Requer a ativação do SSL na base de dados de origem para encriptar a ligação.
Túnel SSH inverso através de uma VM alojada na nuvem Estabelece a conetividade do destino à origem através de um túnel SSH inverso seguro. Requer uma VM de anfitrião de bastião no Google Cloud projeto e uma máquina (por exemplo, um portátil na rede) que tenha conetividade à origem. O serviço de migração de bases de dados recolhe as informações necessárias no momento da criação da migração e gera automaticamente o script para a configuração. - Fácil de configurar.
- Não requer nenhuma configuração personalizada da firewall.
- Recomendado para cenários de migração de curta duração (POC ou migrações de bases de dados pequenas).
- É proprietário e faz a gestão da VM bastion.
- Pode incorrer em custos adicionais.
Intercâmbio de VPCs Este método funciona configurando as VPCs para comunicarem entre si. Isto só é aplicável se a origem e o destino estiverem alojados em Google Cloud. Recomendado para migrações de longa duração ou de grande volume. - Google Cloud solução.
- Fácil de configurar.
- Banda larga
Disponível apenas quando a origem está alojada em Google Cloud. VPN Configura um canal da VPN IPSec que liga a rede interna e a VPC através de uma ligação segura através da Internet pública. Google Cloud Use Google Cloud uma VPN ou qualquer solução de VPN que esteja configurada para a rede interna. - Solução de conetividade robusta e escalável.
- Largura de banda média-alta.
- Segurança integrada.
- Oferecidos como Google Cloud soluções ou de outros terceiros.
- Custo adicional.
- Configuração não trivial (a menos que já esteja implementada).
Cloud Interconnect Usa uma ligação de baixa latência e elevada disponibilidade entre a rede no local e Google Cloud. Largura de banda mais elevada, ideal para migrações de grande volume de longa duração. - Custo adicional.
- A ligação não é segura por predefinição.
- Configuração não trivial (a menos que já esteja implementada).
- Quais são as limitações conhecidas?
- Consulte as limitações conhecidas.