thecritter
Goto Top

MySQL-MariaDB oder Postgres?

Hallo,
in unserer Firma sind die meisten Entwickler der Meinung Postgres wäre im produktiven Umfeld die bessere Wahl als MySQL/MariaDB. Warum, das konnten sie mir aber nicht sagen.
Es ist geplant einen HA-Cluster aufzubauen. Ich würde aber gerne einen Galera-Cluster aufsetzen. Der Grund ist man kann wenn man 3 Nodes hat alle 3 Server gleichwertig behandeln.
Bei Postgres kann man nur auf den Master schreiben. Ich habe auch schon Lösungen wie Patroni und Citus ausprobiert, aber immer ist es so das wenn der Master stirbt man erst mal einen anderen Server zum Master machen muss und mit dem Loadbalancer schwenken muss. Auch wenn das theoretisch automatisch funktioniert, gab es Probleme bei meinen Tests. Citus MX wäre wohl eine Alternative, aber ist wohl relativ teuer.

Meine Frage ist daher, spricht etwas gegen Galera? Ist dieses Konzept vielleicht noch nicht ausgereift? Also kann es inkonsistente Daten geben? Falls nicht, was wäre besser MySQL oder MariaDB? Und als Proxy, wäre da keepalived brauchbar oder sollte man HAProxy oder glb nehmen, wobei wohl glb der Langsamste ist.

Oder hat jemand noch andere Vorschläge fernab von Oracle, MSSQL,... die jetzt nicht die Welt kosten und ein Node komplett ausfallen darf

Vielen Dank schon mal

Content-ID: 400595

Url: https://administrator.de/contentid/400595

Ausgedruckt am: 22.11.2024 um 01:11 Uhr

peter-
peter- 06.02.2019 um 11:30:01 Uhr
Goto Top
Hallo Critter,

wenn du Vorschläge fernab von Oracle haben willst, ist MySQL/MariaDB vermutlich nicht die richtige Wahl. Zumindest der kommerzielle Teil MySQLs ist IMHO doch über SUN Richtung Oracle gewandert und wird wohl Lizenzgebühren mit sich bringen. Und da du ja von eurer Firma sprichst, gehe ich mal von einer geplanten kommerziellen Nutzung aus. Da mag auch der Grund zu finden sein, warum eure Entwickler PostgreSQL bevorzugen - die Linzenz ist anscheinend immer noch kostenfrei...

Beste Grüße
Peter
TheCritter
TheCritter 06.02.2019 um 11:39:10 Uhr
Goto Top
Hallo Peter,
ok also dann wohl doch lieber Postgres? Kannst du mir da aber eine master-master Replikation dafür empfehlen? Bin vorhin auf bdr gestoßen, aber das scheint ja auch tot zu sein :/

Viele Grüße
stefaan
stefaan 06.02.2019 aktualisiert um 12:07:25 Uhr
Goto Top
Servus!

Zitat von @peter-:
wenn du Vorschläge fernab von Oracle haben willst, ist MySQL/MariaDB vermutlich nicht die richtige Wahl. Zumindest der kommerzielle Teil MySQLs ist IMHO doch über SUN Richtung Oracle gewandert und wird wohl Lizenzgebühren mit sich bringen.

Deswegen gab es ja MariaDB als Fork, der ohne Einschränkung unter der GPL steht.
Die Lizenz der Client Libraries musst du dir anschauen, hier gibt es bei MySQL auch Stolperfallen. MariaDB schaut auf den ersten Blick nach LGPL (C/C++, Java) aus.

Ev. ist ja auch ein Database Abstraction Layer möglich und ihr bleibt flexibel. Ich krieg immer die Krise, wenn kleine Pipifax-Anwendungen unbedingt Oracle oder MS-SQL* benötigen und es einem die Haare aufstellt, wenn man sich das DB-Design anschaut (Normalisierung - noch nie gehört, wenn das DB-Design so ausschaut, will ich den Programmcode gar nicht erst sehen...).

*Edit: Meinte Gupta und Konsorten, wenn sich der Code im Kern seit 15 Jahren nicht weiterentwickelt hat...

Grüße, Stefan
peter-
Lösung peter- 06.02.2019 um 12:08:23 Uhr
Goto Top
Hi Critter,

sorry - aus der DB-Programmierung bin ich eigentlich seit Jahren oder Jahrzehnten raus und Replikation im Cluster waren für meinen damaligen AG noch nicht wirklich ein Thema - genau genommen waren sogar Cluster damals kein Thema face-smile. Empfehlen kann und will ich dir daher nichts. Ich hatte halt nur noch den Vor- und Nachteil von PostgresQL im Kopf: "Kostet nix, dafür bekommst du im Zeifelsfall aber dann auch ähnlich viel Support." und hoffte, damit für dich etwas Licht ins Dunkel eurer Entwickler-Wahl zu bringen.

