Panduan ini menjelaskan cara memigrasikan data antara
cluster yang mendukung enkripsi data transparan
(TDE) dan yang tidak dienkripsi menggunakan pg_dump dan pg_restore.
Kedua arah migrasi—TDE ke non-enkripsi dan sebaliknya—didukung dan menggunakan alat pencadangan logis PostgreSQL standar.
Migrasi logis menggunakan pg_dump mendekode data terenkripsi secara langsung di sumber dan membuangnya sebagai pernyataan SQL yang tidak dienkripsi. Saat Anda memulihkan data, cluster tujuan akan menulis data sesuai dengan setelan enkripsinya sendiri.
Cluster tujuan mengenkripsi data jika TDE diaktifkan, dan menulisnya 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 tidak mendukung TDE 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 tidak mendukung TDE ke database yang mendukung TDE
Gunakan
pg_dumpuntuk membuang 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