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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 400595
Url: https://administrator.de/contentid/400595
Ausgedruckt am: 22.11.2024 um 01:11 Uhr
11 Kommentare
Neuester Kommentar
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
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
Servus!
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
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.
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
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 . 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
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 . 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
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.
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:
Andreas
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
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."
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.
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
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
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.
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
Andreas