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
- Prüfen Sie, ob AlloyDB Omni installiert ist. Weitere Informationen finden Sie unter AlloyDB Omni mit Containern installieren.
- Wenn Sie zu einem TDE-fähigen Datenbankserver migrieren, prüfen Sie, ob Sie Ihren Schlüsselverwaltungsanbieter eingerichtet haben. Weitere Informationen finden Sie unter TDE-fähigen Cluster erstellen.
TDE-fähige Datenbank zu einer Datenbank ohne TDE migrieren
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.sqlPodman
podman exec -i TDE_CONTAINER_NAME pg_dump -U postgres -d DATABASE_NAME > /tmp/decrypted_dump.sqlStarten Sie einen AlloyDB Omni-Server mit deaktivierter TDE, indem Sie der Anleitung unter AlloyDB Omni mit Docker installieren folgen.
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.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
Datenbank mit deaktivierter TDE zu einer Datenbank mit aktivierter TDE migrieren
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.sqlPodman
podman exec -i NON_TDE_CONTAINER_NAME pg_dump -U postgres -d DATABASE_NAME > /tmp/src_plaintext_dump.sqlStarten Sie einen TDE-fähigen AlloyDB Omni-Server gemäß der Anleitung unter TDE-fähigen Cluster erstellen.
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.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