PostgreSQL: Wie anwerfen nach Absturz?

T

talla

Aktives Mitglied
Thread Starter
Dabei seit
03.10.2005
Beiträge
120
Reaktionspunkte
0
so, ich mal wieder. nach unterbrechung der stromzufuhr vom server (PostgreSQL 8 auf Linux) ist postgres quasi tot. beim hochfahren des rechners hab ich kurz was lesen koennen, was aussah wie
"postgresql schwallschwall [FAILED]"
(und mir schwante uebles)

das problem hatte ich schonmal + damals hat es jemand anders fuer mich geloest, aber ich brauch ne anleitung, sonst steh ich jedesmal wieder im dunkeln, wenn sowas passiert. ach ja, PID file existiert keins + was ich bisher auf www.postgresql.org zum thema postmaster, pg_ctl und initdb steht, bringt mich nicht weiter.
der versuch
wird beantwortet mit:
pg_ctl: cannot be run as root
Please log in (using, e.g., "su") as the (unprivileged) user that will own the server process.
ich hab zur auswahl: system-admin, 2 db-admin, normalo-user (sowohl system als auch db), bei allen versuchen immer dieselbe meldung.

bitte um anleitung! :(
 
postgres verlangt nach einem eigenen user ( meist heißt der auch postgres)!

Die Fehler vom Start kannst Du in

/var/log/warn
/var/log/messages

nachlesen oder mit dem Befehl dmesg nochmal anzeigen lassen! Im postgres reparieren bin ich aber leider nbicht bewandert!
 
Nun ja, MySQL startet ja auch nicht als root, sondern nur, wenn man das Prefix
--user=mysql angibt. Gibts da eventuell eine ähnliche Option, damit du PgSQL
mit den Rechten des standardmäßig bei der Installation angelegten Users "post-
gres" starten kannst?

Ich selbst habe da zwar keine Ahnung von, da ich das Kapitel PostgreSQL vor ge-
raumer Zeit aufgegeben habe, aber vielleicht bringts ja was ;)
 
@wegus + moses_78:
danke fuer eure rueckmeldungen!
unseren postgres-account (@moses: ja, diesen globalen user gibt's auch in postgresql) hat's leider verrissen; fing damit an, dass via shell "login postgres" nicht mehr tat ("user postgres unknown"), aber so dinge wie "psql -U postgres database_sowieso" ging erst noch, seit kurzem ist aber auch das nicht mehr moeglich und ich kann auf die dbs nur noch als einer der anderen db-administratoren zugreifen. deswegen haette ich erwartet, dass es zumindest mit einem davon funktioniert.

@wegus:
wonach muss ich denn in den logfiles suchen? hast du eine quelle, die mir beim dechiffrieren hilft?
 
Was heißt dechiffrieren? Die logfiles sind meist in englisch gehalten und sollten Dir Warnung bezüglich Benutzerkonten, Fehlern im Dateisystem,... melden. Das dürfte zur Ursache führen. Wenn es den Benutzer zerlegt hat: warum? Ist das Dateisystem evtl. defekt? All das dürfte dort enthalten sein und daher Wege zur Lösung aufzeigen!

Wie wäre es denn, wenn man einen neuen user anlegt (postgresneu) und dann alle DB-Dateien wieder diesem user zuordnet? Ich habe das noch nie probiert, aber vielleicht hiflt das?
 
wenn ich das ganze mit dmesg mache, bekomme ich x zeilen, die sehr aehnlich aussehen, ungefaehr so:
IN=eth0 OUT= MAC=ff:ff:ff:ff:ff:ff:00:14:51:2a:11:62:08:00 SRC=134.34.103.10 DST=134.34.103.255 LEN=156 TOS=0x00 PREC=0x00 TTL=64 ID=39040 PROTO=UDP SPT=631 DPT=631 LEN=136

darin kann ich keinen hinweis auf fehler erkennen (sieht fuer mich mal nach normalbetrieb aus); zu dem tag, an dem der fehler aufgetreten ist, finde ich seltsamerweise keinen eintrag - ??? d.h. ich hab in meinem /var/log eine reihe von eintraegen, die "message", "message.1" usw. heissen, jede dieser messages ist von einem weiter zurueckliegenden datum. bloss gibt es kein message-file, das zu dem absturz passt. abrupte unterbrechung der stromzufuhr sollte doch irgendwo auftauchen, oder?
 
die alten Dateien sind gezipped! In ihnen kannst Du per zgrep suchen. Also um alle Vorgänge vom 10.02.2006 zu finden:

zgrep "Feb 10 " message*

sollte alle message-Ausgabe zum 10.02. ausgeben. Wiederhol das ganze für /var/log/warn

per:

zgrep "Feb 10 " message* > fehlersuche.txt

kannst Du die Suchergebnisse auch in die Datei fehlersuche.txt schreiben lassen, statt das alle am Terminal vorbeirieselt!
 
ah, danke wegus!!! das ist genau die art info, die ich brauche. probier ich gleich aus...
 
hallo wegus,

vielen dank fuer deine tips bzgl. meiner letzten postgres-probleme! das mit dem "probier ich gleich aus" lief dann allerdings anders als erwartet. hab bei dem versuch, deinen rat zu befolgen, gemerkt, dass ich keinen blassen schimmer davon habe, wo wann was auf dem server geloggt wird, weder grundsaetzlich noch in diesem speziellen fall, + bin noch damit beschaeftigt, mir das noetige grundwissen anzulesen. mal sehen, ob ich noch dahinterkomme, was eigentlich los war...
 
talla schrieb:
Code:
pg_ctl start

Also ich starte PostgreSQL eigentlich so:
Code:
su postgres
/usr/local/postgresql/bin/pg_ctl -D /ordner/mit/den/datenbanken -l /pfad/logfile/zum/logfile start
 
hm. hat bislang immer einwandfrei mit "pg_ctl start/restart/stop" getan, aber die "-l"-option sollte ich das naechste mal mit verwenden; ganz uebersehen. der server laeuft uebrigens wieder; nach dem xten restart und aus reiner verzweiflung einen halben tag lang in ruhe lassen lief alles, als waere es nie anders gewesen.
bin gerade mehr mit der wiederbelebung von user postgres bzw. der suche nach dem grund fuer dessen scheintod beschaeftigt. mangels sachkenntnis werde ich etwas schnell paranoid :rolleyes:
 
Zurück
Oben Unten