PGSQL - problem z uruchomieniem serwera (brak plików w katalogu xlog).

Dodano: 2009-10-26

W przypadku awarii serwera PostgreSQL należy sprawdzić plik z logami. Jeżeli błąd będzie się objawiał poniższym wpisem, postępuj zgodnie z punktami – może da się naprawić szkody ;-?:

2009-10-24 19:17:53 CEST LOG: database system was shut down at 2009-06-20 20:23:03 CEST
2009-10-24 19:17:53 CEST LOG: could not open file "pg_xlog/000000030000000100000094" (log file 1, segment 148): No such file or directory
2009-10-24 19:17:53 CEST LOG: invalid primary checkpoint record
2009-10-24 19:17:53 CEST LOG: could not open file "pg_xlog/000000030000000100000094" (log file 1, segment 148): No such file or directory
2009-10-24 19:17:53 CEST LOG: invalid secondary checkpoint record
2009-10-24 19:17:53 CEST PANIC: could not locate a valid checkpoint record

Problem ten wystąpić może na wskutek uszkodzenia plików w folderze ../data/pg_xlog (".." - ścieżka do folderu instalacyjnego serwera) lub ich usunięcia.

Środki naprawcze:
  1. Jeżeli usunąłeś pliki z katalogu ../data/pg_xlog to je po prostu przywróć, jeżeli to nie pomoże przejdź do następnego punktu.
  2. Uruchom cmd
  3. Następnie przejdź do katalogu z programem pg_resetxlog, znajduje się on w ../bin/pg_resetxlog.exe
  4. Uruchom program podając ścieżkę do katalogu pg_xlog, w przykładzie ścieżka do folderu jest następująca: c:\Program Files\postgresql\data\pg_xlog
    pg_restexlog c:\Program Files\postgresql\data\pg_xlog
  5. Zresetuj serwer PostgreSQL. Powinno działać.
Więcej informacji o programie pg_resetxlog uzyskasz wpisując komendę: pg_resetxlog --help