Aus persönlicher Neugier habe ich aber doch noch ein bisschen rumgegoogelt...

Die Wiki-Seite kennst du ? https://en.wikipedia.org/wiki/Multi-master_replication#PostgreSQL

Da mein Halbwissen hier erschöpft ist...
Viel Erfolg im Projekt

Peter
ukulele-7
Lösung ukulele-7 06.02.2019 um 13:32:53 Uhr
Goto Top
Dein eigentliches Thema hier ist ja HA und Replikation, dazu kann ich leider nichts beitragen. Lizenzen wurden ja bereits angesprochen, ansonsten gibt es aber sicherlich noch andere Anforderungen an die DB i.S. Performance, Funktionalität und Stabilität, da wurde bisher kein Wort drüber verloren. Hier würde ich Postgre definitiv jedem MySQL vorziehen, vor allem i.S. Funktionaliät ist MySQL so ziemlich Schlusslicht.
akretschmer
Lösung akretschmer 06.02.2019 um 14:21:07 Uhr
Goto Top
BDR lebt. In Form von BDR3, aktuell Version 3.4, ich glaube Freitag oder so wird 3.5 rauskommen, für PG 10 und 11.

Allerdings nicht frei verfügbar, nur für unsere Supportkunden. Ja, ich arbeite bei der Firma.
Falls Du mehr wissen willst: -> privat.

Ganz kurz nur: BDR wird eingesetzt für:

  • sehr hohe Verfügbarkeit (kein Umschalten eines Standbys zum Master) (Applikation kennt alle Systeme, reagiert eines nicht, verbindet sie sich zum nächsten)
  • räumlich weit voneinander entfernte Systeme (andere Kontinent, Erde <-> Mars, ...) mit entsprechend hohen Latenzen


Andreas
akretschmer
akretschmer 06.02.2019 um 14:27:44 Uhr
Goto Top
Zitat von @peter-:

Ich hatte halt nur noch den Vor- und Nachteil von PostgresQL im Kopf: "Kostet nix, dafür bekommst du im Zeifelsfall aber dann auch ähnlich viel Support."

Depends. Bei uns kannst Du Support mit SLA haben.15 Minuten initial response time. 24*7*365, globales Team (mit einigen der PostgreSQL-Core-Entwicklern an Board), mit Bugfix in 24 Stunden (SLA). Das bekommst vermutlich bei vielen anderen, kommerziellen Systemen auch nicht für das zehnfache unserer Preise.
akretschmer
akretschmer 06.02.2019 um 14:32:15 Uhr
Goto Top
Zitat von @peter-:

Da mag auch der Grund zu finden sein, warum eure Entwickler PostgreSQL bevorzugen - die Linzenz ist anscheinend immer noch kostenfrei...

Beste Grüße
Peter

PostgreSQL steht unter BSD-Lizenz und ist und bleibt daher kostenfrei. Du kannst Dir aber Support kaufen - z.B. bei uns.

Andreas
akretschmer
akretschmer 06.02.2019 um 16:09:25 Uhr
Goto Top
Zitat von @TheCritter:

Hallo,
in unserer Firma sind die meisten Entwickler der Meinung Postgres wäre im produktiven Umfeld die bessere Wahl als MySQL/MariaDB. Warum, das konnten sie mir aber nicht sagen.

vermutlich haben sie schlicht das Featureset miteinander verglichen. Frag sie doch mal, ob ich richtig liege face-wink

Andreas
TheCritter
TheCritter 07.02.2019 um 09:33:32 Uhr
Goto Top
Das sind alles keine DB-Experten. Das war wohl nur ein Bauchgefühl. Ggf eins auch aus der Zeit als MySQL wirklich nur eine Ansammlung von Tabellen war.
TheCritter
TheCritter 07.02.2019 um 09:41:09 Uhr
Goto Top
Ok, zusammengefasst ist wohl Postgres die bessere Wahl. Es gibt da unzählige Lösungen die aber alle entweder teuer sind oder nur einen Master haben. Mal schauen was ich da nehme. Ich tendiere da entweder zu Patroni was derzeit bei uns läuft, zu Citus (ohne MX) oder wo mir aber von abgeraten wurde Psotgres-XL.

Vielen Dank euch für die Zahlreichen Antworten...