Halaman ini menjelaskan cara mengekspor dan mengimpor data ke instance Cloud SQL menggunakan pg_dump, pg_dumpall, dan pg_restore.
Sebelum memulai
Ekspor menggunakan resource database, tetapi tidak mengganggu operasi database normal, kecuali jika penyediaan instance kurang lengkap.
Untuk praktik terbaik, lihat Praktik Terbaik untuk Mengimpor dan Mengekspor Data.
Setelah menyelesaikan operasi impor, memverifikasi hasilnya.
Pelajari utilitas pg_dump, pg_dumpall, dan pg_restore
lebih lanjut.
Mengekspor data dari Cloud SQL untuk PostgreSQL
Anda dapat menggunakan Cloud SQL untuk melakukan ekspor dari konsol Google Cloud , gcloud CLI, atau API.
- Untuk mengekspor satu database PostgreSQL, gunakan utilitas pg_dump.
- Untuk mengekspor semua database PostgreSQL dari cluster, gunakan utilitas pg_dumpall.
Saat menggunakan salah satu utilitas, pastikan Anda juga menggunakan opsi yang diperlukan guna memastikan bahwa file ekspor yang dihasilkan valid untuk diimpor kembali ke Cloud SQL.
Mengekspor data dari server PostgreSQL lokal menggunakan pg_dump
  Untuk mengekspor database yang tidak dikelola oleh Cloud SQL, untuk diimpor nanti
  ke Cloud SQL, gunakan utilitas pg_dump dengan flag
  berikut:
- --no-owner- Perintah perubahan kepemilikan tidak boleh disertakan dalam file dump. 
- --format- Format - customdan- directorydiizinkan jika file dump ini dimaksudkan untuk digunakan dengan- pg_restore.- Untuk format - plain-text, ekspor ke- SQL dump filesebagai gantinya. Format ini tidak kompatibel dengan- pg_restore, dan harus diimpor menggunakan perintah impor konsol Google Cloud atau klien- psql.
- --no-acl- Flag ini diperlukan jika dump Anda akan berisi pernyataan untuk memberikan atau mencabut keanggotaan dalam peran - SUPERUSER.
- --clean- Dengan tanda opsional ini, Anda dapat menyertakan pernyataan SQL - DROP <object>yang diperlukan untuk menghapus (membersihkan) objek database sebelum mengimpornya.
- --if-exists- Dengan tanda opsional ini, Anda dapat menyertakan pernyataan SQL - IF EXISTSdengan setiap pernyataan- DROPyang dihasilkan oleh tanda- clean.
Selain itu, Anda harus menghapus semua hal berikut:
- Pernyataan terkait ekstensi, jika Cloud SQL tidak mendukung ekstensi tersebut. Lihat Ekstensi PostgreSQL untuk daftar ekstensi yang didukung.
- Pernyataan CREATE EXTENSIONatauDROP EXTENSIONyang merujuk plpgsql. Ekstensi ini sudah diinstal sebelumnya pada instance Postgres Cloud SQL.
- Laporan COMMENT ON EXTENSION.
Pastikan encoding default, sebagaimana ditentukan oleh setelan database,
  sudah benar untuk data Anda. Jika diperlukan, Anda dapat mengganti default dengan flag
  --encoding.
Ekspor data menggunakan format custom dari Cloud SQL untuk PostgreSQL
Untuk menggunakan format kustom, jalankan pg_dump dari command line:
pg_dump \ -U USERNAME \ --format=custom \ --no-owner \ --no-acl \ DATABASE_NAME > DATABASE_NAME.dmp
Mengekspor data dari beberapa file secara paralel dari Cloud SQL untuk PostgreSQL
Anda hanya dapat menggunakan format output directory untuk mengekspor data dari beberapa file secara paralel.
Untuk mengekspor secara paralel, gunakan flag -j NUM_CORES.
NUM_CORES adalah jumlah core pada instance sumber.
Mengekspor semua database
pg_dumpall adalah
utilitas yang memungkinkan Anda mengekstrak semua database PostgreSQL dari sebuah cluster ke dalam
satu file skrip. File ini memiliki perintah SQL yang dapat Anda gunakan untuk memulihkan
database.
Untuk mengekspor semua database PostgreSQL di instance Cloud SQL, gunakan
utilitas pg_dumpall dengan flag wajib berikut:
- exclude-database=cloudsqladmin
- exclude-database=template*
Utilitas pg_dumpall tidak memiliki akses ke database cloudsqladmin atau
template.
Untuk mengekspor semua database PostgreSQL, jalankan perintah berikut:
pg_dumpall \ -h HOST_NAME -l DATABASE_NAME --exclude-database=cloudsqladmin \ --exclude-database=template* > pg_dumpall.sql
Untuk melihat sandi peran saat membuang peran dengan pg_dumpall, tetapkan
  flag cloudsql.pg_authid_select_role ke nama peran PostgreSQL. Jika ada,
berarti peran tersebut memiliki akses hanya baca (SELECT) ke tabel pg_authid. Tabel ini
berisi sandi peran.
Impor
Gunakan utilitas pg_restore untuk mengimpor arsip ke
database Cloud SQL. pg_restore hanya berfungsi dengan arsip
yang dibuat oleh pg_dump dalam format
custom atau directory.
Pelajari lebih lanjut
pg_restore.
Mengimpor dari file dump yang dibuat dengan format custom ke Cloud SQL untuk PostgreSQL
Jika file dump dibuat dengan format kustom, jalankan perintah berikut:
pg_restore \ --list DATABASE_NAME.dmp | sed -E 's/(.* EXTENSION )/; \1/g' > DATABASE_NAME.toc
Pasca-pemrosesan dari sed akan mengomentari semua laporan ekstensi
  dalam file dump SQL.
Saat mengimpor menggunakan pg_restore, tentukan daftar isi yang diproses dengan
argumen command line "--use-list=DATABASE_NAME.toc".
Mengimpor data dari beberapa file secara paralel ke Cloud SQL untuk PostgreSQL
Anda hanya dapat mengimpor data dari beberapa file secara paralel untuk arsip yang dibuat menggunakan format output directory dan
custom.
Untuk mengimpor secara paralel, gunakan flag -j NUM_CORES.
NUM_CORES adalah jumlah core pada instance tujuan.
Mengimpor performa di Cloud SQL untuk PostgreSQL
Langkah selanjutnya
- Pelajari cara memeriksa status operasi impor dan ekspor.
- Pelajari lebih lanjut praktik terbaik untuk mengimpor dan mengekspor data.
- Pelajari utilitas pg_dump PostgreSQL lebih lanjut.
- Masalah umum untuk impor dan ekspor.