Selasa, 24 Februari 2015

Backup dan Restore PostgreSQL

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 :
  1. Fleksibel dan luwes karena tersedia beberapa cakupan backup seperti seluruh database, database tertentu atau table tertentu
  2. Relatif mudah digunakan yaitu karena hanya menggunakan skrip pg_dump atau pg_dumpall
  3. Tidak perlu mematikan server untuk menjalankan perintah backup ini
  4. 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 :
  1. Jika data pada database sudah cukup besar, proses backup akan memakan waktu yang cukup lama
  2. 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