Postgres Fehler

Hallo,

unser UCS Server sendet seit heute imer diese E-Mail:

[code]Traceback (most recent call last):
File “/usr/sbin/univention-pkgdb-scan”, line 37, in
univention.pkgdb.main()
File “/usr/lib/pymodules/python2.7/univention/pkgdb.py”, line 536, in main
connection = open_database_connection(config_registry, pkgdbu=True)
File “/usr/lib/pymodules/python2.7/univention/pkgdb.py”, line 521, in open_database_connection
connection = pgdb.connect(database=connectstring)
File “/usr/lib/python2.7/dist-packages/pgdb.py”, line 482, in connect
dbtty, dbuser, dbpasswd)
pg.InternalError: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket “/var/run/postgresql/.s.PGSQL.5432”?

check the postgres installation, the command ‘univention-pkgdb-scan --test-superuser’ failed

[/code]

Was kann ich tun?

Hi Maro, da müssen wir uns rantasten :slight_smile:

Vorab: Habt ihr ein manuelles Upgrade von PostgreSQL getätigt von 8.4 auf 9.1 oder von 8.3 auf 8.4?
Welche sonstigen Informationen kannst du zur Rolle des UCS nennen (Software-Stand etc)?

Für den Anfang:
Was bringen folgende Befehle für Ausgaben?

$ univention-pkgdb-check
$ univention-pkgdb-scan
$ dpkg --configure -a

[quote]root@ucs:~# univention-pkgdb-check
Traceback (most recent call last):
File “/usr/sbin/univention-pkgdb-scan”, line 37, in
univention.pkgdb.main()
File “/usr/lib/pymodules/python2.7/univention/pkgdb.py”, line 536, in main
connection = open_database_connection(config_registry, pkgdbu=True)
File “/usr/lib/pymodules/python2.7/univention/pkgdb.py”, line 521, in open_database_connection
connection = pgdb.connect(database=connectstring)
File “/usr/lib/python2.7/dist-packages/pgdb.py”, line 482, in connect
dbtty, dbuser, dbpasswd)
pg.InternalError: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket “/var/run/postgresql/.s.PGSQL.5432”?

check the postgres installation, the command ‘univention-pkgdb-scan --test-superuser’ failed
root@ucs:~# univention-pkgdb-scan
Traceback (most recent call last):
File “/usr/sbin/univention-pkgdb-scan”, line 37, in
univention.pkgdb.main()
File “/usr/lib/pymodules/python2.7/univention/pkgdb.py”, line 538, in main
connection = open_database_connection(config_registry, pkgdbu=False)
File “/usr/lib/pymodules/python2.7/univention/pkgdb.py”, line 521, in open_database_connection
connection = pgdb.connect(database=connectstring)
File “/usr/lib/python2.7/dist-packages/pgdb.py”, line 482, in connect
dbtty, dbuser, dbpasswd)
pg.InternalError: could not connect to server: Connection refused
Is the server running on host “ucs.muni.local” (192.168.155.5) and accepting
TCP/IP connections on port 5432?

root@ucs:~# dpkg --configure -a
root@ucs:~#
root@ucs:~#
[/quote]

Ok, war zu vermuten.

Läuft dein PSQL Server?

netstat -tulpen | grep postgres

Falls nicht:

service postgresql restart

Kannst du die Join Skripte hier über die Oberfläche anstarten/erzwingen?
40univention-postgresql
und
50univention-pkgdb

und danach

service postgresql restart

Was bringt die Ausgabe von

dpkg -l '*postgres*'

Beim Join bekomme ich einen Fehler:

[code]univention-run-join-scripts started
Di 24. Nov 15:05:27 CET 2015

