Migra datos hacia y desde un clúster habilitado para TDE

Selecciona una versión de la documentación:

En esta guía, se describe cómo migrar datos entre clústeres habilitados para la encriptación de datos transparente (TDE) y clústeres no encriptados con pg_dump y pg_restore.

Se admiten ambas direcciones de migración (de TDE a no encriptado y viceversa) y se usan herramientas de copia de seguridad lógica de PostgreSQL estándar.

La migración lógica con pg_dump decodifica los datos encriptados sobre la marcha en la fuente y los vuelca como sentencias de SQL no encriptadas. Cuando restableces los datos, el clúster de destino los escribe según su propia configuración de encriptación. El clúster de destino encripta los datos si TDE está habilitado y los escribe como texto sin formato si TDE está inhabilitado.

Antes de comenzar

Migra una base de datos habilitada para TDE a una base de datos inhabilitada para TDE

  1. Vuelca la base de datos del servidor de base de datos habilitado para TDE a un archivo en el 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. Para iniciar un servidor de AlloyDB Omni inhabilitado para TDE, sigue las instrucciones que se indican en Instala AlloyDB Omni con Docker.

  3. Restablece el archivo de volcado en el servidor de base de datos no encriptado.

    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
    

Migra una base de datos inhabilitada para TDE a una base de datos habilitada para TDE

  1. Usa pg_dump para volcar la base de datos del servidor de base de datos no encriptado.

    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. Para iniciar un servidor de AlloyDB Omni habilitado para TDE, sigue las instrucciones que se indican en Crea un clúster habilitado para TDE.

  3. Restablece el servidor de base de datos habilitado para TDE. Los datos se encriptan de forma transparente a medida que se escriben.

    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
    

¿Qué sigue?