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

Wählen Sie eine Dokumentationsversion aus:

In dieser Anleitung wird beschrieben, wie Sie Daten zwischen Clustern mit aktivierter transparenter Datenverschlüsselung (Transparent Data Encryption, TDE) und nicht verschlüsselten Clustern mit pg_dump und pg_restore migrieren.

Beide Migrationsrichtungen – von TDE zu nicht verschlü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 an der Quelle im laufenden Betrieb decodiert und als unverschlüsselte SQL-Anweisungen gesichert. 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 Klartext, wenn TDE deaktiviert ist.

Hinweis

Datenbank mit aktivierter TDE zu einer Datenbank mit deaktivierter TDE migrieren

  1. Sichern Sie die Datenbank vom Datenbankserver mit aktivierter TDE in einer 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. Folgen Sie dazu der Anleitung unter AlloyDB Omni mit Docker installieren.

  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. Sichern Sie die Datenbank mit pg_dump vom nicht verschlüsselten Datenbankserver.

    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 AlloyDB Omni-Server mit aktivierter TDE. Folgen Sie dazu der Anleitung unter Cluster mit aktivierter TDE erstellen.

  3. Stellen Sie die Datenbank auf dem Datenbankserver mit aktivierter TDE 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