Nierzadko podczas przywracania całej bazy danych, ponieważ jest to wyjątkowo duża operacja. Jeśli zobaczysz to podczas normalnej pracy, rozważ zwiększenie ustawienia na checkpoint_segments
stałe, podobnie jak wskazówki w komunikacie o błędzie.
Możesz mieć problem z ustawieniem checkpoint_segments
wyższego poziomu tuż przed przywróceniem, a następnie opuścić go ponownie. To jest nawet to, co sugeruje instrukcja (w tym wyjaśnienie) :
Tymczasowe zwiększenie checkpoint_segments
zmiennej konfiguracyjnej może również przyspieszyć ładowanie dużych danych. Jest tak, ponieważ ładowanie dużej ilości danych do PostgreSQL spowoduje, że punkty kontrolne będą występować częściej niż normalna częstotliwość punktów kontrolnych (określona przez
checkpoint_timeout
zmienną konfiguracyjną). Ilekroć pojawia się punkt kontrolny, wszystkie brudne strony muszą zostać opróżnione na dysk. Zwiększając
checkpoint_segments
tymczasowo podczas masowego ładowania danych, można zmniejszyć liczbę wymaganych punktów kontrolnych.
Powiązana odpowiedź z dodatkowymi szczegółami:
Postgres 9.5
Nadchodzące nowe wydanie ma bardziej inteligentne podejście. Cytując informacje o wersji beta :
Zastąpienie parametru konfiguracji checkpoint_segments
z min_wal_size
i max_wal_size
(Heikki Linnakangas)
Umożliwia to przydzielenie dużej liczby plików WAL bez ich przechowywania, jeśli nie są potrzebne. W związku z tym wartość domyślna dla max_wal_size
została zwiększona do 1GB
.
Poza tym: liczba widoków jest mało istotna, nie zawierają one żadnych danych, tylko „przepis”, tj .: zapytanie i niektóre atrybuty widoku. W przypadku tego pytania liczy się tylko całkowity rozmiar pliku kopii zapasowej.