Visão geral da migração

Para mover bancos de dados para dentro ou fora do AlloyDB para PostgreSQL, é possível migrar instâncias ativas do PostgreSQL com tempo de inatividade mínimo usando o Database Migration Service ou importar e exportar arquivos CSV, DMP e SQL armazenados no Cloud Storage.

Importando dados

É possível migrar dados para o AlloyDB usando dois métodos:

Importar dados arquivados de arquivos

O AlloyDB permite importar dados de arquivos localizados em um bucket do Cloud Storage. O AlloyDB é compatível com vários formatos de arquivo para importação de dados, incluindo:

  • CSV, com o conteúdo de uma tabela por arquivo, carregado usando psql.

  • DMP, um arquivo binário de um banco de dados PostgreSQL inteiro, importado usando pg_restore.

  • SQL, uma reconstrução em texto simples de um banco de dados PostgreSQL, processada com psql.

Migrar uma instância ativa com o Database Migration Service

Como alternativa à importação manual de arquivos dump de dados, use o Database Migration Service para AlloyDB. Esse serviço permite migrar todo o conteúdo de uma instância ativa do PostgreSQL, incluindo todos os bancos de dados e metadados, para um novo cluster do AlloyDB. O Database Migration Service pode ajudar você a fazer a transição dos aplicativos atuais para usar o AlloyDB como o novo repositório de dados com o mínimo de inatividade.

Locais compatíveis com dados importados

O AlloyDB é compatível com as seguintes localidades:

  • O conjunto completo de localidades fornecidas pela ICU.
  • Um conjunto limitado de localidades fornecidas por libc:
    • C.UTF-8
    • en_US.utf8

Se o banco de dados que você quer importar para o AlloyDB tiver como padrão uma localidade libc diferente das duas listadas aqui, ainda será possível importar seus dados, mas esse padrão não será transferido. Para garantir que as consultas SQL que usam ORDER BY classifiquem os resultados corretamente, talvez seja necessário seguir outras etapas depois de importar os dados.

O Google recomenda permitir que o novo banco de dados use a localidade padrão do AlloyDB: C.UTF-8, fornecida por libc. Em seguida, associe regras de ordenação a todas as colunas que as consultas do aplicativo possam envolver em cláusulas ORDER BY, nomeando uma regra de ordenação apropriada baseada em ICU para cada uma. Para isso, use consultas DDL do ALTER TABLE, como as seguintes:

ALTER TABLE TABLE_NAME
    ALTER COLUMN COLUMN_NAME
    SET DATA TYPE COLUMN_DATA_TYPE
    COLLATE "COLLATION_NAME";

Substitua:

  • TABLE_NAME: o nome da tabela que contém a coluna.
  • COLUMN_NAME: o nome da coluna a ser atualizada.
  • COLUMN_DATA_TYPE: o tipo de dados da coluna.
  • COLLATION_NAME: o nome da ordenação baseada em ICU a ser aplicada.

Um novo cluster do AlloyDB define centenas de agrupamentos com base em localidades fornecidas pela ICU, e é possível adicionar mais usando o recurso CREATE COLLATION do PostgreSQL. Para ver a lista completa de nomes de agrupamento com base em ICU definidos em um cluster do AlloyDB, execute a seguinte consulta em qualquer uma das instâncias:

SELECT collname FROM pg_collation WHERE collprovider = 'i';

Além das ordenações baseadas em ICU, o AlloyDB é compatível com a ordenação integrada do PostgreSQL chamada ucs_basic. Essa ordenação usa a ordem padrão de pontos de código Unicode para permitir uma classificação especialmente eficiente. O Google recomenda o uso com colunas em que a ordem de classificação adequada corresponda à da lista de pontos de código Unicode.

Exportação de dados

É possível usar utilitários de linha de comando para exportar os dados do AlloyDB para arquivos armazenados em um bucket do Cloud Storage, em vários formatos:

  • CSV, exportando uma tabela por arquivo, usando psql.

  • DMP, usando pg_dump para criar um arquivo binário portátil de todo o banco de dados.

  • SQL, usando pg_dump para criar uma lista de instruções DDL e SQL para reconstruir o banco de dados.

A seguir