Fehler beim Postgres upgrade 7.4 -> 8.3

german

#1

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


#2

Hallo Marko,

wie geht es dir mit UCS?

LG

Franz


#3

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


#4

Guten Tag Herr Scherer,

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

Die Datenbank 7.4 ist nicht leer.

Gruß

Marko Rappholz


#5

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


#6

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


#7

Hallo,

können Sie bitte einmal die Ausgabe von

dpkg -l \*postgre\* posten?

Mit freundlichen Grüssen
Tobias Scherer


#8

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


#9

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


#10

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


#11

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


#12

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


Horde: Benutzereinstellungsdatenbank nicht verfügbar
#13

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