Backup dan Restore database PostgreSQL dengan pg_dump dan pg_restore
Salah satu cara mekanisme membackup database PostgreSQL adalah dengan menjalankan skrip pg_dump atau pg_dumpall yang menghasil file SQL dump.
Ada beberapa keuntungan backup data dengan perintah pg_dump, yaitu :
- Fleksibel dan luwes karena tersedia beberapa cakupan backup seperti seluruh database, database tertentu atau table tertentu
- Relatif mudah digunakan yaitu karena hanya menggunakan skrip pg_dump atau pg_dumpall
- Tidak perlu mematikan server untuk menjalankan perintah backup ini
- Selama proses backup, proses yang terjadi pada database dapat tetap berjalan seperti sedia kala karena proses backup tidak melakukan penguncian (lock) table.
Namun ada beberapa kekurangan dalam proses dengan skrip pg_dump ini, antara lain :
- Jika data pada database sudah cukup besar, proses backup akan memakan waktu yang cukup lama
- Tidak dapat secara praktis digunakan untuk mengembalikan (restore) data ke posisi tertentu
Backup Seluruh database
Perintah berikut adalah membackup seluruh database ke dalam file backup_all.dump
$ pg_dumpall -U postgres -f backup_all.dump
Secara default proses backup dengan pg_dumpall adalah menghasil skrip SQL dengan statement COPY, Statement ini lebih ringkas dibandingkan dengan statemen INSERT. jika file dump yang dihasilkan ingin dalam SQL statement INSERT maka jalankan dengan menambahkan opsi -d pada perintah backup, seperti contoh berikut
$ pg_dumpall -d - U postgres -f backup_all.dump
Backup database tertentu
Gunakan skrip pg_dump untuk backup database tertentu, misal database pustaka yang akan di backup dengan format SQL statementnya adalah INSERT dan file dumpnya pustaka.dump, berikut perintahnya
$ pg_dump -d -U postgres -f pustaka.dump pustaka
Anda juga dapat membuat file dump dimana untuk menyimpan ulang (restore) harus menggunakan skrip pg_restore, yaitu dengan menggunakan opsi -F ( huruf F besar)
$ pg_dump -U postgres -F -f pustaka.dump pustaka
Backup table tertentu pada database
Untuk membackup hanya sebuah table pada database gunakan opsi -t sebelum nama table, berikut contoh backup table penerbit pada database pustaka
$ pg_dump -d -U postgres -t buku -f backup_table_buku.dump pustaka
Restore database database
Berikut perintah simpan ulang hanya backup database pustaka ke database baru pustaka2
$ createdb pustaka2 -U postgres $ psql -U postgres pustaka2 -f pustaka.dump
Berikut contoh simpan ulang jika format dump harus merestore dengan skrip pg_restore
$ pg_restore -U postgres -C -d pustaka2 -f pustaka.dump
Comment by Nirah anggaraeni on 15 September 2011:
Kalau mau memnuat setup instalsi misal vb dan postgresql yang harus di bawa file postgresql apa aja ya ?
Comment by rojulman on 20 September 2011:
Postgresql adalah database di sisi server yang berjalan dengan service pada port tertentu, seperti database server lainnya ( mysql, oracle, sqlserver), dan buka database yang sipatnya file seperti Ms.Access atau SQLite .. jadi kalo membuat setup instalasi dengan program vb yang harus disertakan adalah konfigurasi untuk koneksi kedatabase seperti user, password, nama database dan alamat ip/domain dari server postgresql .. jadi tidak ada file yang fisik database yang dapat disertakan sepertinya menggunakan Ms.Access
Comment by sasuke on 29 October 2011:
mas mohon pencerahannya
apa yg salah ya mas ko setiap dijalankan file backupnya kosong
Comment by rojulman on 3 November 2011:
saya coba yang anda tulis di pc saya backup berjalan dengan baik …