ich habe nach einem regulären Update eine Fehlermeldung erhalten.
Der Fehler ist “auf dem Weg” von Update UCS 4.0-1 errata146 bis 4.0-1 errata160 aufgetreten.
Im Anhang die Logfile des Updates. Kurz vor Ende wird in einer Fehlermeldung auf einen Error des postgresql-9.1 Moduls verwiesen.
Die Ausgabe von “service postgresql status” ergibt:
Running clusters: 8.4/main
Running clusters:
Welche Module des UCS Servers nutzen postgresql?
Was können wir tun, um den Fehler zu beheben?
Bisher haben wir vermieden weitere Update zu installieren.
Nun hat er beim apt-get install --reinstall befehl folgenden Internal Error:
root@ucs:~# service postgresql stop
[ ok ] Stopping PostgreSQL 8.4 database server: main.
[ ok ] Stopping PostgreSQL 9.1 database server: main.
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 48 nicht aktualisiert.
1 nicht vollständig installiert oder entfernt.
Nach dieser Operation werden 0 B Plattenplatz zusätzlich benutzt.
N: Datei »20_ucs-online-component.list__ucr__commit__0.886708980146« in Verzeichnis »/etc/apt/sources.list.d/« wird ignoriert, da sie eine ungültige Dateinamen-Erweiterung hat.
N: Datei »20_ucs-online-component.list__ucr__commit__0.886708980146« in Verzeichnis »/etc/apt/sources.list.d/« wird ignoriert, da sie eine ungültige Dateinamen-Erweiterung hat.
E: Internal Error, No file name for postgresql-9.1:amd64
root@ucs:~# apt-get install --reinstall postgresql-9.1
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Erneute Installation von postgresql-9.1 ist nicht möglich,
es kann nicht heruntergeladen werden.
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
1 nicht vollständig installiert oder entfernt.
Nach dieser Operation werden 0 B Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren [J/n]? J
postgresql-9.1 (9.1.15-0.7.201503031519) wird eingerichtet ...
Traceback (most recent call last):
File "/usr/sbin/univention-pkgdb-scan", line 37, in <module>
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.[...entfernt...]" ([...entfernt...]) and accepting
TCP/IP connections on port 5432?
Adresse und Port stimmt mit der in der postgresql.conf der Postgresql Version von 8.4 überein…
Die Paketdatenbank benutzt PostgreSQL; während PostgreSQL aktualisiert wird, ist schon klar, dass die nicht funktioniert. Sie müssen die Schritte durchführen, die auch Herr Petersen verlinkt hat, genauer: die in Updating from PostgreSQL 8.4 to PostgreSQL 9.1 beschrieben sind. Dort wird z.B. zuerst die Ausführ-Berechtigung vom Paketdatenbank-Script entfernt, sodass es eigentlich nicht hätte ausgeführt werden sollen.
Einzele Befehle dieser Anleitung können durchaus mit Fehlern fehlschlagen, besonders, wenn 9.1 überhaupt noch nicht richtig installiert war. Dadurch nicht verunsichern lassen. Wichtig ist, dass ab »pg_upgradecluster…« alles funktioniert.
Falls nicht: bitte pasten Sie die komplette Ein- und Ausgabe aller Befehle, die in Updating from PostgreSQL 8.4 to PostgreSQL 9.1 beschrieben sind, damit wir sehen können, wo es genau hakt.
Vielen Dank für Ihre Mühe und Hilfe.
Tatsächlich gibt leider immer noch einen Fehler.
root@ucs:~# chmod -x /usr/sbin/univention-pkgdb-scan
root@ucs:~# service postgresql stop
[ ok ] Stopping PostgreSQL 8.4 database server: main.
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
Erneute Installation von postgresql-9.1 ist nicht möglich,
es kann nicht heruntergeladen werden.
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
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: main.
root@ucs:~# pg_upgradecluster 8.4 main
Stopping old cluster...
Disabling connections to the old cluster during upgrade...
Restarting old cluster with restricted connections...
Configuring already existing cluster (configuration: /etc/postgresql/9.1/main, data: /var/lib/postgresql/9.1/main, owner: 118:124)
Error: move_conffile: required configuration file /var/lib/postgresql/9.1/main/postgresql.conf does not exist
Error: Could not create target cluster
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: main.
root@ucs:~# chmod +x /usr/sbin/univention-pkgdb-scan
root@ucs:~#
Probieren Sie die Schritte bitte erneut und löschen Sie neben /etc/postgresql/9.1 in dem Moment auch /var/lib/postgresql/9.1, sprich »rm -rf /etc/postgresql/9.1 /var/lib/postgresql/9.1«.
Hi, an der Stelle möchte ich noch darauf hinweisen, dass bei mir zusätzlich das Wiederanlegen mittels
/usr/bin/pg_createcluster -u postgres 9.1 main
ucr commit /etc/postgresql/9.1/main/*
notwendig war, damit postgresql wieder ansprechbar war. Ich hatte die Anleitung von http://sdb.univention.de/1292 als Skript ausgeführt, so dass Tippfehler eigentlich ausgeschlossen sein sollten. Ich nehme an, dass der Befehl
pg_upgradecluster 8.4 main
ucr commit /etc/postgresql/9.1/main/*
das hätte erledigen sollen?
Mir fiel der nicht aktive Postgresql erst gar nicht auf, ich konnte munter diverse Packages updaten usw. Ist es nun möglich/notwendig die Paketdatenbank “aufzufrischen”?
ja, pg_upgradecluster sollte die Daten des alten Clusters nehmen, einen neuen anlegen und die Daten im neuen Importieren. Wenn das nicht geschehen ist, dann sollte pg_upgradecluster auch entsprechende Meldungen ausgegeben haben.
Zum Auffrischen der Paketdatenbank gibt es den Befehl »univention-pkgdb-scan«. Dieser muss, so meine ich zumindest, auf jedem Server einmal ausgeführt werden.