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
1
| $ 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
1
| $ 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
1
| $ 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)
1
| $ 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
1
| $ 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
1
2
| $ createdb pustaka2 -U postgres $ psql -U postgres pustaka2 -f pustaka.dump |
Berikut contoh simpan ulang jika format dump harus merestore dengan skrip pg_restore
1
| $ pg_restore -U postgres -C -d pustaka2 -f pustaka.dump |
Tidak ada komentar:
Posting Komentar