RUNNING 40univention-postgresql.inst
2015-11-24 15:05:27.219912600+01:00 (in joinscript_init)
File: /etc/postgresql/pam_ldap.conf
2015-11-24 15:05:27.283433442+01:00 (in joinscript_save_current_version)
EXITCODE=0
RUNNING 50univention-pkgdb.inst
2015-11-24 15:05:27.301952927+01:00 (in joinscript_init)
Traceback (most recent call last):
File “/usr/sbin/univention-pkgdb-scan”, line 37, in
univention.pkgdb.main()
File “/usr/lib/pymodules/python2.7/univention/pkgdb.py”, line 536, in main
connection = open_database_connection(config_registry, pkgdbu=True)
File “/usr/lib/pymodules/python2.7/univention/pkgdb.py”, line 521, in open_database_connection
connection = pgdb.connect(database=connectstring)
File “/usr/lib/python2.7/dist-packages/pgdb.py”, line 482, in connect
dbtty, dbuser, dbpasswd)
pg.InternalError: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket “/var/run/postgresql/.s.PGSQL.5432”?

EXITCODE=1

Di 24. Nov 15:05:27 CET 2015
univention-run-join-scripts finished
[/code]

Dienste neu starten funkioniert:
root@ucs:~# service postgresql restart
[ ok ] Restarting PostgreSQL 8.4 database server:.

Dienst läuft nicht:
root@ucs:~# netstat -tulpen | grep postgres
root@ucs:~#

root@ucs:~# dpkg -l ‘postgres
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten
| Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/
Halb installiert/Trigger erWartet/Trigger anhängig
|/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht)
||/ Name Version Architektur Beschreibung
++±=====================================-=======================-=======================-================================================================================
un akonadi-backend-postgresql (keine Beschreibung vorhanden)
un librdf-storage-postgresql (keine Beschreibung vorhanden)
un odbc-postgresql (keine Beschreibung vorhanden)
ii postgresql 9.1+134.23.201409242249 all object-relational SQL database (supported version)
un postgresql-7.4 (keine Beschreibung vorhanden)
un postgresql-8.0 (keine Beschreibung vorhanden)
un postgresql-8.3 (keine Beschreibung vorhanden)
pi postgresql-8.4 8.4.22lts1-0.23.2015031 amd64 object-relational SQL database, version 8.4 server
ii postgresql-9.1 9.1.16-0.9.201509171755 amd64 object-relational SQL database, version 9.1 server
ii postgresql-client 9.1+134.23.201409242249 all front-end programs for PostgreSQL (supported version)
ii postgresql-client-8.4 8.4.22lts1-0.23.2015031 amd64 front-end programs for PostgreSQL 8.4
ii postgresql-client-9.1 9.1.16-0.9.201509171755 amd64 front-end programs for PostgreSQL 9.1
ii postgresql-client-common 134.23.201409242249 all manager for multiple PostgreSQL client versions
ii postgresql-common 134.23.201409242249 all PostgreSQL database-cluster manager
un postgresql-contrib (keine Beschreibung vorhanden)
un postgresql-contrib-9.1 (keine Beschreibung vorhanden)
un postgresql-doc (keine Beschreibung vorhanden)
un postgresql-doc-8.4 (keine Beschreibung vorhanden)
un postgresql-doc-9.1 (keine Beschreibung vorhanden)
un postgresql-plpython-9.1 (keine Beschreibung vorhanden)
ii univention-postgresql 7.0.0-4.74.201407211112 all UCS - postgresql configuration
root@ucs:~#

was sagen die Logs? Irgenwas markantes?

/var/log/postgresql/

passt nicht so gut zu

Das Upgrade ist nicht so wirklich vollzogen worden.
Hilft dir der Artikel weiter? sdb.univention.de/1292
Bitte auf die Ausgabe der Befehle achten.

Hier mal die Ausgabe:

[code]root@ucs:~# [ -f /usr/sbin/univention-pkgdb-scan ] &&

