PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana Saya Tahu jika Cadangan PostgreSQL Saya Baik?

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pg_ctl Tips dan Trik

  2. Hari Pengembang PostgreSQL Praha 2016

  3. Gabungkan satu kolom dalam kueri dengan banyak kolom

  4. Tidak dapat terhubung ke server PostgreSQL:tidak dapat terhubung ke server:Izin ditolak

  5. Postgres 9.4 jsonb array sebagai tabel