Server doesn't listen

Ich musste leider PostgeSQL 8.4 auf einem Windows Server 2003 neu installieren. Als Datensicherung möchte ich auf die aktuellere Filesystem-Sicherung zurück greifen. Nach der Installation erhalte ich die folgende Fehlermeldung, sobald ich versuche, die Datenbank in pgadmin zu verbinden:

Server doesn’t listen

The server doesn’t accept connections: the connection library reports

could not connect to server: Connection refused (0x0000274D/10061) Is the server running on host “127.0.0.1” and accepting TCP/IP connections on port 5432?


Benutzer und Port sind die gleichen, wie in der alten Datenbank. Nicht auszuschließen ist, dass sich das Passwort und/oder der Laufwerksbuchstabe geändert hat. Vor der Rücksicherung des File-Backups funktioniert die Verbindung der Datenbank, Firewall kann also ausgeschlossen werden. Der Localhost auf 127.0.0.1 kann ngepingt werden.

Gruß

Wolfgang Lucht

Deine Ausführungen geben aber keine Antwort auf die Fragen, die in der Fehlermeldung stehen. Ich wiederhole daher:

Is the server running on host "127.0.0.1" and accepting TCP/IP connections on port 5432?

Hint:

  • läuft der postmaster-Prozess?
  • lauscht er an 5432?

Andreas

Wenn die alte Datenbank überspielt ist, lässt sich der Postgres-Dienst nicht starten. Bei der Installation ist allerdings der Port 5432 angegeben worden, so dass er auf diesen lauschen würde, wenn der Dienst liefe.

Denn Kommentar von ads verstehe ich nicht, da ich den Beitrag erst heute gepostet habe und ich auch erst seit heute Morgen registriert bin, konnte mir akretschmer gestern noch nichts sagen.

Noch kurz hinterher:

wenn ich versuche, den Dienst manuell zu starten erhalte ich folgende Fehlermeldung:

Der Dienst “posgresql-8.4” auf “lokaler Computer” konnte nicht gestartet werden.
Fehler 1053: Der Dienst antwortete nicht rechtzeitig auf die Start- oder Steuerungsanforderung.


Wie gesagt, mit einer neuen Datenbank startet alles problem- aber auch nutzlos.

Das liegt mit hoher Wahrscheinlichkeit an einem Problem mit den Zugriffsrechten. Hast Du überprüft ob der Windows Benutzer postgres (bzw. der unter dem der Service gestartet wird) volle Zugriffsrechte auf das Daten-Verzeichniss und alle darunter liegenden?

Ich habe dem Benutzer postgres jetzt einen Vollzugriff auf das gesamte Datenverzeichnis erteilt. Ohne Erfolg. Danach habe ich den postgres-Benutzer zum Besitzer der Datenordner gemacht. Auch dies ist ohne Erfolg geblieben.

Wenn der Dienst nicht gestartet ist, läuft er nicht. Wenn er nicht läuft, lauscht er nicht. Nirgends.

Ach ja: ads sein Kommentar ist eine Signatur.


Andreas

Mit dem Kommentar habe ich verstanden ;-), aber das mit dem Dienst nicht. Logisch kann er nicht lauschen wenn er nicht läuft. Aber wie kriege ich ihn ans laufen???

Gruß

Wolfgang

Sind den im logfile irgendwelche Fehlermeldung zu sehen.

Du könntest den Server auch mal manuell von der Kommandozeile aus starten (der komplette Befehl ist in der Definition des Service zu sehen) vielleicht siehst Du dann mehr.

Beim überprüfen der Befehlszeile habe ich festgestellt, das hier der Pfad der Datenbank auf einem falschen Laufwerk steht. Ich habe dann in der Kommandozeile den Pfad korrigiert. Hier erhalte ich dann den Fehlercode 1063. ( pg_ctl_ konntet Service >>postgresql-8.4<< nicht starten).

Das Logfile finde ich leider nicht. Kann mir jemand einen Tipp geben, wohin postgres dies schreibt?

Gruß

Wolfgang

Und hast Du mal versucht den Server direkt via pg_ctl auf der Kommandozeile zu starten?

Das Logfile finde ich leider nicht. Kann mir jemand einen Tipp geben, wohin postgres dies schreibt?

$PGDATA/log bzw. was immer Du in postgresql.conf eingetragen hast (parameter log_directory).
Siehe: PostgreSQL: Documentation: Manuals: PostgreSQL 9.0: Error Reporting and Logging


