Pos-pos pemeriksaan terjadi terlalu sering selama pg_restore

14

Di bawah PostgreSQL 9.2.2 (Windows 32 bit), saya memiliki pg_restoreperintah yang secara sistematis menghasilkan peringatan log tentang frekuensi pos pemeriksaan, misalnya:

LOG:  checkpoints are occurring too frequently (17 seconds apart)
HINT:  Consider increasing the configuration parameter "checkpoint_segments".

Basis data berukuran sekitar 3,3 Gb dengan 112 tabel / 160 tampilan dan mengembalikan dalam waktu sekitar 14 menit.

Apakah normal untuk itu terjadi selama pg_restore?

Sébastien Clément
sumber

Jawaban:

17

Tidak jarang selama pemulihan seluruh-DB karena itu adalah operasi yang sangat besar. Jika Anda melihat ini selama operasi normal, pertimbangkan untuk meningkatkan pengaturan Anda checkpoint_segmentssecara permanen, seperti petunjuk pesan kesalahan.

Anda mungkin mengalami masalah pengaturan checkpoint_segmentslebih tinggi sebelum pemulihan dan kemudian turunkan lagi. Ini bahkan yang disarankan oleh manual (termasuk penjelasan) :

Meningkatkan sementara checkpoint_segmentsvariabel konfigurasi juga dapat membuat banyak data lebih cepat. Ini karena memuat sejumlah besar data ke PostgreSQL akan menyebabkan pos pemeriksaan lebih sering terjadi daripada frekuensi pos pemeriksaan normal (ditentukan oleh checkpoint_timeoutvariabel konfigurasi). Setiap kali pos pemeriksaan terjadi, semua halaman yang kotor harus dibilas ke disk. Dengan meningkatkan checkpoint_segmentssementara selama pemuatan data massal, jumlah pos pemeriksaan yang diperlukan dapat dikurangi.

Jawaban terkait dengan detail lebih lanjut:

Postgres 9.5

Rilis baru yang akan datang memiliki pendekatan yang lebih cerdas. Mengutip catatan rilis beta :

Ganti parameter konfigurasi checkpoint_segmentsdengan min_wal_size dan max_wal_size(Heikki Linnakangas)

Ini memungkinkan alokasi sejumlah besar file WAL tanpa menyimpannya jika tidak diperlukan. Jadi standar untuk max_wal_size telah ditingkatkan menjadi 1GB.

Selain: jumlah tampilan hampir tidak relevan, mereka tidak mengandung data apa pun, hanya "resep", yaitu: permintaan dan beberapa atribut tampilan. Untuk pertanyaan yang ada, pada dasarnya hanya ukuran total file cadangan yang penting.

Erwin Brandstetter
sumber
Setelah mengatur checkpoint_segments ke 30, tidak ada lagi pesan ini muncul di log. Terima kasih.
Sébastien Clément