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
- Verifica que hayas instalado AlloyDB Omni. Para obtener más información, consulta Instala AlloyDB Omni con contenedores.
- Si realizas la migración a un servidor de base de datos habilitado para TDE, verifica que hayas configurado tu proveedor de administración de claves. Para obtener más información, consulta Crea un clúster habilitado para TDE.
Migra una base de datos habilitada para TDE a una base de datos inhabilitada para TDE
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.sqlPodman
podman exec -i TDE_CONTAINER_NAME pg_dump -U postgres -d DATABASE_NAME > /tmp/decrypted_dump.sqlPara iniciar un servidor de AlloyDB Omni inhabilitado para TDE, sigue las instrucciones que se indican en Instala AlloyDB Omni con Docker.
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.sqlPodman
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
Usa
pg_dumppara 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.sqlPodman
podman exec -i NON_TDE_CONTAINER_NAME pg_dump -U postgres -d DATABASE_NAME > /tmp/src_plaintext_dump.sqlPara iniciar un servidor de AlloyDB Omni habilitado para TDE, sigue las instrucciones que se indican en Crea un clúster habilitado para TDE.
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.sqlPodman
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