chmod -x /usr/sbin/univention-pkgdb-scan
root@ucs:~# service postgresql stop
[ ok ] Stopping PostgreSQL 8.4 database server:.
root@ucs:~# rm -rf /etc/postgresql/9.1
root@ucs:~# apt-get install --reinstall postgresql-9.1
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen… Fertig
0 aktualisiert, 0 neu installiert, 1 erneut installiert, 0 zu entfernen und 2 nicht aktualisiert.
Es müssen 3.275 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 0 B Plattenplatz zusätzlich benutzt.
Holen: 1 http://updates.software-univention.de/4.0/maintained/ 4.0-4/amd64/ postgresql-9.1 9.1.16-0.9.201509171755 [3.275 kB]
Es wurden 3.275 kB in 5 s geholt (554 kB/s).
(Lese Datenbank … 240137 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Ersetzen von postgresql-9.1 9.1.16-0.9.201509171755 (durch …/postgresql-9.1_9.1.16-0.9.201509171755_amd64.deb) …
update-alternatives: /usr/share/postgresql/8.4/man/man1/postmaster.1.gz wird verwendet, um /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) im Auto-Modus bereitzustellen
Ersatz für postgresql-9.1 wird entpackt …
postgresql-9.1 (9.1.16-0.9.201509171755) wird eingerichtet …
update-alternatives: /usr/share/postgresql/9.1/man/man1/postmaster.1.gz wird verwendet, um /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) im Auto-Modus bereitzustellen
root@ucs:~# pg_dropcluster 9.1 main --stop
Error: specified cluster does not exist
root@ucs:~# service postgresql start
[ ok ] Starting PostgreSQL 8.4 database server:.
root@ucs:~# pg_upgradecluster 8.4 main
Error: specified cluster does not exist
root@ucs:~# ucr commit /etc/postgresql/9.1/main/*
root@ucs:~# chown -R postgres:postgres /var/lib/postgresql/9.1
root@ucs:~# service postgresql restart
[ ok ] Restarting PostgreSQL 8.4 database server:.
root@ucs:~# [ -f /usr/sbin/univention-pkgdb-scan ] &&
chmod +x /usr/sbin/univention-pkgdb-scan
root@ucs:~#

[/code]

Hattest du etwas in den Logs gefunden für die weitere Suche?

/var/log/postgresql/

Das Cluster kannst du an der Stelle dann wohl nur selber anlegen:

