Fehler beim Postgres upgrade 7.4 -> 8.3

Hallo Forum,

ich habe heute versucht meine Postgres Datenbank upzugraden.
Ich habe folgende Anleitung aus der UCS 2.3 Release Notes genutzt.

ucr unset postgres8/autostart pg_dropcluster 8.3 main --stop pg_upgradecluster 7.4 main ucr commit /etc/postgresql/8.3/main/pg_hba.conf \ /etc/postgresql/8.3/main/pg_ident.conf \ /etc/postgresql/8.3/main/postgresql.conf apt-get remove postgresql-7.4 invoke-rc.d postgresql-8.3 restart
Beim Befehl

pg_upgradecluster 7.4 main

erhalte ich folgende Fehlermeldung

Error: could not get cluster default encoding

Lt. Google soll das ein SELinux policy Problem sein.

Gruß

Marko Rappholz

Hallo Marko,

wie geht es dir mit UCS?

LG

Franz

Hallo,

sind in der Datenbank Daten enthalten oder ist diese leer? Ich konnte diese Fehlermeldung in einem kurzen Test nur mit einer leeren Datenbank provozieren.

Mit freundlichen Grüssen
Tobias Scherer

Guten Tag Herr Scherer,

Sorry, das ich erst jetzt Antworte ich war im Urlaub.

Die Datenbank 7.4 ist nicht leer.

Gruß

Marko Rappholz

Hallo,

für das Update müssen beide Versionen installiert sein und auf den jeweils zugewiesenen Ports 5432 und 5433 lauschen können. Ist evtl. einer der Ports nicht verfügbar wenn der Befehl “pg_upgradecluster 7.4 main” aufgerufen wird?

Hilft es evtl. in “/etc/postgresql/7.4/main/postgresql.conf” die Option port = 5432 einzukommentieren und den 7.4 postgresserver neuzustarten bevor die Migration durchgeführt wird?

Mit freundlichen Grüssen
Tobias Scherer

Hallo Herr Scherer,

der Postgresql-Server 8.3 läst sich nicht mehr starten

[code]root@taurus:/# invoke-rc.d postgresql-8.3 start

  • Starting PostgreSQL 8.3 database server
  • Error: /var/lib/postgresql/8.3/main is not accessible or does not exist
    [/code]

[quote]"/etc/postgresql/7.4/main/postgresql.conf" die Option port = 5432 einzukommentieren[/quote] Ist auskommentiert.

Gruß

Marko Rappholz

Hallo,

können Sie bitte einmal die Ausgabe von

dpkg -l \*postgre\* posten?

Mit freundlichen Grüssen
Tobias Scherer

Guten Herr Scherer,

anbei die gewünschte Information:

root@taurus:~# dpkg -l \*postgre\* Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten | Status=Nicht/Installiert/Config/U=Entpackt/Fehlgeschl. Konfiguration/ Halb installiert/Trigger erWartet/Trigger anhängig |/ Fehler?=(kein)/Halten/R=Neuinst notw/X=beide (Status, Fehler: GROSS=schlecht) ||/ Name Version Beschreibung +++-==============-==============-============================================ un odbc-postgresq <keine> (keine Beschreibung vorhanden) ii postgresql 8.3.7-0.10.200 object-relational SQL database (supported ve ii postgresql-7.4 1:7.4.17-0.20. object-relational SQL database, version 7.4 un postgresql-8.0 <keine> (keine Beschreibung vorhanden) ii postgresql-8.3 8.3.7-0.10.200 object-relational SQL database, version 8.3 ii postgresql-cli 8.3.7-0.10.200 front-end programs for PostgreSQL (supported ii postgresql-cli 1:7.4.17-0.20. front-end programs for PostgreSQL 7.4 ii postgresql-cli 8.3.7-0.10.200 front-end programs for PostgreSQL 8.3 ii postgresql-cli 94.10.20091027 manager for multiple PostgreSQL client versi ii postgresql-com 94.10.20091027 PostgreSQL database-cluster manager un postgresql-doc <keine> (keine Beschreibung vorhanden) un postgresql-doc <keine> (keine Beschreibung vorhanden) ii univention-pos 2.0.2-2.44.201 UCS - postgresql configuration

Gruß

Marko Rappholz

Hallo,

was bekommen Sie für eine Ausgabe wenn Sie “postgres” werden,

root@ucs:# su postgres

sich auf template1 verbinden,

postgres@ucs:$ psql template1

und folgendes Kommando absetzen:

template1=# \l

Mit freundlichen Grüssen
Tobias Scherer

Guten Tag Herr Scherer,

hier der gewünschte Output:template1=# \l Liste der Datenbanken Name | Eigentümer | Kodierung -----------+-------------+----------- pkgdb | pkgdbu | UNICODE template0 | postgres | SQL_ASCII template1 | postgres | SQL_ASCII (3 Zeilen)

Gruß

Marko Rappholz

Hallo,

da in Ihrem PostgreSQL 7.4 Cluster nur eine Datenbank verwendet wird, würde ich empfehlen die Daten mittels pg_dumpall (es sollte die PostgreSQL 7.4 Version verwendet werden) zu sichern (“pg_dumpall > db.out”), den PostgreSQL 7.4 Cluster zu stoppen bzw. die Pakete zu deinstallieren und die Datenbank-Sicherung mittels psql (es sollte die PostgreSQL 8.3 Version verwendet werden) in den PostgreSQL 8.3 Cluster einzuspielen (“psql -f db.out postgres”).
Hierbei gehen eventuell Caches und/oder Indizes verlohren die bei der Migration mittels pg_upgradecluster erhalten bleiben würden. Diese werden aber beim normalen Betrieb der PKGDB wieder aufgebaut sodass hier kein spürbarer Nachteil entstehen würde.

Mit freundlichen Grüßen
Janis Meybohm

Guten Tag Herr Meybohm,

Danke für den Lösungsweg, ich werden ihn heute noch testen.

Ich habe aber auch ein Server wo 2 Datenbanken bacula u. pkgdb vorhanden sind kann ich dort auch den gleichen Weg gehen?

Gruß

Marko Rappholz

Hallo,

auch bei mehreren Datenbanken sollte der Beschriebene Weg funktionieren, da mit “pg_dumpall” immer alle Datenbanken exportiert werden.

Mit freundlichen Grüßen
Janis Meybohm

Mastodon