Panduan ini menjelaskan cara memigrasikan data antara cluster yang mendukung enkripsi data transparan (TDE) dan cluster yang tidak dienkripsi menggunakan pg_dump dan pg_restore.
Kedua arah migrasi—TDE ke non-terenkripsi dan sebaliknya—didukung dan menggunakan alat pencadangan logis PostgreSQL standar.
Migrasi logis menggunakan pg_dump mendekode data terenkripsi secara langsung di
sumber dan menumpuknya sebagai pernyataan SQL yang tidak dienkripsi. Saat Anda memulihkan data, cluster tujuan menulis data sesuai dengan setelan enkripsinya sendiri.
Cluster tujuan mengenkripsi data jika TDE diaktifkan, dan menulis sebagai teks biasa jika TDE dinonaktifkan.
Sebelum memulai
- Pastikan Anda telah menginstal AlloyDB Omni. Untuk mengetahui informasi selengkapnya, lihat Menginstal AlloyDB Omni menggunakan container.
- Jika Anda bermigrasi ke server database yang mendukung TDE, pastikan Anda menyiapkan penyedia pengelolaan kunci. Untuk mengetahui informasi selengkapnya, lihat Membuat cluster yang mendukung TDE.
Memigrasikan database yang mendukung TDE ke database yang tidak mendukung TDE
Buang database dari server database yang mendukung TDE ke file di 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.sqlMulai server AlloyDB Omni yang TDE-nya dinonaktifkan dengan mengikuti petunjuk di Menginstal AlloyDB Omni menggunakan Docker.
Pulihkan file dump ke server database yang tidak dienkripsi.
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
Memigrasikan database yang TDE-nya dinonaktifkan ke database yang TDE-nya diaktifkan
Gunakan
pg_dumpuntuk mengekspor database dari server database yang tidak dienkripsi.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.sqlMulai server AlloyDB Omni yang mendukung TDE dengan mengikuti petunjuk di Membuat cluster yang mendukung TDE.
Pulihkan ke server database yang mendukung TDE. Data dienkripsi secara transparan saat ditulis.
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