Questa guida descrive come eseguire la migrazione dei dati tra cluster con crittografia trasparente dei dati (TDE) abilitata e cluster non criptati utilizzando pg_dump e pg_restore.
Entrambe le direzioni di migrazione, da TDE a non criptato e viceversa, sono supportate e utilizzano strumenti di backup logico PostgreSQL standard.
La migrazione logica con pg_dump decodifica i dati criptati in tempo reale nell'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 la TDE è abilitata e li scrive come testo normale se la TDE è disabilitata.
Prima di iniziare
- Verifica di aver installato AlloyDB Omni. Per ulteriori informazioni, consulta Installa 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 Crea un cluster abilitato per TDE.
Esegui la migrazione di un database abilitato per TDE a un database disabilitato per TDE
Esegui il dump del 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 con TDE disattivato seguendo le istruzioni riportate in Installa 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
Esegui la migrazione di un database con TDE disattivato a un database con TDE abilitato
Utilizza
pg_dumpper eseguire il dump del database dal server di database non criptato.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 Crea 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