Migrer des données vers et depuis un cluster compatible avec le chiffrement TDE

Sélectionnez une version de la documentation :

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

Migrer une base de données compatible avec le TDE vers une base de données non compatible avec le TDE

  1. 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.sql
    

    Podman

    podman exec -i TDE_CONTAINER_NAME pg_dump -U postgres -d DATABASE_NAME > /tmp/decrypted_dump.sql
    
  2. Démarrez un serveur AlloyDB Omni non compatible avec le TDE en suivant les instructions de la section Installer AlloyDB Omni à l'aide de Docker.

  3. 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.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
    

Migrer une base de données non compatible avec le TDE vers une base de données compatible avec le TDE

  1. Utilisez pg_dump pour 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.sql
    

    Podman

    podman exec -i NON_TDE_CONTAINER_NAME pg_dump -U postgres -d DATABASE_NAME > /tmp/src_plaintext_dump.sql
    
  2. Démarrez un serveur AlloyDB Omni compatible avec le TDE en suivant les instructions de la section Créer un cluster compatible avec le TDE.

  3. 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.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
    

Étape suivante