Gruß

Wolfgang[/QUOTE]

Ich habe jetzt die Log-Konfiguration wie folgt angepasst, trotzdem bekomme ich keinen Logfile:

#------------------------------------------------------------------------------

ERROR REPORTING AND LOGGING

#------------------------------------------------------------------------------

- Where to Log -

log_destination = ‘csvlog’ # 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 = on # 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 = ‘d:\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_truncate_on_rotation = off # If on, an existing log file of 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.

#log_rotation_age = 1d # Automatic rotation of logfiles will

happen after that time. 0 disables.

#log_rotation_size = 10MB # Automatic rotation of logfiles will

happen after that much log output.

0 disables.

These are relevant when logging to syslog:

#syslog_facility = ‘LOCAL0’
#syslog_ident = ‘postgres’

#silent_mode = off # Run server silently.

DO NOT USE without syslog or

logging_collector

(change requires restart)


\

- When to Log -

client_min_messages = debug1 # values in order of decreasing detail:

debug5

debug4

debug3

debug2

debug1

log

notice

warning

error

log_min_messages = debug1 # values in order of decreasing detail:

debug5

debug4

debug3

debug2

debug1

info

notice

warning

error

log

fatal

panic

log_error_verbosity = default # terse, default, or verbose messages

log_min_error_statement = error # values in order of decreasing detail:

debug5

debug4

debug3

debug2

debug1

info

notice

warning

error

log

fatal

panic (effectively off)

#log_min_duration_statement = -1 # -1 is disabled, 0 logs all statements

and their durations, > 0 logs only

statements running at least this number

of milliseconds


\

- What to Log -

#debug_print_parse = off
#debug_print_rewritten = off
#debug_print_plan = off
#debug_pretty_print = on
#log_checkpoints = off
#log_connections = off
#log_disconnections = off
#log_duration = off
#log_hostname = off
log_line_prefix = '%t ’ # special values:

%u = user name

%d = database name

%r = remote host and port

%h = remote host

%p = process ID

%t = timestamp without milliseconds

%m = timestamp with milliseconds

%i = command tag

%c = session ID

%l = session line number

%s = session start timestamp

%v = virtual transaction ID

%x = transaction ID (0 if none)

%q = stop here in non-session

processes

%% = ‘%’

e.g. '<%u%%%d> ’

#log_lock_waits = off # log lock waits >= deadlock_timeout
#log_statement = ‘none’ # none, ddl, mod, all
#log_temp_files = -1 # log temporary files equal or larger

than the specified size in kilobytes;

-1 disables, 0 logs all temp files

#log_timezone = unknown # actually, defaults to TZ environment

setting

Und hast Du mal versucht den Server direkt via pg_ctl auf der Kommandozeile zu starten?

Ja habe ich in der DOS-Box gemacht. Der Fehler ändert sich nur von 1053 auf 1063. Sonst ändert sich nichts.

Wolfgang

Zwischendurch mal ein kleines Dankeschön, an alle die sich hier soviel Mühe machen.

Gruß

Wolfgang

Ich meinte nicht sowas wie “net start PostgreSQL”, sonder wirklich mit pg_ctl (und natürlich allen Parametern die auch im Service verwendet werden). Da muss was anderes als nur “1063” kommen

Ach nochwas: hast Du mal einen eventuell installierten Virenscanner abgeschaltet (oder besser noch de-installiert)?

Ich habe den Befehl:
“c:/program files (x86=/postgresql/8.4/bin/pg_ctl.exe” runservice -N “postgresql-8.4” -D “E:\ecoDMS.SQL” w

in die Eingabeaufforderung eingegeben. (genau so stand er in den Diensten). Zurück bekommen habe ich
pg_ctl_ konntet Service >>postgresql-8.4<< nicht starten. Fehlercode 1063

leider nicht mehr.

Firewall und AV war das erste, was ich versucht hatte, als es nicht funktionierte.

Danke

Wolfgang

Ich weiß nicht, ob das hilfreich ist:

wenn ich den ‘base’-Ordner in die neue Datenstruktur kopiere startet, der Dienst noch. Sobald ich aber global einfüge, erhalte ich wieder die Fehlermeldung.

Gruß

Wolfgang

Das startet auch den Service.
Der Service soll eben genau nicht gestartet werden, sondern “einfach” nur Postgres:

pg_ctl.exe -w -D E:\ecoDMS.SQL  start