PostgreSQL memiliki tools pg_dump yang berfungsi untuk melakukan backup database. Semua data yang ada di-read dan diterjemahkan kedalam bentuk text atau format lainnya. Jadi, seandainya Anda melakukan pg_dump dimulai tengah malam dan berakhir jam 6 pagi, maka data yang tercantum di file dump hanyalah data yang ada pada tengah malam sementara data setelahnya tidak diproses, oleh karena itu PostgreSQL menyediakan PITR atau Point-in-Time Recovery. Apa itu PITR? PITR adalah kemampuan untuk restore atau mengemballikan keadaan database cluster sesuai point-in-time yang spesifik. Seperti yang ditampilkan pada gambar diatas data yang terdapat di master di-archivekan (ilustrasi di atas diwakilkan oleh kotak-kotak yang berada disebelah kanan bawah). Selanjutnya kita bisa melakukan restore archive sesuai file archive yang kita inginkan. Menggunakan file archive lebih efisien dibandingkan dengan melakukan dump.

Lalu bagaimana melakukan proses Archiving? Archiving sendiri nantinya akan menyimpan transaction log yang terjadi di database setiap kali segment transaction lognya full.Berikut ini adalah langkah-langkah:

  1. Lakukan konfigurasi archive_mode dan archive_command di conf. Perlu diperhatikan bahwa setiap kali melakukan perubahan di postgresql.conf harus restart/reload PPAS.
  2. Archive_mode harus di-set menjadi mode on agar proses archiving
  3. Archive_command membutuhkan dua value yang harus di-set, pertama adalah %p untuk lokasi untuk menenjukan path archive file, dan %f yang menunjukkan nama file. Contoh archive_command :

archive-command

  1. Ubah WAL_Level menjadi archive atau hot_standby
  2. Restart/reload PPAS/PostgreSQL

Selanjutnya kita akan membahas bagaimana proses recovery-nya.

  1. Stop servernya jika server database masih dalam status running
  2. Jika memiliki space yang cukup, copy data directory dan transaction log.
  3. Hapus semua directory dan file dari cluster directory.
  4. Restore file database dari file system backup.
  5. Verify ownership (selain root)
  6. Remove semua file yang ada di pg_xlog/. Jika ada file WAL segment yang tidak terarsipkan maka copy ke pg_xlog/
  7. Buat recovery command di conf dalam data directory cluster yang ada
  8. Start server PPAS/PostgreSQL
  9. Setelah proses recovery selesai maka conf akan berubah menjadi recovery.done

Jika Anda membutuhkan training PostgreSQL atau Postgres Plus Advanced Server maupun support dari konsultan kami, Anda bisa menghubungi kami melalui info@i-3.co.id ataupun melalui live chat.