Cadangan adalah suatu keharusan dalam semua Rencana Pemulihan Bencana. Ini mungkin tidak selalu cukup untuk menjamin Tujuan Titik Pemulihan yang dapat diterima, tetapi merupakan pendekatan pertama yang baik. Masalahnya adalah apa yang terjadi jika, jika terjadi kegagalan, Anda perlu menggunakan cadangan ini, dan itu tidak dapat digunakan karena alasan tertentu? Mungkin Anda tidak ingin berada dalam situasi itu, jadi, di blog ini, kita akan melihat cara mengonfirmasi apakah cadangan Anda bagus untuk digunakan.
Jenis Cadangan PostgreSQL
Mari kita mulai berbicara tentang berbagai jenis cadangan. Ada berbagai jenis, tetapi secara umum, kita dapat memisahkannya dalam dua kategori sederhana:
- Logis :Cadangan disimpan dalam format yang dapat dibaca manusia seperti SQL.
- Fisik :Cadangan berisi data biner.
Mengapa kami menyebutkan ini? Karena kita akan melihat bahwa ada beberapa pemeriksaan yang dapat kita lakukan untuk satu jenis dan tidak untuk yang lain.
Memeriksa Log Cadangan
Cara pertama untuk mengonfirmasi apakah semuanya berjalan dengan baik adalah dengan memeriksa log cadangan.
Perintah paling sederhana untuk menjalankan pencadangan PostgreSQL misalnya:
$ pg_dumpall > /path/to/dump.sql
Tapi, bagaimana saya bisa tahu jika ada kesalahan saat perintah dijalankan? Anda bisa menambahkan untuk mengirim output ke beberapa file log tertentu:
$ pg_dumpall > /path/to/dump.sql > /var/log/postgres/pg_dump.log
Jadi, Anda dapat menambahkan baris ini di server cron untuk menjalankannya setiap hari:
30 0 * * * pg_dumpall > /path/to/dump.sql > /var/log/postgres/pg_dump.log
Dan Anda harus memantau file log untuk mencari kesalahan, misalnya, menambahkannya ke beberapa alat pemantauan seperti Nagios.
Memeriksa log tidak cukup untuk mengonfirmasi bahwa pencadangan akan berfungsi, karena misalnya, jika berkas cadangan rusak karena suatu alasan, Anda mungkin tidak akan melihatnya di berkas log.
Memeriksa Konten Cadangan
Jika Anda menggunakan pencadangan logis, Anda dapat memverifikasi konten file cadangan, untuk mengonfirmasi bahwa Anda memiliki semua basis data di sana.
Anda dapat membuat daftar database PostgreSQL Anda saat ini menggunakan, misalnya, perintah ini:
$ psql -l | awk '{ print $1 }'| awk 'FNR > 3' |grep '^[a-zA-Z0-9]' |grep -v 'template0'
postgres
template1
world
Dan periksa database mana yang Anda miliki di file cadangan:
$ grep '^[\]connect' /path/to/dump.sql |awk '{print $2}'
template1
postgres
world
Masalah dengan pemeriksaan ini adalah Anda tidak memeriksa ukuran atau data, sehingga ada kemungkinan Anda kehilangan data jika ada kesalahan saat pencadangan dijalankan.
Memulihkan untuk Memeriksa Cadangan Secara Manual
Cara paling aman untuk mengonfirmasi apakah cadangan berfungsi adalah memulihkannya dan mengakses database.
Setelah pencadangan selesai, Anda dapat memulihkannya secara manual di host lain dengan menyalin file dump dan menjalankannya misalnya:
$ psql -f /path/to/dump.sql postgres
Kemudian, Anda dapat mengaksesnya dan memeriksa database:
$ psql
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.utf-8 | en_US.utf-8 |
template0 | postgres | UTF8 | en_US.utf-8 | en_US.utf-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.utf-8 | en_US.utf-8 | =c/postgres +
| | | | | postgres=CTc/postgres
world | postgres | UTF8 | en_US.utf-8 | en_US.utf-8 |
(4 rows)
Masalah dengan metode ini, tentu saja, Anda harus menjalankannya secara manual, atau mencari cara untuk mengotomatiskannya, yang bisa jadi merupakan tugas yang memakan waktu.
Verifikasi Cadangan ClusterControl Otomatis
Sekarang, mari kita lihat bagaimana ClusterControl dapat mengotomatiskan verifikasi cadangan PostgreSQL dan membantu menghindari kejutan atau tugas manual.
Di ClusterControl, pilih cluster Anda dan buka bagian "Cadangan", lalu pilih "Buat Cadangan".
Fitur verifikasi cadangan otomatis tersedia untuk pencadangan terjadwal. Jadi, mari kita pilih opsi “Jadwalkan Pencadangan”.
Saat menjadwalkan pencadangan, selain memilih opsi umum seperti metode atau penyimpanan, Anda juga perlu menentukan jadwal/frekuensi.
Pada langkah berikutnya, Anda dapat mengompresi dan mengenkripsi cadangan dan menentukan jangka waktu penyimpanan. Di sini, Anda juga memiliki fitur “Verifikasi Cadangan”.
Untuk menggunakan fitur ini, Anda memerlukan host (atau VM) khusus yang bukan bagian dari cluster.
ClusterControl akan menginstal perangkat lunak dan akan memulihkan cadangan di host ini . Setelah memulihkan, Anda dapat melihat ikon verifikasi di bagian Cadangan ClusterControl.
Kesimpulan
Seperti yang kami sebutkan, pencadangan wajib dilakukan di lingkungan apa pun, tetapi pencadangan bukanlah pencadangan jika Anda tidak dapat menggunakannya. Jadi, Anda harus memastikan bahwa cadangan Anda berguna jika suatu hari Anda membutuhkannya. Di blog ini, kami menunjukkan berbagai cara untuk memeriksa cadangan Anda untuk menghindari masalah saat Anda ingin memulihkannya.