Questa guida descrive come eseguire la migrazione dei dati tra
cluster abilitati per la crittografia dei dati trasparente
(TDE) e non criptati utilizzando pg_dump e pg_restore.
Entrambe le direzioni di migrazione, da TDE a non criptato e viceversa, sono supportate e utilizzano gli strumenti di backup logico standard di PostgreSQL.
La migrazione logica che utilizza pg_dump decodifica i dati criptati in tempo reale all'origine e li scarica come istruzioni SQL non criptate. Quando ripristini i dati, il cluster di destinazione li scrive in base alle proprie impostazioni di crittografia.
Il cluster di destinazione cripta i dati se TDE è abilitato e li scrive come testo normale se TDE è disabilitato.
Prima di iniziare
- Verifica di aver installato AlloyDB Omni. Per saperne di più, consulta Installare AlloyDB Omni utilizzando i container.
- Se esegui la migrazione a un server di database abilitato per TDE, verifica di aver configurato il provider di gestione delle chiavi. Per saperne di più, consulta Creare un cluster abilitato per TDE.
Eseguire la migrazione di un database abilitato per TDE a un database disabilitato per TDE
Scarica il database dal server di database abilitato per TDE in un file sull'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.sqlAvvia un server AlloyDB Omni disabilitato per TDE seguendo le istruzioni riportate in Installare AlloyDB Omni utilizzando Docker.
Ripristina il file di dump sul server di database non criptato.
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
Eseguire la migrazione di un database disabilitato per TDE a un database abilitato per TDE
Utilizza
pg_dumpper fare il dump del database dal server di database non crittografato.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.sqlAvvia un server AlloyDB Omni abilitato per TDE seguendo le istruzioni riportate in Creare un cluster abilitato per TDE.
Esegui il ripristino sul server di database abilitato per TDE. I dati vengono criptati in modo trasparente durante la scrittura.
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