Postgresql 9.2

german

#1

Hallo,

Ich möchte gerne auf dem UCS Postgresql 9.2 installieren. Es wird mir aber nur 9.1 angeboten.
Kann mir jemand weiterhelfen?

Viele Grüße

Nicole


#2

Moin,

so ganz trivial ist das leider nicht. Sie haben hier mehrere Möglichkeiten, alle mit ihren eigenen Vor- und Nachteilen:

[ol][li]Die Benutzung von Docker, um eine nahezu beliebige Version laufen zu lassen. Dies ist erst mal unabhängig von Univention; daher verweise ich hier einfach auf z.B. diesen Artikel. Vorteile: beeinträchtigt das laufende System am wenigsten, weil existierende Pakete und Binaries nicht überschrieben werden; agnostisch gegenüber Updates von Univention selber. Nachteile: Einarbeitung in Docker nötig (sofern noch unbekannt), manuelles Management der Installation gerade auch bei Updates auf neuere PostgreSQL-Versionen nötig; über Sicherheitsupdates muss man sich selber auf dem Laufenden halten und manuell installieren.[/li]
[li]Compilierung einer eigenen Version aus Quellcode und Installation nach z.B. /opt/postgresql-9.2. Ähnlicher Vorteil wie die Verwendung von Docker: beeinträchtigt das laufende System nicht. Nachteile: bei UCS-Updates evtl. Neucompilierung nötigt; noch mehr manuelles Management der Installation (z.B. Startscripte); über Sicherheitsupdates muss man sich selber auf dem Laufenden halten und manuell installieren.[/li]
[li]Versuch, existierende Pakete für Debian Wheezy bzw. Ubuntu 12.04 (z.B. aus dem PostgreSQL-eigenen Debian-/Ubuntu-Repository oder von einem Ubuntu-PPA) auf Univention zu compilieren und zu installieren. Vorteil: evtl. etwas weniger manuelles Management. Nachteile: sehr viel Arbeit bei ungewissem Ausgang; sehr wahrscheinlich Probleme beim Update von Univention; über Sicherheitsupdates muss man sich selber auf dem Laufenden halten und manuell installieren.[/li]
[li]Neuen Server (z.B. eine virtuelle Maschine) mit aktuellem Debian/Ubuntu aufsetzen und dort PostgreSQL installieren. Vorteil: die einzige Variante, bei der die dann installierten PostgreSQL-Pakete selber bei Updates Daten automatisch migrieren können; normales OS-Management mit wenig manueller Arbeit; Sicherheitsupdates werden von den Distributionen mit abgedeckt und können sogar automatisiert eingespielt werden. Nachteile: weiterer zu pflegender Server.[/li][/ol]

Ich selber tendiere immer zu 1. oder 4., wobei es davon abhängt, wie gut sich mein Kunde (oder ich, wenn’s für uns selber ist) mit der Technologie auskennen. Mit PostgreSQL habe ich sehr viel Erfahrung, auch was die Datenmigration betrifft, daher würde ich hier vermutlich zu Docker tendieren. In anders gelagerten Fällen bevorzuge ich aber eigene virtuelle Maschinen.

Auch zu beachten ist die Frage, ob so ein Dienst vom Internet aus erreichbar sein soll oder nicht. Vor ein paar Tagen fragte jemand Ähnliches für PHP 5.6.x. Dort habe ich bewusst zu der eigenen Maschine mit Debian/Ubuntu geraten, eben aufgrund der Tatsache, dass man sich bei Docker selber um Sicherheit kümmern muss. Ein Datenbankserver hingegen wird allermeistens eben gerade nicht aus dem Internet erreichbar sein, vielleicht sogar nur von den Anwendungen auf einer einzigen Maschine aus. Das kann sehr gut mit Firewallregeln abgedeckt werden, und daher ist Docker hier definitiv ein Kandidat.

Gruß,
mosu


#3

Vielen Dank mosu,

Version 1 und 4 werde ich mir mal näher anschauen, wobei ich zu Version 4 tendiere, oder eine Möglichkeit finde die Version 9.1 nutzen zu können.

Mit einer Firewallregel muss ich mich wohl auch noch auseinandersetzen, denn die Erreichbarkeit von außen muss gewehrleistet sein.

Viele Grüße
Nicole


#4

Je nachdem wie dringend das ist, gibt es auch noch eine 5. Möglichkeit: Warten auf UCS 4.2, welches wahrscheinlich im November erscheinen wird. Dieses wird auf dem aktuellen Debian basieren und daher wahrscheinlich auch ein aktuelleres Postgresql enthalten (ich habe gerade nachgeguckt: vermutlich dann 9.4).


#5

Vielen Dank. Gut zu wissen.
Leider kann es nicht warten, aber vielleicht kannst Du mir auch mit der Firewallregel helfen, oder muss ich dafür einen neuen Thread starten?


#6

Moin,

einzelne Ports kann man ziemlich einfach freigeben, z.B. für Port 5432 (der von PostgreSQL benutzte Port):

ucr set security/packetfilter/tcp/5432/all=ACCEPT

Weitere Infos dazu stehen in der Entwicklerdokumentation.

Gruß,
mosu


#7

Vielen Dank mosu, so habe ich das nun auch eingerichtet.


#8

Gern geschehen.