Postgres startet nicht

irgendwie macht mir ein System mit Postgres Sorgen. Wenn ich es versuche Postgres normal zu starten, passiert nix, aber auch gar nichts


thomas@cubox:~$ sudo /etc/init.d/postgresql-8.4 start
thomas@cubox:~$

Einmal, das erste und einzige Mal bisher, habe ich die Postgres mit


/usr/lib/postgresql/8.4/bin/initdb -D /var/lib/postgresql/8.4/main

zum Laufen gebracht. Aber ich kann ja nicht nach jedem Reboot die DB löschen und neu aufsetzen. Hat jemand eine Idee? Ich finde auch in den Logs nichts. Unter /var/log/postgresql gibts gar keine Datei und in den anderen finde ich keinen Anhaltspunkt…vielleicht habe ich nur in den falschen Logs geschaut

merkwürdig. könntest mal in /var/log/syslog nachsehen. da steht ja fast alles drin was so anfällt. gerade dann wenn prozesse probleme haben.

ansonsten (sorry) platte voll “df -k” ?

gruss
walter

p.s. bin erst ca 24:00 at home. also dürfte es wohl morgen weiter gehen

nix


thomas@cubox:/var/log$ sudo /etc/init.d/postgresql-8.4 start
thomas@cubox:/var/log$ tail /var/log/syslog
Jun 26 20:07:02 cubox kernel: [17136.798939] eth0: link up, 100 Mb/s, full duplex, flow control disabled
Jun 26 20:17:01 cubox CRON[779]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 26 20:33:12 cubox kernel: [18706.172022] eth0: link down
Jun 26 20:33:12 cubox NetworkManager: <info>  (eth0): carrier now OFF (device state 1)
Jun 26 20:33:14 cubox NetworkManager: <info>  (eth0): carrier now ON (device state 1)
Jun 26 20:33:14 cubox kernel: [18707.893848] eth0: link up, 100 Mb/s, full duplex, flow control disabled
Jun 26 20:55:45 cubox NetworkManager: <info>  (eth0): carrier now OFF (device state 1)
Jun 26 20:55:45 cubox kernel: [20058.987739] eth0: link down
Jun 26 20:55:46 cubox NetworkManager: <info>  (eth0): carrier now ON (device state 1)
Jun 26 20:55:46 cubox kernel: [20060.727737] eth0: link up, 100 Mb/s, full duplex, flow control disabled

Direkt nacheinander ausgeführt. (ignoriere mal den Netzwerkwackelkontakt)


thomas@cubox:/var/log$ df -kh
Dateisystem            Größe Benut  Verf Ben% Eingehängt auf
/                      15G  5,3G  8,6G  39% /
devtmpfs              312M  104K  312M   1% /dev
none                  312M     0  312M   0% /dev/shm
none                  312M   52K  312M   1% /var/run
none                  312M     0  312M   0% /var/lock
none                  312M     0  312M   0% /lib/init/rw

Nicht über die Plattengröße wundern. Ist ein Embedded System oder so. Es ging aber mal, wie oben geschrieben.

in der /var/lib/postgresql/8.4/main/postgresql.conf habe ich log_destination = ‘syslog’ anstatt ‘stderr’ geändert. trotzdem nichts.

schau mal in der /etc/postgresql/8.4/main/postgresql.conf was bei dir unter


#------------------------------------------------------------------------------
# ERROR REPORTING AND LOGGING
#------------------------------------------------------------------------------

# - Where to Log -

#log_destination = 'stderr'             # Valid values are combinations of
                                        # stderr, csvlog, syslog, and eventlog,
                                        # depending on platform.  csvlog
                                        # requires logging_collector to be on.

# This is used when logging to stderr:
#logging_collector = off                # Enable capturing of stderr and csvlog
                                        # into log files. Required to be on for
                                        # csvlogs.
                                        # (change requires restart)

