Ce guide explique comment migrer des données entre
des clusters compatibles avec le chiffrement transparent des données
(TDE) et des clusters non chiffrés à l'aide de pg_dump et pg_restore.
Les deux sens de migration (TDE vers non chiffré et inversement) sont compatibles et utilisent des outils de sauvegarde logique PostgreSQL standards.
La migration logique à l'aide de pg_dump décode les données chiffrées à la volée au niveau de la source et les transfère sous forme d'instructions SQL non chiffrées. Lorsque vous restaurez les données, le cluster de destination les écrit en fonction de ses propres paramètres de chiffrement.
Le cluster de destination chiffre les données si le TDE est activé et les écrit en texte brut si le TDE est désactivé.
Avant de commencer
- Vérifiez que vous avez installé AlloyDB Omni. Pour en savoir plus, consultez Installer AlloyDB Omni à l'aide de conteneurs.
- Si vous migrez vers un serveur de base de données compatible avec le TDE, vérifiez que vous avez configuré votre fournisseur de gestion des clés. Pour en savoir plus, consultez Créer un cluster compatible avec le TDE.
Migrer une base de données compatible avec le TDE vers une base de données non compatible avec le TDE
Transférez la base de données du serveur de base de données compatible avec le TDE vers un fichier sur l'hôte.
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.sqlDémarrez un serveur AlloyDB Omni non compatible avec le TDE en suivant les instructions de la section Installer AlloyDB Omni à l'aide de Docker.
Restaurez le fichier de dump sur le serveur de base de données non chiffré.
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
Migrer une base de données non compatible avec le TDE vers une base de données compatible avec le TDE
Utilisez
pg_dumppour transférer la base de données du serveur de base de données non chiffré.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.sqlDémarrez un serveur AlloyDB Omni compatible avec le TDE en suivant les instructions de la section Créer un cluster compatible avec le TDE.
Restaurez le serveur de base de données compatible avec le TDE. Les données sont chiffrées de manière transparente lors de leur écriture.
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