Nach Upgrade auf UCS 4.0-0: Postgres-Update schlägt fehl

german

#1

Hallo,

beim Upgrade eines UCS 3.2-8 auf 4.0.0 funktioniert die in KB 1292 (http://sdb.univention.de/1292 beschriebene Migration von Postgres 8.4 auf 9.1 nicht.
Beide Versionen sind aber mit 3.2-8 installiert, aktiv läuft noch die 8.4:

root@ucs:~# service postgresql status
[b]Running clusters: 8.4/main [/b]
Running clusters: 
root@ucs:~# [ -f /usr/sbin/univention-pkgdb-scan ] &&
>   chmod -x /usr/sbin/univention-pkgdb-scan
root@ucs:~# service  postgresql stop
[b][ ok ] Stopping PostgreSQL 8.4 database server: main.
[ ok ] Stopping PostgreSQL 9.1 database server: main.[/b]
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 0 nicht aktualisiert.
Es müssen 3.284 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-0/amd64/ postgresql-9.1 9.1.14-0.6.201410221758 [3.284 kB]
Es wurden 3.284 kB in 4 s geholt (690 kB/s).
(Lese Datenbank ... 109130 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Ersetzen von postgresql-9.1 9.1.14-0.6.201410221758 (durch .../postgresql-9.1_9.1.14-0.6.201410221758_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.14-0.6.201410221758) 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
[b]Error: specified cluster does not exist[/b]
root@ucs:~# 

Da UCS als VM läuft habe ich schon diverse mal ein Rollback auf einen älteren Snapshot durchgeführt, (bis zurück auf 3.2-0) finde aber momentan keinen weiteren Ansatzpunkt.


#2

Hallo harke,

ev. ähnliches Problem wie in Bareos Problem bei Upgrade auf PostgreSQL 9.1

Grüße & Guten Rutsch!
Robert


#3

Hallo,

ich habe nach vielem Testen und einigen Hinweisen aus anderen Threads hier sowie aus der SDB ein Vorgehen gefunden, mit denen das Upgrade von Postgres auf 9.1 fehlerfrei funktioniert (durchgeführt nach 4.0-0) und auch nach Reboots und weiteren Updates (bis 4.0-4) weiterhin läuft.
Erstes Problem war, dass das Paket-Monitoring (pkgdb) nicht installiert war. Nachdem ich dieses unter 3.2-0 installiert hatte konnte ich die Updates bis 3.2-8 und dann weiter auf 4.0-0 bis 4.0-4 wie folgt durchführen:

Basis 3.2-8:

rm -rf /var/lib/postgresql/9.1/

SDB-1292:

[ -f /usr/sbin/univention-pkgdb-scan ] &&   chmod -x /usr/sbin/univention-pkgdb-scan
service postgresql stop
rm -rf /etc/postgresql/9.1/
apt-get install --reinstall postgresql-9.1
#		Bei Fehlermeldung bzgl. Paket
#		rm /etc/apt/sources.list.d/*
#		ucr commit /etc/apt/sources.list.d/*
service postgresql start
pg_upgradecluster 8.4 main
ucr commit /etc/postgresql/9.1/main/*
chown -R postgres:postgres /var/lib/postgresql/9.1
service postgresql restart 
[ -f /usr/sbin/univention-pkgdb-scan ] &&   chmod +x /usr/sbin/univention-pkgdb-scan
pg_dropcluster 8.4 main --stop
dpkg -P postgresql-8.4

Damit läuft PostgreSQL 9.1 als einzige Instanz.

Mit Upgrade auf 4.1-0 läuft dann allerdings 9.1 nicht mehr, es wird wieder versucht 8.4 zu starten (die dann nicht mehr existiert).
Ich habe daher ein Rollback auf 4.0-4 durchgeführt und bleibe bis zur weiteren Analyse erstmal auf dem Stand.


#4

Moin,

dass während der Prozedur »pg_dropcluster 9.1 main« fehlschlägt ist kein Problem. Das Ziel ist ja, den potenziell autoamtisch angelegten 9.1er Cluster main zu löschen, um ihn nachfolgend wieder als Migration des 8.4er Clusters anzulegen. Da haben Sie schlicht zu früh aufgehört.

Dann: wenn nach erfolgter Migration das System weiterhin versucht, die 8.4 zu starten, dann sind noch 8.4er Pakete installiert. Führen Sie die Migration wie im SDB-Artikel beschrieben durch und entfernen Sie anschließend alle PostgreSQL-8.4-Pakete. Siehe »dpkg -l | grep ‘postgres.*8.4’«.