# These are only used if logging_collector is on:
#log_directory = 'pg_log'               # directory where log files are written,
                                        # can be absolute or relative to PGDATA
#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'        # log file name pattern,
                                        # can include strftime() escapes
#log_file_mode = 0600                   # creation mode for log files,
                                        # begin with 0 to use octal notation
#log_truncate_on_rotation = off         # If on, an existing log file with the
                                        # same name as the new log file will be
                                        # truncated rather than appended to.
                                        # But such truncation only occurs on
                                        # time-driven rotation, not on restarts
                                        # or size-driven rotation.  Default is
                                        # off, meaning append to existing files
                                        # in all cases.


eingetragen ist (bsp.Config von der 9.1).

Trag mal bei log_destination testweise syslog ein und versuch dan nochmla den server zu starten.

#edit
ich geh mal von aus das es eine cubox ist oder? was hast du für ein Linux am start Debian/Ubuntu?

Grüße
Jens

:slight_smile: Danke
Unter /etc/postgresql/8.4/main/ gibts keine postgresql.conf
Unter /etc siehts bei mir so aus
root@cubox:/var/lib/postgresql/8.4/main# cd /etc/postgresql-common/
root@cubox:/etc/postgresql-common# ls
pg_upgradecluster.d root.crt user_clusters

Das Ding läuft unter dem Standard Ubuntu. Und wie gesagt, es lief ja. Die DB ist da, nur ich bekomme sie nicht gestartet

Wenn ich Postgres beim hochfahren zusehen will, melde ich mich als “postgres” an (oder mach ein “su -”) und dann ruf ich postmaster von Hand auf. Ein Start mit anschliessendem Anmeldeversuch sieht dann so aus:

postgres@offler:~$ /usr/lib/postgresql/8.4/bin/postmaster -d 2 -i -s -D /etc/postgresql/8.4/main/
2012-06-26 21:26:02 CEST DEBUG:  max_safe_fds = 984, usable_fds = 1000, already_open = 6
2012-06-26 21:26:02 CEST LOG:  Datenbanksystem wurde am 2012-06-26 21:25:49 CEST heruntergefahren
2012-06-26 21:26:02 CEST DEBUG:  Checkpoint-Eintrag ist bei 0/49C998
2012-06-26 21:26:02 CEST DEBUG:  Redo-Eintrag ist bei 0/49C998; Shutdown TRUE
2012-06-26 21:26:02 CEST DEBUG:  nächste Transaktions-ID: 0/656; nächste OID: 11565
2012-06-26 21:26:02 CEST DEBUG:  nächste MultiXactId: 1; nächster MultiXactOffset: 0
2012-06-26 21:26:02 CEST DEBUG:  Grenze für Transaktionsnummernüberlauf ist 2147484295, begrenzt durch Datenbank »template1«
2012-06-26 21:26:02 CEST LOG:  Autovacuum-Launcher startet
2012-06-26 21:26:02 CEST LOG:  Datenbanksystem ist bereit, um Verbindungen anzunehmen
2012-06-26 21:26:17 CEST LOG:  Verbindung empfangen: Host=127.0.0.1 port=54525
2012-06-26 21:26:17 CEST DEBUG:  forked new backend, pid=10338 socket=7

(“-d 2” heisst “debug level 2”, “-i” heisst “lausche auf TCP-Verbindungen”, “-s” heisst “zeige Statistik der Anfragen” und das hinter “-D” ist der Pfad, in dem die postgresql.conf liegt).

Vielleicht mault Deiner ja schon in den ersten paar Zeilen…

Grüße, Max

Der 8.4/Main Ordner ist leer? Führ mal ein


find / -name postresql.conf

Aus und Schau wo deine conf gelandet ist. Wennsein Std.ubuntu ist sollte die conf unter etc liegen.

perfekt.


