PostgreSQL 12 – co się stało z plikiem recovery.conf?

Pojawienie się dwunastej wersji serwera PostgreSQL spowodowało konieczność wprowadzenia poprawek do stosowanych przez nas procedur odtwarzania bazy danych po awarii! Przypomnijmy, że w wersjach PostgreSQL 8, 9, 10, i 11 odtwarzanie bazy danych w oparciu o archiwalne pliki WAL realizowaliśmy poprzez utworzenie w katalogu Data Directory pliku o nazwie recovery.conf, a w nim – umieszczenie parametru restore_command. Parametr ten wskazywał sposób przywracania archiwalnych plików WAL z lokalizacji, w której pierwotnie były one zapisane. W chwili uruchamiania serwera, plik recovery.conf był automatycznie wykrywany i powodował przejście serwera w tryb aplikowania historycznych transakcji z archiwalnych plików WAL. Po zakończeniu procesu odtwarzania, plik recovery.conf zmieniał nazwę na recovery.done.

Począwszy od wersji PostgreSQL 12, parametr restore_command umieszczamy w głównym pliku parametrów (zwykle postgresql.conf w katalogu Data Directory), a do wyzwolenia trybu aplikowania historycznych transakcji z archiwalnych plików WAL służy teraz plik-marker o nazwie recovery.signal, który umieszczamy w katalogu Data Directory. Zawartość tego pliku jest nieistotna (zwykle tworzymy pusty plik), liczy się tylko jego obecność w chwili uruchamiania serwera. Po zakończeniu procesu odtwarzania, plik recovery.signal jest usuwany automatycznie.

Warto nadmienić, że w podobny sposób zmodyfikowano mechanizmy replikacji opartej o pliki WAL – tam również parametry konfiguracyjne (m.in. hot_standby, primary_conninfo, promote_trigger_file) umieszczamy teraz w głównym pliku konfiguracyjnym, a w celu aktywacji trybu replikacji umieszczamy w katalogu Data Directory plik-marker o nazwie standby.signal. Plik ten zniknie w chwili promocji serwera Standby  do roli Master.

Wzmianki na ten temat znajdują się w oficjalnej dokumentacji: PostgreSQL Documentation

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *