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 RPM.
- Jika Anda bermigrasi ke server database yang mendukung TDE, pastikan Anda telah 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.
/usr/lib/postgresql/18/bin/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 RPM.
Pulihkan file dump ke server database yang tidak dienkripsi.
/usr/lib/postgresql/18/bin/psql -U postgres -c "CREATE DATABASE DATABASE_NAME" /usr/lib/postgresql/18/bin/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./usr/lib/postgresql/18/bin/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.
/usr/lib/postgresql/18/bin/psql -U postgres -c "CREATE DATABASE DATABASE_NAME" /usr/lib/postgresql/18/bin/psql -U postgres -d DATABASE_NAME < /tmp/src_plaintext_dump.sql