Update von 8.2 auf 8.3 Datenformatproblem

Hallo,

wie muss ich denn vorgehen damit das richtig funktioniert.

Der PostgreSQL-Server läuft unter fedora 8.
PostgreSQL 8.2 war installiert.

Im fedora.repo und fedora-updates.repo
exclude=postgresql*
eingefügt.

pgdg-fedora-8.3-1.noarch.rpm
gestartet

yum upgrade ausgeführt.

Beim Start des Service postgresql kommt nun “Eine alte Version des
Datenbankformats wurde gefunden”. Datenformat aktualisieren.

Eigentlich alles logisch. Nur wie aktualisiert man denn das Datenformat.
Ich habe dass mit dem Dump gelesen, nur dann bin ich doch nach dem
Update in der selben Situation, dass der Service nicht startet.

Gruß
Alfred

Fakt ist, Du wirst einen Dump der alten Version machen müssen (idealerweise mit den Tools der neueren Version, wobei die alte Version die Daten liefert) und diesen Dump in die neue Version einspielen. Man kann dazu beide Version auch auf demselben Rechner laufen lassen, Debian macht das so z.B.

Wie das konkret bei Fedora vorgesehen ist, weiß ich aber nicht.

Andreas

Hallo Andreas,

das ganze entpuppt sich unter Fedora 8 leider als unendliche Geschichte.

Wenn man die Source von 8.3 verwendet und mit --prefix arbeitet bekommt man eine 2. Installation hin.

Nur der Aufruf von initdb aus /home/alf/pg83/bin führt trotzdem dazu,
dass eine Version 8.2 in /home/alf/pg83/data verwendet wird. Erst
wenn man die 8.2 per pirut deinstalliert erhält man eine 8.3.

Sieht so aus, als wenn ich die 8.2 auch noch als Source installieren müsste.

Der Versuch pgadmin für 8.3 mit der Source zu installieren hängt sich an einem fehlenden wxWidgets auf.

netstat -apt | grep post liefert nicht den Port auf dem er tatsächlich hört.

Der Autostart von PostgreSQL läßt sich nicht mehr über Service starten.

Der Server läuft, wird aber nicht in den Prozessen angezeigt.

Ich spiele jetzt mal mit Navicat per Export und Import die Daten in 8.3 ein und versuche dann ein Problem nach dem anderen abzuarbeiten.

Gruß
Alfred

Könnte es sein, das du ein Problem mit dem Pfad hast?

Du solltest $PATH (und ev. auch $LD_LIBRARY_PATH) entsprechend setzen, damit in allen Programmen, die 8.3 verwenden, auch diese Dateien gefunden werden.

Ansonsten werden nämlich die Dateien und Programme im Systempfad genutzt … und dort ist die alte Installation.

wohl ein Pfad-Problem, siehe ads

Sieht so aus, als wenn ich die 8.2 auch noch als Source installieren müsste.

unwahrscheinlich

Der Versuch pgadmin für 8.3 mit der Source zu installieren hängt sich an einem fehlenden wxWidgets auf.

Nebensächlich, da man pgadmin nicht braucht.

netstat -apt | grep post liefert nicht den Port auf dem er tatsächlich hört.

glaub ich nicht

Der Autostart von PostgreSQL läßt sich nicht mehr über Service starten.

vermutlich ein Layer 8 - Problem.

Der Server läuft, wird aber nicht in den Prozessen angezeigt.

ditto.

Ich spiele jetzt mal mit Navicat per Export und Import die Daten in 8.3 ein und versuche dann ein Problem nach dem anderen abzuarbeiten.

Gruß
Alfred

viel Erfolg.

Andreas

Hallo Andreas,

glaub ich nicht


netstat -apt | grep post

liefert listen 16965/Postgres

Pgadmin oder Navicat findet ihn unter Port 5432(habe ich in der postgresql.conf manuell erfasst)

/pg_ctl -D /home/alf/pg83/data -o "-p 5432" start

ändert nichts an der willkürlichen postmaster.id.

Gruß
Alfred

Hallo Andreas,

Nebensächlich, da man pgadmin nicht braucht.

Mit was administrierst Du denn PostgreSQL?

Mir fällt da jetzt zum Beispiel Role oder der Eigentümer einer Tabelle ein.

Gruß
Alfred

Mit psql.

Ist meistens schneller, als PGAdmin überhaupt gestartet ist.

Hallo ads,

an welcher Stelle wird denn der $path gesetzt. Ich hatte unterstellt, wenn
ich das Programm in seinem Homeverzeichnis aufrufe, dass dann auch
dieses Programm gestartet wird.

Gruß
Alfred

Das stimmt schon. Aber wenn dieses Programm weitere Programme startet, muss das nicht mehr der Fall sein.

Also setzt man unter Unix explizit die $PATH Variable.

Hallo Andreas,

vermutlich ein Layer 8 - Problem.

Den Begriff kannte ich noch nicht :slight_smile:


Ist nur leider nicht ganz so einfach. Ich versuche es einmal zu erklären.
Ich beschäftige mich seit Commodores Zeiten mit der EDV, zum Teil
weit über das hinaus, was für meinen Beruf notwendig ist. Habe mich mit
Linux angefreundet, weil ich eine Surfstation haben wollte, die mich nicht
bei der Arbeit behindert. Aufgrund einer Empfehlung habe ich mit Fedora
Core 5 begonnen und Gnome hat mich weitgehend vom Terminal
ferngehalten. Zwischenzeitlich ist ein Samba-Server(mit Novell(IPX)-An-
bindung) und ein älteres Notebook hinzugekommen.

Einen Dienst habe ich bislang wie folgt gestoppt oder gestartet:

Unter System/Administration/Dienste den jeweiligen Dienst anklicken.
Auf Start drücken. Fertig.

Da ich ja nun am System vorbei installiert habe, ist postgresql dort
nicht als Dienst eingetragen.

→ ein Layer 8 Problem :slight_smile:

Gruß
Alfred