Z powodu nagłej awarii zasilania, serwer lokalny na mojej lokalnej maszynie nagle się wyłączył. Po ponownym uruchomieniu komputera, próbowałem ponownie uruchomić postgres i otrzymuję ten błąd:Jak naprawić PostgreSQL, aby zaczął się po nagłym wyłączeniu?
$ pg_ctl -D /usr/local/pgsql/data restart
pg_ctl: PID file "/usr/local/pgsql/data/postmaster.pid" does not exist
Is server running?
starting server anyway
server starting
$:/usr/local/pgsql/data$ LOG: database system shutdown was interrupted at 2009-02-28 21:06:16
LOG: checkpoint record is at 2/8FD6F8D0
LOG: redo record is at 2/8FD6F8D0; undo record is at 0/0; shutdown FALSE
LOG: next transaction ID: 0/1888104; next OID: 1711752
LOG: next MultiXactId: 2; next MultiXactOffset: 3
LOG: database system was not properly shut down; automatic recovery in progress
LOG: redo starts at 2/8FD6F918
LOG: record with zero length at 2/8FFD94A8
LOG: redo done at 2/8FFD9480
LOG: could not fsync segment 0 of relation 1663/1707047/1707304: No such file or directory
FATAL: storage sync failed on magnetic disk: No such file or directory
LOG: startup process (PID 5465) exited with exit code 1
LOG: aborting startup due to startup process failure
nie ma pliku w katalogu danych postmaster.pid
. Co może być przyczyną takiego zachowania i oczywiście, jakie jest wyjście?
Tak, wiesz, możliwe, że będziesz musiał przywrócić z kopii zapasowej. Ale zanim to zrobisz, podziel się z nami swoją wersją PostgreSQL (w wersji 8.1.5 i 8.1.6 IIRC wystąpił błąd powodujący ten błąd podczas odzyskiwania) i typ systemu plików (możesz chcieć to zmienić przed następnym przestojem). – vladr
Wskazówka: "restart", mówisz serwerowi PostgreSQL, że działa i trzeba go zrestartować. Nie działa, dlatego nie ma pliku identyfikatora procesu (.pid). – Kurt
Jakiej wersji Postgreszu używasz i jaki jest typ systemu plików dla '/ usr/local/pgsql/data'? – vladr