Tips Teknologi: Bagaimana cara mencadangkan dan mengembalikan basis data Postgres?
Karan Singh
19 Jun 2013
1 min read

Poin Penting
Cadangan PostgreSQL dapat menargetkan satu tabel, satu database, atau semua database tergantung pada kebutuhan Anda.
pg_dumpmembuat file teks SQL yang berisi DDL dan data yang diperlukan untuk membangun kembali tabel atau database yang ditargetkan.pg_dumpallmencadangkan setiap database di instance Postgres.Pemulihan dilakukan dengan
psql, yang mengeksekusi dump SQL kembali ke database yang ditargetkan.Pemulihan tingkat tabel memerlukan memastikan bahwa tabel belum ada untuk menghindari konflik.
Ketika mencadangkan tabel individu, perhatikan ketergantungan relasional.
Dump dapat diambil dari lokal dan dipulihkan ke instance Postgres remote.
Cadangan mencakup perintah
CREATE,ALTER, danCOPYtergantung pada apa yang diekspor.Strategi cadangan yang tepat tergantung pada pemahaman tentang hubungan tabel, penggunaan skema, dan lingkungan penempatan.
Selalu pastikan integritas data dengan mengambil cadangan yang mencakup tabel yang direferensikan jika diperlukan.
Sorotan Tanya jawab
Apa sebenarnya yang dilakukan pg_dump?
pg_dumpmenghasilkan file SQL berbasis teks yang berisi seluruh rangkaian perintah yang diperlukan untuk merekonstruksi tabel atau basis data persis seperti saat backup dilakukan.Bisakah saya mencadangkan hanya satu tabel saja daripada seluruh basis data?
Ya. Gunakan
pg_dump --table NAMA_TABELuntuk mengekspor tabel tertentu. Jika tabel dengan nama yang sama ada di berbagai skema, gunakan--schemauntuk menentukan yang benar.Haruskah saya khawatir tentang tabel terkait saat mencadangkan tabel tunggal?
Tentu saja. PostgreSQL adalah relasional, jadi tabel lain mungkin merujuk pada tabel yang Anda cadangkan. Jika Anda hanya memulihkan satu tabel tanpa tabel terkait, Anda mungkin akan merusak integritas referensial.
Bagaimana cara mencadangkan database penuh?
Jalankan perintah seperti:
pg_dump -U <user> <database> -f <output.sql>Ini mengekspor semua tabel, definisi skema, indeks, dan data untuk database tersebut.
Apa yang dilakukan pg_dumpall?
pg_dumpallmencadangkan setiap basis data di server ke dalam satu file SQL. Ini berguna saat memigrasi atau mengambil snapshot seluruh instance Postgres.Bisakah saya mengembalikan tabel ke dalam database yang sudah ada?
Ya. Gunakan
psql -U <user> -f <file.sql> <database>.Namun pastikan tabel tidak sudah ada — jika tidak, Anda akan mendapatkan kesalahan “sudah ada” selama pemulihan.
Apa yang terjadi selama pemulihan basis data penuh?
File pemulihan dijalankan:
Buat TabelUbah TabelSalin(untuk data tabel)
mengembalikan database ke kondisi persisnya pada saat dump.
Bisakah saya mengembalikan ke server yang berbeda dari yang saya lakukan pencadangan?
Ya. Dump bersifat portabel. Anda dapat melakukan cadangan secara lokal dan mengembalikannya ke instance Postgres jarak jauh, asalkan versinya kompatibel.
Apakah pg_dump mempengaruhi database yang sedang berjalan?
Tidak. Ini berfungsi melalui query SQL dan tidak mengunci seluruh database. Ini dengan aman menangkap snapshot yang konsisten.
Bagaimana cara mengembalikan semua database dari file pg_dumpall?
Gunakan:
psql -U <user> -f all_dump.sqlIni akan membuat ulang setiap database yang ditemukan dalam dump.



