Pg_restore sırasında kontrol noktaları çok sık meydana geliyor


15

PostgreSQL 9.2.2 (Windows 32 bit) altında pg_restore, sistematik olarak kontrol noktası frekansı hakkında günlük uyarılarına neden olan bir komutum var, örneğin:

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

Veri tabanı yaklaşık 3.3 Gb boyutunda 112 tablo / 160 görünüm ile 14 dakika içinde geri yüklenir.

Bunun a sırasında meydana gelmesi normal pg_restoremidir?

Yanıtlar:


17

Tüm DB geri yüklemesi sırasında nadir değildir, çünkü bu çok büyük bir işlemdir. Bunu normal çalışma sırasında görürseniz checkpoint_segments, hata mesajı ipuçlarında olduğu gibi ayarınızı kalıcı olarak artırmayı düşünün .

checkpoint_segmentsGeri yüklemeden hemen önce daha yüksek ayarlama sorununa gidebilir ve daha sonra tekrar indirebilirsiniz. Bu neyi olduğunu bile manuel (anlatınız) önerir :

checkpoint_segmentsKonfigürasyon değişkenini geçici olarak artırmak da büyük veri yüklerini daha hızlı hale getirebilir. Bunun nedeni, PostgreSQL'e büyük miktarda veri yüklenmesinin kontrol noktalarının normal kontrol noktası frekansından ( checkpoint_timeoutyapılandırma değişkeni tarafından belirtilir) daha sık oluşmasına neden olmasıdır . Bir kontrol noktası meydana geldiğinde, tüm kirli sayfalar diske temizlenmelidir. checkpoint_segmentsToplu veri yüklemeleri sırasında geçici olarak artarak , gerekli kontrol noktalarının sayısı azaltılabilir.

Daha fazla ayrıntı ile ilgili cevap:

Postgres 9.5

Yaklaşan yeni sürümün daha akıllı bir yaklaşımı var. Beta sürüm notlarından alıntı :

Konfigürasyon parametresini ve (Heikki Linnakangas) checkpoint_segmentsile değiştirinmin_wal_sizemax_wal_size

Bu, çok sayıda WAL dosyasının gerekmedikçe saklanmadan tahsis edilmesini sağlar. Böylece için varsayılan değeri max_wal_size arttırıldı 1GB.

Bir yana: görünümlerin sayısı neredeyse hiç alakalı değildir, bunlar herhangi bir veri içermez, sadece "reçete", yani: sorgu ve görünümün bazı nitelikleri. Eldeki soru için, temel olarak sadece yedekleme dosyasının toplam boyutu önemlidir.


Checkpoint_segments değerini 30 olarak ayarladıktan sonra, günlükte bu mesajların hiçbiri görünmez. Teşekkürler.
Sébastien Clément
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.