/usr/bin/pg_createcluster -u postgres 9.1 main
ucr commit /etc/postgresql/9.1/main/*
pg_ctlcluster 9.1 main restart

Dann besteht da noch das Problem mit dem PostgreSQL 8.4, der nicht deinstalliert ist…
Das ginge via:

dpkg -P postgresql-8.4

Danach bestand bei mir glaube wieder ein Abhängigkeitsproblem… Vorsicht, das konstruiere ich jetzt im Kopf, kann es nicht mehr nachstellen:
Vermutlich bringt dir dann

dpkg --configure -a

erneut Fehler, weil er entweder univention-postgresql-8.4 oder 9.1 vorraussetzt, die beide nicht vollständig installiert sind… Da habe ich mir behelfsweise das Deb von Univention geladen und installiert

wget http://updates.software-univention.de/4.1/maintained/4.1-0/all/univention-postgresql-9.1_8.0.0-10.85.201511131445_all.deb
dpkg -i univention-postgresql-9.1_8.0.0-10.85.201511131445_all.deb
apt-get install --reinstall postgresql-9.1
dpkg --configure -a

Hallo,

im Log habe ich leider nichts stehen. Anbei mal der ganze vorgang:

[code]root@ucs:~# cd /var/log/postgresql/
root@ucs:/var/log/postgresql# ls

root@ucs:/var/log/postgresql# /usr/bin/pg_createcluster -u postgres 9.1 main
Configuring already existing cluster (configuration: /etc/postgresql/9.1/main, data: /var/lib/postgresql/9.1/main, owner: 114:124)
Error: move_conffile: required configuration file /var/lib/postgresql/9.1/main/postgresql.conf does not exist

root@ucs:/var/log/postgresql# ucr commit /etc/postgresql/9.1/main/*

root@ucs:/var/log/postgresql# pg_ctlcluster 9.1 main restart
Error: specified cluster does not exist
root@ucs:/var/log/postgresql# dpkg -P postgresql-8.4
dpkg: Warnung: Die Anforderung, postgresql-8.4 zu entfernen, wird ignoriert; es ist nicht installiert

root@ucs:/var/log/postgresql# dpkg --configure -a

root@ucs:/var/log/postgresql# wget http://updates.software-univention.de/4.1/maintained/4.1-0/all/univention-postgresql-9.1_8.0.0-10.85.201511131445_all.deb
–2015-11-25 15:07:24-- http://updates.software-univention.de/4.1/maintained/4.1-0/all/univention-postgresql-9.1_8.0.0-10.85.201511131445_all.deb
Auflösen des Hostnamen »updates.software-univention.de (updates.software-univention.de)«… 176.9.114.147, 2a01:4f8:151:6489::2
Verbindungsaufbau zu updates.software-univention.de (updates.software-univention.de)|176.9.114.147|:80… verbunden.
HTTP-Anforderung gesendet, warte auf Antwort… 200 OK
Länge: 15018 (15K) [application/x-debian-package]
In »»univention-postgresql-9.1_8.0.0-10.85.201511131445_all.deb«« speichern.

100%[=============================================================================================>] 15.018 --.-K/s in 0,02s

2015-11-25 15:07:24 (883 KB/s) - »»univention-postgresql-9.1_8.0.0-10.85.201511131445_all.deb«« gespeichert [15018/15018]

root@ucs:/var/log/postgresql# dpkg -i univention-postgresql-9.1_8.0.0-10.85.201511131445_all.deb
Vormals nicht ausgewähltes Paket univention-postgresql-9.1 wird gewählt.
dpkg: Betreffend univention-postgresql-9.1_8.0.0-10.85.201511131445_all.deb, welches univention-postgresql-9.1 enthält:
univention-postgresql-9.1 beschädigt univention-bacula (<< 7.0.1-2)
univention-bacula (Version 6.0.0-1.15.201410151624) ist vorhanden und installiert.

dpkg: Fehler beim Bearbeiten von univention-postgresql-9.1_8.0.0-10.85.201511131445_all.deb (–install):
Installation von univention-postgresql-9.1 würde univention-bacula beschädigen, und
Dekonfiguration ist nicht erlaubt (–auto-deconfigure könnte helfen)
Fehler traten auf beim Bearbeiten von:
univention-postgresql-9.1_8.0.0-10.85.201511131445_all.deb

root@ucs:/var/log/postgresql# apt-get install --reinstall postgresql-9.1
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen… Fertig
0 aktualisiert, 0 neu installiert, 1 erneut installiert, 0 zu entfernen und 2 nicht aktualisiert.
Es müssen noch 0 B von 3.275 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 0 B Plattenplatz zusätzlich benutzt.
(Lese Datenbank … 239957 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Ersetzen von postgresql-9.1 9.1.16-0.9.201509171755 (durch …/postgresql-9.1_9.1.16-0.9.201509171755_amd64.deb) …
Ersatz für postgresql-9.1 wird entpackt …
postgresql-9.1 (9.1.16-0.9.201509171755) wird eingerichtet …
update-alternatives: /usr/share/postgresql/9.1/man/man1/postmaster.1.gz wird verwendet, um /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) im Auto-Modus bereitzustellen
Traceback (most recent call last):
File “/usr/sbin/univention-pkgdb-scan”, line 37, in
univention.pkgdb.main()
File “/usr/lib/pymodules/python2.7/univention/pkgdb.py”, line 538, in main
connection = open_database_connection(config_registry, pkgdbu=False)
File “/usr/lib/pymodules/python2.7/univention/pkgdb.py”, line 521, in open_database_connection
connection = pgdb.connect(database=connectstring)
File “/usr/lib/python2.7/dist-packages/pgdb.py”, line 482, in connect
dbtty, dbuser, dbpasswd)
pg.InternalError: could not connect to server: Connection refused
Is the server running on host “ucs.test.lan” (192.168.10.1) and accepting
TCP/IP connections on port 5432?

root@ucs:/var/log/postgresql# dpkg --configure -a
[/code]

Ich hoffe, Sie brauchten keine der Daten aus den Datenbanken, denn die dürften inzwischen alle flöten sein.

Schauen Sie doch mal nach, was in /etc/postgresql/9.1 liegt. Das sollte auch aufgeräumt werden, bevor Sie versuchen, einen neuen Cluster einzurichten. Also grob die folgenden Befehle in dieser Reihenfolge:

[code]service postgresql stop
cd /etc/postgresql
rm -rf 9.1
cd /var/lib/postgresql
rm -rf 9.1

/usr/bin/pg_createcluster -u postgres 9.1 main

ucr commit /etc/postgresql/9.1/main/*

pg_ctlcluster 9.1 main restart

univention-pkgdb-scan[/code]

Hallo,

was für Daten sind denn im Postresql enthalten? Wir nutzen vom UCS nur Zarafa und Owncloud. Bisher vermisse ich keine Daten.

Anbei die Ausgabe, kein Fehler bis auf den letzten Befehl:

root@ucs:~# service postgresql stop
root@ucs:~# cd /etc/postgresql
root@ucs:/etc/postgresql#
root@ucs:/etc/postgresql# rm -rf 9.1
root@ucs:/etc/postgresql#
root@ucs:/etc/postgresql# cd /var/lib/postgresql
root@ucs:/var/lib/postgresql# rm -rf 9.1
root@ucs:/var/lib/postgresql# /usr/bin/pg_createcluster -u postgres 9.1 main
Creating new cluster (configuration: /etc/postgresql/9.1/main, data: /var/lib/postgresql/9.1/main)…
Moving configuration file /var/lib/postgresql/9.1/main/postgresql.conf to /etc/postgresql/9.1/main…
Moving configuration file /var/lib/postgresql/9.1/main/pg_hba.conf to /etc/postgresql/9.1/main…
Moving configuration file /var/lib/postgresql/9.1/main/pg_ident.conf to /etc/postgresql/9.1/main…
Configuring postgresql.conf to use port 5432…
root@ucs:/var/lib/postgresql# ucr commit /etc/postgresql/9.1/main/*
Multifile: /etc/postgresql/9.1/main/pg_ident.conf
Multifile: /etc/postgresql/9.1/main/pg_hba.conf
File: /etc/postgresql/9.1/main/postgresql.conf
root@ucs:/var/lib/postgresql#
root@ucs:/var/lib/postgresql# pg_ctlcluster 9.1 main restart
root@ucs:/var/lib/postgresql# univention-pkgdb-scan
Traceback (most recent call last):
File “/usr/sbin/univention-pkgdb-scan”, line 37, in
univention.pkgdb.main()
File “/usr/lib/pymodules/python2.7/univention/pkgdb.py”, line 538, in main
connection = open_database_connection(config_registry, pkgdbu=False)
File “/usr/lib/pymodules/python2.7/univention/pkgdb.py”, line 521, in open_database_connection
connection = pgdb.connect(database=connectstring)
File “/usr/lib/python2.7/dist-packages/pgdb.py”, line 482, in connect
dbtty, dbuser, dbpasswd)
pg.InternalError: FATAL: kein pg_hba.conf-Eintrag f?r Host >>192.168.10.1<<, Benutzer >>ucs$<<, Datenbank >>pkgdb<<, SSL an

Welche Daten in PostgreSQL stehen? Das hängt davon ab, welche Pakete Sie nutzen und wie diese konfiguriert sind…

Auf gut Deutsch: Sie haben bisher Glück, dass bis auf die Paketdatenbank wohl noch nichts weg ist.

Zur Paketdatenbank. Wir haben jetzt einen neuen Cluster, aber anscheinend noch keine Paket-DB. Ich weiß gerade nicht, wann die Paket-DB angelegt wird. Falls Sie die Paketdatenbank nicht nutzen (die wird benutzt, um in der UDM anzuzeigen, auf welchem Server welche Pakete installiert sind), können Sie die auch deinstallieren, damit verschwinden dann auch diese Fehlermeldungen. Das geht einfach mit »apt-get purge univention-pkgdb«.

Falls Sie die Paketdatenbank doch nutzen wollen, wäre das Entfernen trotzdem mein Ratschlag – mit nachfolgendem Neuinstallieren desselben Pakets, da ich vermute, dass während der Installation von univention-pkgdb die eigentliche Datenbank angelegt wird. Anschließend sollten Sie auch noch mal die Domänen-Join-Scripte laufen lassen: »univention-run-join-scripts«.

Mastodon