Daten zu und von einem TDE-fähigen Cluster migrieren

Wählen Sie eine Dokumentationsversion aus:

In diesem Leitfaden wird beschrieben, wie Sie Daten zwischen Clustern mit aktivierter transparenter Datenverschlüsselung (TDE) und nicht verschlüsselten Clustern mithilfe von pg_dump und pg_restore migrieren.

Beide Migrationsrichtungen – TDE zu unverschlüsselt und umgekehrt – werden unterstützt und verwenden standardmäßige logische Sicherungstools von PostgreSQL.

Bei der logischen Migration mit pg_dump werden die verschlüsselten Daten on the fly an der Quelle decodiert und als unverschlüsselte SQL-Anweisungen ausgegeben. Wenn Sie die Daten wiederherstellen, schreibt der Zielcluster die Daten gemäß seinen eigenen Verschlüsselungseinstellungen. Der Zielcluster verschlüsselt die Daten, wenn TDE aktiviert ist, und schreibt sie als Nur-Text, wenn TDE deaktiviert ist.

Hinweis

TDE-fähige Datenbank zu einer Datenbank ohne TDE migrieren

  1. Erstellen Sie einen Dump der Datenbank vom TDE-fähigen Datenbankserver in eine Datei auf dem Host.

    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. Starten Sie einen AlloyDB Omni-Server mit deaktivierter TDE, indem Sie der Anleitung unter AlloyDB Omni mit Docker installieren folgen.

  3. Stellen Sie die Dumpdatei auf dem nicht verschlüsselten Datenbankserver wieder her.

    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
    

Datenbank mit deaktivierter TDE zu einer Datenbank mit aktivierter TDE migrieren

  1. Verwenden Sie pg_dump, um die Datenbank vom unverschlüsselten Datenbankserver zu sichern.

    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. Starten Sie einen TDE-fähigen AlloyDB Omni-Server gemäß der Anleitung unter TDE-fähigen Cluster erstellen.

  3. Stellen Sie die Daten auf dem TDE-fähigen Datenbankserver wieder her. Die Daten werden beim Schreiben transparent verschlüsselt.

    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
    

Nächste Schritte