Memigrasikan data ke dan dari cluster yang mendukung TDE

Pilih versi dokumentasi:

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

Memigrasikan database yang mendukung TDE ke database yang tidak mendukung TDE

  1. 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.sql
    

    Podman

    podman exec -i TDE_CONTAINER_NAME pg_dump -U postgres -d DATABASE_NAME > /tmp/decrypted_dump.sql
    
  2. Mulai server AlloyDB Omni yang TDE-nya dinonaktifkan dengan mengikuti petunjuk di Menginstal AlloyDB Omni menggunakan Docker.

  3. 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.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
    

Memigrasikan database yang TDE-nya dinonaktifkan ke database yang TDE-nya diaktifkan

  1. Gunakan pg_dump untuk 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.sql
    

    Podman

    podman exec -i NON_TDE_CONTAINER_NAME pg_dump -U postgres -d DATABASE_NAME > /tmp/src_plaintext_dump.sql
    
  2. Mulai server AlloyDB Omni yang mendukung TDE dengan mengikuti petunjuk di Membuat cluster yang mendukung TDE.

  3. 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.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
    

Langkah berikutnya