Fragen Cluster Transaktionen

Hallo PG Forum,
vor einigen Jahren habe ich die 8.X Versionen von PGSql sehr erfolgreich eingesetzt (1 DB Server und sehr gute Erfahrungen gehabt). Nun überlege ich PostgreSQL als Ablösung für eine fette DB2 einzusetzen. Da so was “nicht mal eben so gemacht ist” (Anwendungen umbauen usw) bin ich jetzt erstmal dabei grundlegende Fragen zu klären.

Könntet Ihr mit bitte sagen wo ich gute Informationen zu dem Clusterverhalten von PostgreSQL finde? PG würde unsere Last auch so locker schaffen (1T DB Größe und die restlichen Parameter stimmen auch) nur wegen Ausfallsicherheit würde ich gerne auf einen Cluster gehen.
Ich habe im Netz gelesen, das wenn ein PG Cluster eingesetzt wird die Transaktionssicherheit nicht mehr gegeben sein soll und nur noch “NOSQL ähnliches” möglich sei. Dieses kann ich nicht glauben. Daher suche ich richtige/Verlässliche Informationen über PG und Cluster. Insbesondere über das Locking Verhalten von PG. Oder eine Matrix Vergleich DB2 zu PG.

Wo kann ich solchen Lesestoff finden?

Danke für Lesestoff!!

Viele Grüße
Wonker

Das ist Blödsinn.
Möglicherweise ging es dort um “unlogged” Tabellen: PostgreSQL: Documentation: 9.4: CREATE TABLE

Wo kann ich solchen Lesestoff finden?

Das Handbuch ist ein guter Anfang: PostgreSQL: Documentation: 9.4: High Availability, Load Balancing, and Replication

Das ist auch Unfug. Was willst Du machen, Replikation? Das funktioniert sehr stabil mit PG, Du kannst auf mehrere Slaves replizieren, Du kannst das kaskadieren, Du kannst (mit 9.4) Delayed Slaves einrichten (falls Du mal bei einem Delete das Where vergessen solltest …) und so weiter. Du kannst auch lesend auf die Slaves zugreifen.

Was auch geht: via DRBD und ‘fliegender IP’ eine HA-Lösung machen.


Also, definiere mal, was genau Du suchst. Aber das sind alles gut erprobte Dinge.

Hallo Forum,

Danke für die schnellen Antworten!!!
Ich habe mir so etwas auch schon gedacht, bin nur seit Jahren aus dem Thema raus und brauche Informationsfutter für Besprechungen einige Abstraktionsebenen höher.

Mehre Gedanken:
Hochverfügbarkeit herstellen über entweder:

  1. 1 Prod Server und ein Standby Server daneben => Mit PG laut Infos ja kein Problem => Replikation und gut ist.

  2. 1 Master Server und dahinter N Cluster Nodes und wenn von X Nodes 10% ausfallen ist noch immer gut.


    Und bei der Zweiten Version habe ich die Aussage bekommen, dass das nicht mit Transaktionenssicherheit ginge. (Gibts dafür Issues was die Performance angeht?)

Danke schonmal für eure Antworten und habe ich es mir schon gedacht, wollte es aber mal verifizieren.


Viele Grüße

Wonker

Doch das geht auch mit Transaktionssicherheit. Die (read-only!) Slaves können allerdings um ein paar Sekunden hinter hinken - auch wenn man synchrone Replikation verwendet. Schreiben kann man aber immer nur auf dem Master.

Dazu brauchst Du aber dann auch einen Load-Balancer wie z.B. pgPool der die Anfragen verteilen kann. (siehe auch: Replication, Clustering, and Connection Pooling - PostgreSQL wiki)

Eine alternative wäre ein “echtes” Cluster bei dem auch schreibende Zugriffe verteilt werden können, z.B. Postgres-XL: http://www.postgres-xl.org

Was genau stellst Du Dir unter 2) denn vor?

Du kannst Replikation auf beliebig viele Nodes machen, und das kostet auch keine (meßbare) Performance. replikation geht übrigens mit 9.4 mit den Slots NOCH angenehmer als bisher.

Ach ja: es gibt asynchrone und synchrone Replikation. Also, wenn Du ganz sicher gehen willst, machst eine synchrone Replikation. Und: du kannst das sogar mixen: Du kannst per Transaktion sagen, ob diese synchron oder asynchron erfolgen soll.

Hallo Ihr Beiden!

Danke für eure schnelle Hilfe.

Ich weiß nun das meine Vermutung richtig war. Meine Erinnerungen über PostgreSQL war doch richtig und die anderen Quellen ignoriere ich in Zukunft. Ich melde mich wieder wenn die Evaluierung (mit PG!) weiter voranschreitet.

Danke!

Viele Grüße
Wonker

alles wird gut :wink: