Migrar dados de e para um cluster com TDE

Selecione uma versão da documentação:

Este guia descreve como migrar dados entre clusters habilitados para criptografia transparente de dados (TDE) e não criptografados usando pg_dump e pg_restore.

As duas direções de migração (TDE para não criptografado e vice-versa) são compatíveis e usam ferramentas de backup lógico padrão do PostgreSQL.

A migração lógica usando pg_dump decodifica os dados criptografados em tempo real na origem e os despeja como instruções SQL não criptografadas. Ao restaurar os dados, o cluster de destino grava os dados de acordo com as próprias configurações de criptografia. O cluster de destino criptografa os dados se a TDE estiver ativada e os grava como texto simples se a TDE estiver desativada.

Antes de começar

Migrar um banco de dados habilitado para TDE para um banco de dados desativado para TDE

  1. Despeje o banco de dados do servidor de banco de dados habilitado para TDE em um arquivo no host.

    Docker

    docker exec -i TDE_CONTAINER_NAME pg_dump -U postgres -d DATABASE_NAME > /tmp/decrypted_dump.sql
    

    Podman

    podman exec -i TDE_CONTAINER_NAME pg_dump -U postgres -d DATABASE_NAME > /tmp/decrypted_dump.sql
    
  2. Inicie um servidor AlloyDB Omni desativado para TDE seguindo as instruções em Instalar o AlloyDB Omni usando o Docker.

  3. Restaure o arquivo dump para o servidor de banco de dados não criptografado.

    Docker

    docker exec -i NON_TDE_CONTAINER_NAME psql -U postgres -c "CREATE DATABASE DATABASE_NAME"
    docker exec -i NON_TDE_CONTAINER_NAME psql -U postgres -d DATABASE_NAME < /tmp/decrypted_dump.sql
    

    Podman

    podman exec -i NON_TDE_CONTAINER_NAME psql -U postgres -c "CREATE DATABASE DATABASE_NAME"
    podman exec -i NON_TDE_CONTAINER_NAME psql -U postgres -d DATABASE_NAME < /tmp/decrypted_dump.sql
    

Migrar um banco de dados desativado para TDE para um banco de dados habilitado para TDE

  1. Use pg_dump para despejar o banco de dados do servidor de banco de dados não criptografado.

    Docker

    docker exec -i NON_TDE_CONTAINER_NAME pg_dump -U postgres -d DATABASE_NAME > /tmp/src_plaintext_dump.sql
    

    Podman

    podman exec -i NON_TDE_CONTAINER_NAME pg_dump -U postgres -d DATABASE_NAME > /tmp/src_plaintext_dump.sql
    
  2. Inicie um servidor AlloyDB Omni habilitado para TDE seguindo as instruções em Criar um cluster habilitado para TDE.

  3. Restaure para o servidor de banco de dados habilitado para TDE. Os dados são criptografados de forma transparente à medida que são gravados.

    Docker

    docker exec -i TDE_CONTAINER_NAME psql -U postgres -c "CREATE DATABASE DATABASE_NAME"
    docker exec -i TDE_CONTAINER_NAME psql -U postgres -d DATABASE_NAME < /tmp/src_plaintext_dump.sql
    

    Podman

    podman exec -i TDE_CONTAINER_NAME psql -U postgres -c "CREATE DATABASE DATABASE_NAME"
    podman exec -i TDE_CONTAINER_NAME psql -U postgres -d DATABASE_NAME < /tmp/src_plaintext_dump.sql
    

A seguir