postgres@cubox:/etc/postgresql-common$ /usr/lib/postgresql/8.4/bin/postmaster -d 2 -i -s -D /etc/postgresql/8.4/main/
postmaster kann nicht auf die Serverkonfigurationsdatei »/etc/postgresql/8.4/main/postgresql.conf« zugreifen: Datei oder Verzeichnis nicht gefunden

Also mal die conf Datei verschoben. Jetzt redet Postgres wenigstens mit mir


root@cubox:/etc/postgresql-common# /etc/init.d/postgresql-8.4 start
* Starting PostgreSQL 8.4 database server                                                                                                                               
* Error: Invalid data directory                    

Jetzt bin ich zu müde, den Rest mache ich morgen. Aber wenigstens redet das blöde Ding mal :slight_smile:

AUFWACHEN; ich bin jetzt @home

ok, spass beiseite.

Wo war den die postgresql.conf??? die sollte eigentlich da bleiben, sonst passt nix zusammen.

wie sieht es denn auf /etc/postgresql aus? da sollte /etc/postgresql/8.4 als directory sein. sein. sind da jetzt eventuell noch andere? klammheimlicher upgrade auf 9.x ???)
so sollte die struktur sein (stör dich nicht an 9.1, bei 8.4 steht da halt 8.4)


root@wno-server:/etc# du -a postgresql
8	postgresql/9.1/main/pg_hba.conf
4	postgresql/9.1/main/start.conf
20	postgresql/9.1/main/postgresql.conf
4	postgresql/9.1/main/pg_ident.conf
4	postgresql/9.1/main/environment
4	postgresql/9.1/main/pg_ctl.conf
48	postgresql/9.1/main
52	postgresql/9.1
56	postgresql

und in postgresql.conf steht drin, wo die daten liegen (sollen)

gruss
walter

p.s. was hälst du von der windows-methode? (alle Fenster zu, Neuinstallation, Fenster auf) und dann bitte 9.1.
Irgendwie ist da alles verbogen auf der Kiste.

Ich würde auch lieber die richtige .conf suchen, wer weiss, wo die in /var/lib/ her ist. Falls Du keine findest, ich hab hier eine fast unbenutzte 8.4er rumliegen… Wenn man die ganzen Kommentare wegmacht, bleibt das da übrig:

data_directory = '/var/lib/postgresql/8.4/main'
hba_file = '/etc/postgresql/8.4/main/pg_hba.conf'
ident_file = '/etc/postgresql/8.4/main/pg_ident.conf'
external_pid_file = '/var/run/postgresql/8.4-main.pid'
port = 5432
max_connections = 100
unix_socket_directory = '/var/run/postgresql'
ssl = true
shared_buffers = 32MB
log_line_prefix = '%t '
datestyle = 'iso, dmy'
lc_messages = 'de_DE.UTF-8'
lc_monetary = 'de_DE.UTF-8'
lc_numeric = 'de_DE.UTF-8'
lc_time = 'de_DE.UTF-8'
default_text_search_config = 'pg_catalog.german'

Die war unter /usr/share/postgresql/8.4/postgresql.conf. Sorry, ich habe sie kopiert. Achso, jetzt gibts bei diese postgresql.conf
/etc/postgresql/8.4/main/postgresql.conf
/usr/share/postgresql/8.4/postgresql.conf
/var/lib/postgresql/8.4/main/postgresql.conf

nur 8.4

Selbst nach der Installation war das so. Und was anderes als 8.4 gibts nicht für diese Platform

ssl = off ← Habe (noch) kein Zertifikat, er bricht den Start mit konnte Serverzertifikatsdatei >>server.crt<< nicht laden: No such file or directory ab

shared_buffer =32MB ← mag er nicht: konnte Shared-Memory-Segment nicht erzeugen: Das Argument ist ung?ltig

hba_file = ‘/var/lib/postgresql/8.4/main/pg_hba.conf’ ← liegt bei mir da

Jetzt gehts. Vielen Dank an Euch.