Select Page

NETWAYS Blog

Komm‘ nach Nürnberg für Deinen Icinga 2 Deep Dive!

Du hast bereits den Einsteigerkurs „Icinga 2 Fundamentals“ bei uns belegt bzw. besitzt Monitoring-Grundkenntnisse? Sehr gut. Nun möchtest Du Dein Fachwissen auf diesem Gebiet weiter vertiefen, Dir weitere praktische Kenntnisse aneignen? Perfekt! Dann ist der Icinga Director Workshop genau das Richtige für Dich!
Am 20. und 21. Oktober 2020 erwartet Dich von jeweils 9 – 17 Uhr in Nürnberg eine geballte Ladung an:

  • Grundlagenwissen zu Hostobjekten, Vorlagen für Hosts und Services, Verwendung von Apply-Regeln, Service Sets uvm.
  • Installation und Konfiguration des Directors und einer Beispiel-Umgebung, bestehend aus Icinga Master, Satellite und Agenten auf Linux und Windows zur Überwachung
  • Automatischer Import aus verschiedenen Quellen: Dateiebene und SQL-Datenbank

Nach dem zweitägigen Workshop bist Du also fit darin, Deine Icinga Konfiguration mit Hilfe des webbasierten graphischen Userinterface zu erstellen. Außerdem meisterst Du die Automatisierung von Aufgaben mit dem Icinga Director. Klingt nicht nur super, das ist es auch! Und das beste ist: Wir teilen nicht nur unser versiertes Fachwissen mit Dir, sondern auch Kekse – also sei dabei! Hier geht’s zur Anmeldung. Solltest Du nicht aus Nürnberg kommen und Hilfe bei der Suche nach einer passenden Unterkunft für diesen Zeitraum benötigen, dann unterstützen wir Dich gerne – melde dich einfach bei uns!

Neben dem Icinga Director Workshop stehen in den kommenden Monaten auch noch weitere Trainings aus anderen Fachbereichen an:

 

MONITORING TRAININGS
Icinga Schulung (Fundamentals) | Online | 1.-4. Dezember 2020 | 9-17 Uhr
Icinga 2 Advanced | Nürnberg | 8.-10. Dezember 2020 | 9 – 17 Uhr

 

LOGGING & METRICS TRAININGS
Graylog Schulung | Nürnberg | 27.-28. Oktober 2020 | 9 – 17 Uhr
Elastic Stack Schulung | München | 24.-26. November 2020 | 9 – 17 Uhr

 

ADMINISTRATION TRAININGS
Linux Schulung (Basics) | Nürnberg | 27.-29. Oktober 2020 | 9 – 17 Uhr
PostgreSQL Schulung (Fundamentals) | Nürnberg | 1.-3. Dezember 2020 | 9 – 17 Uhr
PostgreSQL Advanced | Nürnberg | 15.-18. Dezember 2020 | 9 – 17 Uhr

 

AUTOMATION TRAININGS

Ansible Schulung | Online | 13.-15. Oktober 2020 | 9 – 17 Uhr

Ansible Tower | Online | 16. Oktober | 9 – 17 Uhr
Puppet Schulung (Fundamentals) | Online | 20.-22. Oktober | 9 – 17 Uhr

Foreman Schulung | Nürnberg | 1.-2. Dezember | 9 – 17 Uhr
Terraform Schulung | Online | 8.-9. Dezember 2020 | 9 – 17 Uhr

 

DEVELOPMENT TRAININGS
GitLab Schulung (Fundamentals) | Online | 27.-28. Oktober 2020 & Nürnberg | 15.-16. Dezember 2020 | 9 – 17 Uhr

 

Wir bieten Trainings an, die sowohl online, als auch vor Ort stattfinden. Also, egal, ob virtuell oder IRL – wir freuen uns auf Dich und den gemeinsamen Austausch!

Terraform Training: Provisionierung von Infrastruktur in der Cloud

Mit dem Infrastructure-as-Code-Werkzeug (IaC) Terraform lässt sich Infrastruktur für Anwendungen in der Cloud automatisiert erstellen und verwalten. Das Tool abstrahiert die APIs unterschiedlicher Anbieter mit sogenannten Providern. So kann die Konfiguration Deiner Infrastruktur revisionssicher dokumentiert und von allen Teammitgliedern gemeinsam genutzt und bearbeitet werden.

Terraform nimmt Administrator*innen und Entwickler*innen viel Routinearbeit ab, erfordert aber eine gute Einarbeitung. Und hier kommen wir ins Spiel: In unserer Schulung lernst Du, wie Du mit Terraform Infrastrukturen sicher und nachvollziehbar erstellen, ändern und verbessern kannst.

Mit der aktuellen Version von Terraform und seiner Konfigurationssprache HCL (Hashicorp Configuration Language) in Version 0.12 hat sich das Vorgehen zur Automatisierung von Cloud-Infrastruktur weiterentwickelt.

Von HCL bis cloud-init

Unsere zweitägige Schulung beginnt mit einer Einführung in HCL. Anschließend zeigen wir Dir, wie Du Infrastruktur für AWS oder OpenStack wiederverwendbar und idempotent mit Terraform realisierst. Ebenfalls erfolgt eine Einführung in cloud-init, um weitere Software zu installieren und zu konfigurieren.

Folgende Linux-Kenntnisse sind Grundvoraussetzung zur Teilnahme: sicherer Umgang mit der Kommandozeile, ssh und vim bzw. einem alternativen Editor. Bringst Du mit? Na dann, willkommen zur Weiterbildung!

Aktuell haben wir folgende Termine im Angebot:

Unsere Trainer sind nicht nur im Bereich Schulungen tätig, sondern arbeiten regelmäßig in Software- und Kundenprojekten. Wir wissen, worauf es ankommt und teilen unser Wissen gerne – für Deinen Erfolg!

Erfahre hier mehr zur Terraform Schulung und melde Dich an!

Alles neu macht der Mai: NETWAYS Trainings – Online und vor Ort

Alles neu macht der Mai. Und nicht nur der! Wir haben in den kommenden Monaten jede Menge neuen Input in spannenden NETWAYS Trainings für Dich. Online oder vor Ort: Das entscheidest Du. Wir haben aktuell beide Varianten im Portfolio. So kannst Du Dir das Wissen zu Deinem Open Source-Tool entweder ganz bequem und auf dem schnellen Weg zu Hause im Online Training aneignen. Oder Du kommst nach Nürnberg, Hamburg, München oder Berlin, um Dir gemeinsam mit anderen vor Ort neuen Input abzuholen.

Wir bringen Dir das state-of-the-art Praxiswissen bei!

MONITORING TRAININGS

Ein leistungsstarkes Tool zur Überwachung der Verfügbarkeit und Leistung aller Teile Deines Systems: Icinga zeigt Dir alle relevanten Daten an und gibt Warnmeldungen aus, um Dich auf dem Laufenden zu halten. Lerne Icinga von der Pike auf in unseren Schulungen und setze mit unseren Icinga Workshops noch eine Portion Profiwissen drauf!

Icinga Schulung (Fundamentals)
Online | 7.–10. Juli 2020
Nürnberg | 22.–25. September 2020
Icinga 2 Advanced
Online | 21.–23. Juli 2020
Berlin | 6.–8. Oktober 2020
Icinga & Puppet Workshop
Nürnberg | 22.–23. September 2020
Icinga Director Workshop
Nürnberg | 20.–21. Oktober 2020

AUTOMATION TRAININGS

Der Trend zur Virtualisierung nahezu aller IT-Plattformen und Umgebungen erhöht den Bedarf an flexibler und vor allem schneller Verwendung der verfügbaren Ressourcen. Wir helfen Dir dabei, mit dieser Geschwindigkeit nicht nur Schritt zu halten, sondern ihr sogar einen Schritt voraus zu sein.

Ansible Schulung
Nürnberg | 21.–23. Juli 2020
Hamburg | 13.–15.Oktober 2020
Ansible AWX (Tower)
Nürnberg | 24. Juli 2020
Hamburg | 16. Oktober 2020
Icinga & Puppet Workshop
Nürnberg | 22.–23. September 2020
Puppet Schulung (Fundamentals)
Online | 30. Juni – 2. Juli 2020
Nürnberg | 20.–22. Oktober 2020
Foreman Schulung
Nürnberg | 8.–9. September 2020

LOGGING & METRICS TRAININGS

Für Sammler und Sondierer: Hier erfährst Du, wie Du Log-Daten von Anwendungen, Betriebssystemen oder Netzwerkinfrastrukturen zentral sammelst, verarbeitest, verwaltest, analysierst und visualisierst. Mehrwertgenerierung garantiert!

Elastic Stack Schulung
Online | 23.–25. Juni 2020
München | 15.–17. September 2020
Graphite & Grafana
Online | 26.–27. Mai 2020

Berlin | 29.–30. September 2020
Graylog SchulungNürnberg | 30. Juni – 1. Juli 2020
Nürnberg | 27. – 28. Oktober 2020

ADMINISTRATION TRAININGS

Geballte Admin-Power: Hier lernst Du ein unabhängiges Linux-System zu administrieren und wiederkehrende Aufgaben zu automatisieren oder die Vorzüge unserer liebsten, flexiblen und erweiterbaren relationalen Datenbank kennen. Das und noch viel mehr. Jetzt anmelden!

Linux Schulung (Basics)
Nürnberg | 27.–29. Oktober 2020

PostgreSQL Schulung (Fundamentals)
Nürnberg | 14.–16. Juli 2020
PostgreSQL Advanced Schulung
Nürnberg | 8.–11. September 2020

DEVELOPMENT TRAININGS

Softwareentwicklung bedarf heute mehr denn je einer ganzheitlichen Betrachtung des DevOps-Lifecycles. Reine Source Code-Verwaltung wird dem nicht mehr gerecht und der gesamte Prozess von Planung bis hin zu Continuous Integration und Deployment benötigt eine technische Abbildung. GitLab ist das Tool dafür!

GitLab Schulung
Online | 14.–15. Juli 2020
Nürnberg | 15.–16. Dezember 2020

Das sagen unsere Teilnehmer*innen

“Man hat auf jeden Fall gemerkt, dass der Trainer sehr viel praktische Erfahrung mit der Software hat und weiß, wo er ansetzen muss.” – Feedback Ansible Online Training

“Eine neue Erfahrung, etwas anstrengender als in einer Präsenzschulung, aber mit viel technischem Hintergrund. Hat Spaß gemacht.” – Feedback Ansible Online Training

“Sehr gute Umsetzung einer neuen Schulungsmöglichkeit, auf jeden Fall für die Zukunft sehr interessant.” – Feedback GitLab Online Training

“Sehr gut organisiertes Online-Training, kompetenter und sympathischer Trainer. Alle Fragen wurden beantwortet. Absolut zu empfehlen!” – Feedback GitLab Online Training

Und was sagst Du? Wir freuen uns, Dich bald bei uns zu begrüßen! Virtuell oder vor Ort.

Weiterbildung im Homeoffice: Wir bieten jetzt Online Trainings

Vieles bleibt uns aktuell verwehrt. Von manch anderem haben wir dafür umso mehr: Zeit zu Hause zum Beispiel. Warum die nicht sinnvoll nutzen und sich weiterbilden? Das ist eure Chance, all die Ungereimtheiten, die sich im Arbeitsalltag mangels Zeit aufgestaut haben, endlich mal zu klären. Oder euer Wissen hinsichtlich bestimmter Anwendungsfälle eurer Firmensoftware zu erweitern. Oder euch mit einer für euch komplett neuen Software zu beschäftigen.

Wir haben in den letzten beiden Wochen einen Großteil unseres Schulungsangebots auf Online umgestellt und freuen uns, euch jetzt die ersten Termine zu präsentieren.

Die NETWAYS Online Trainings starten am Dienstag, 28. April 2020, mit der zweitägigen Schulung „GitLab Training“.

Alle bisher geplanten Online-Termine sind:

Online-Trainings vermitteln die gleichen Lerninhalte wie der Präsenzunterricht, inklusive aller Übungen. Audiovisuell mit Deinem Trainer und den anderen Teilnehmern verbunden erlebst Du unsere digitalen Trainings, als ob ihr in unseren Schulungsräumen wärt. Die Trainings finden live mit Direktübertragung von Bild und Ton statt.

Ein Online-Training bietet viele Vorteile

Unsere Trainer sind nicht nur im Bereich Schulungen tätig, sondern arbeiten regelmäßig in Software- und Kundenprojekten. Aufgrund ihrer Arbeit beim Kunden sind sie mit allen Wassern gewaschen. Und da diese Arbeit oft auch remote stattfindet, sind Online-Trainings für unsere Dozenten sozusagen gängige Praxis. Du bist also in guten Händen!

Durch eine begrenzte Gruppengröße von max. 10 Teilnehmern stellen wir einen effizienten Ablauf unserer Schulungen sicher. Natürlich bleibt dabei immer Zeit für Fragen. Auf Wunsch kann der Dozent den Inhalt Deines Bildschirms mittels Screen-Sharing einsehen und Dir Hilfestellung geben. Zudem steht Dir ein Co-Trainer für all Deine Fragen zur Verfügung. Freue Dich auf eine individuelle Betreuung und darauf, endlich mal all Deine Fragen loszuwerden!

Hier nochmal Deine Vorteile:

+ Reisekosten entfallen
+ Du nutzt Deine Arbeitszeit optimal aus
+ Du kannst bequem vom Arbeitsplatz oder von zu Hause aus teilnehmen
+ Individuelle Betreuung, schnelle Lernerfolge

Wir bleiben dran, euch auch weiterhin alles Wissenswerte zu den wichtigsten Open Source Tools zu vermitteln!

Auch nach Abklingen der Corona-Krise und Lockerung der Ausgangsbeschränkungen in Deutschland werden die Online-Seminare weiter in unserem Trainingsangebot bleiben. Online-Trainings werden dann das reguläre Angebot an Präsenzschulungen ergänzen.

Weitere Informationen dazu auf www.netways.de/trainings/online.

Über Physik, Erdnuss-Snacks und Schlangenöl aka Datenbanken

Achtung ein Hinweis in eigener Sache, dieser Artike kann Spuren von Polemik und rant enthalten!

Neal Stephenson hat in seinem wunderbaren Roman Cryptonomicon eine kleine Randgeschichte über eine Bandsäge eingebaut. Der für mich schönste Satz darin ist:

Anecdotes about accidents involving the bandsaw were told in hushed voices and not usually commingled with other industrial-accident anecdotes.

An diesen Satz muss ich immer denken, wenn es auf PostgreSQL-Konferenzen in den abendlichen War-Story-Runden zu Geschichten über MySQL oder MariaDB kommt, zugegeben hauptsächlichen deren Migration zu PostgreSQL.
Bei Entity–Attribute–Value (EAV) Schemas, nicht getesteten Backups, Prozeduren, die nicht maskierte Benutzereingaben als Tabellennamen für dynamisches SQL hernehmen etc. kann man sagen sie hätten es wissen können bzw. müssen. (Halt die üblichen Katastrophen, die man sich in gemütlicher Runde so erzählt, Datenbanker sind halt schon ein komischer Haufen.)

Das ist bei MySQL wie auch diversen anderen Datenbanken irgendwie anders, und ich frage mich immer wieder, warum ist das so?

Es hat evtl. etwas mit einer grundsätzlichen Bereitschaft zu tun, über physikalische Gegebenheiten nachzudenken.

Wenn jemand eine PostgreSQL-Mailingliste anschreibt und erklärt, dass Oracle eine Anfrage in 0,009 ms beantwortet, für die PostgreSQL über zwei Minuten benötigt, dann ist diese Frage erst einmal legitim.

Wenn dann aber nach und nach herauskommt, dass es um eine Tabelle mit 9.649.110 Zeilen und rund 3,5GB geht, die mittels SELECT * FROM table1; komplett gelesen wird, müsste einem doch sofort klar sein, das Ersteres nicht sein kann? Das brandneue DDR5-RAM schafft gerade mal 5,2 GT/s (Megatransfer), und da ist noch keine Netzwerkverbindung im Spiel. In 0,000009 Sekunden schafft selbst Licht “nur” rund 2,7km.

Wie können solche offensichtlichen Mess- oder Denkfehler nicht sofort auffallen? Die 2,7 km muss man ja nicht parat haben, aber dass 0,000009 Sekunden ein sehr kurzer Zeitraum sind, um 3,5GB Daten zu übertragen, liegt doch eigentlich für ITler nah?

Was mich zum Thema MM (Multi-Master-Replication) oder politisch korrekt Multi-Primary, Write-Anywhere etc. bringt…

PostgreSQL-Umsteiger von MySQL, MariaD, CockroachDB, Oracle,… fragen immer wieder (z.B. im Telegram-/Slack-Channel, den Mailinglisten, Seminaren), wie man denn einen MM-Cluster aufbaut.

Der Dialog läuft üblicherweise so ab:
Q: “Ich komme von und habe dort einen Multimaster-Cluster. Wie baue ich dasselbe mit PostgreSQL auf?”
A: “Gar nicht. Wahrscheinlich willst du das aber auch gar nicht.”
Q: “Doch, doch. Ich brauche die Hochverfügbarkeit und die Performance (ein Knoten allein schafft meine Schreiblast nicht)!”
A: “MM kostet Performance und verbessert deine Verfügbarkeit nicht wirklich. Benutze einfach eine klassische Replikation, ggfs. mit Lese-Lastverteilung.”

Verdeutlichen wir uns kurz, was es für eine Datenbank bedeutet, auf mehr als einem Clusterknoten schreibenden Zugriff zu erlauben:

  • Sequenzen (für Primärschlüssel bzw. “auto-increment/identity” Spalten) müssen synchronisiert werden, damit keine IDs doppelt vergeben werden
  • es muss sichergestellt werden, dass bei z.B. DELETE-Statements die referentielle Integrität erhalten bleibt; es muss also die Möglichkeit geben,
    clusterweit Datensätze oder sogar ganze Tabellen zu LOCKen
  • wenn auf mehreren Knoten derselbe Datensatz verändert wird, muss eine Konfliktbehandlung erfolgen. Wenn die nicht dem Zufall, sprich dem Replikations-Lag überlassen werden soll, werden clusterweite Transaktions-IDs benötigt
  • und zum Thema Schreiblast: Ziel ist es ja weiterhin, einen einheitlichen und konsistenten Datenbestand zu haben, die Schreiblast pro Knoten bleibt also unverändert!

Je mehr Knoten beteiligt sind, desto mehr Koordination ist erforderlich. Und jede dieser Aktivitäten benötigt Zeit, mindestens 1-2 Netzwerk-Roundtrips.

Je weiter meine Knoten voneinander entfernt sind, desto mehr Zeit und damit Performance geht allein schon durch pure Physik verloren!

Für PostgreSQL gibt bzw. gab es einige FOSS-Varianten, die MM beherrschen (Postgres-XC, Postgres-XL, BDR). Und 2ndQuadrant, deren derzeitiger Maintainer, sagt sinngemäß:

Die Einschränkungen und zusätzlichen Maßnahmen, die MM mit sich bringt bzw. erfordert, sind so eklatant, dass MM wahrscheinlich nie Einzug in den PostgreSQL-Core kommen wird. Und so ein Cluster ist explizit nicht für Hochverfügbarkeit gedacht, sondern um z.B. logisch weitgehend voneinander getrennte Datenbestände, z.B. Verkäufe und Lagerbestände in verschiedenen Ländern, in den jeweils anderen Standorten verfügbar zu machen.

Der Aufwand ist also durchaus erheblich, und mit ein klein wenig Nachdenken sollten sich die Zusammenhänge und Gründe auch jedem Interessenten erschließen.

Oder man macht sich einfach keine Gedanken und setzt bidirektionale Replikation auf, “was soll schon passieren” und “war ganz einfach, mit diesem Tutorial aus dem Netz”…

Multimaster-Clustering ist ein wenig wie im Dunkeln, bei Regen, mit 250 km/h über die Autobahn zu fahren. Als Beifahrer…

  1. Man wünscht sich auf jeden Fall, dass die Person am Steuer nicht nachtblind (sprich: “has RTFM”) ist
  2. das Auto und seine Grenzen sehr genau kennt (pun intended!)
  3. ein oder besser mehrere Fahrsicherheitstrainings hinter sich hat.

Und trotzdem ist man letztlich Faktoren überlassen, auf die man keinen Einfluss hat. Meist geht es ja auch gut…

Hier schließt sich der Kreis zur Bandsäge von oben, denn gewisse DBMS (Datenbank Management Systeme) stehen ja schon ohne bidirektionale Replikation nicht unbedingt im Ruf, Datenintegrität besonders hoch zu bewerten (https://bugs.mysql.com/bug.php?id=11472).

Zur Performance:

Ich erinnere mich, dass Oracle seinerzeit für ihr RAC angegeben hat, dass jeder neue Knoten 90% der Leistung des vorherigen Knotens bringt*. Was ein sensationell guter Wert wäre, aber eben alles andere als lineare Skalierung (linear steigt lediglich der Preis…):


WITH perf AS (
SELECT nodes, 0.9^(nodes-1) AS nextnodes_performance
FROM generate_series(1,8) AS nodes
)
SELECT *
,avg(nextnodes_performance) OVER (ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
AS average_performance
,nodes * avg(nextnodes_performance) OVER (ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
AS overall_performance
FROM perf;
┌───────┬───────────────────────┬────────────────────────┬────────────────────────┐
│ nodes │ nextnodes_performance │ average_performance │ overall_performance │
├───────┼───────────────────────┼────────────────────────┼────────────────────────┤
│ 1 │ 1.0000000000000000 │ 1.00000000000000000000 │ 1.00000000000000000000 │
│ 2 │ 0.9000000000000000 │ 0.95000000000000000000 │ 1.90000000000000000000 │
│ 3 │ 0.8100000000000000 │ 0.90333333333333333333 │ 2.70999999999999999999 │
│ 4 │ 0.7290000000000000 │ 0.85975000000000000000 │ 3.43900000000000000000 │
│ 5 │ 0.6561000000000000 │ 0.81902000000000000000 │ 4.09510000000000000000 │
│ 6 │ 0.5904900000000000 │ 0.78093166666666666667 │ 4.68559000000000000002 │
│ 7 │ 0.5314410000000000 │ 0.74529014285714285714 │ 5.21703099999999999998 │
│ 8 │ 0.4782969000000000 │ 0.71191598750000000000 │ 5.69532790000000000000 │
└───────┴───────────────────────┴────────────────────────┴────────────────────────┘

* vielleich waren es auch 80% oder 95% oder die Aussage war einfach kompletter Humbug?

Zur Verfügbarkeit:

Ein anderes gerne vorgebrachtes Argument, z.B. auf galeracluster.com ist “Transparent to Applications: Required no or minimal changes to the application”.

Ich habe mich immer gefragt, wie Oracle beim RAC das TCP-Protokoll aushebelt, eine Netzwerkverbindung bricht nun einmal ab, wenn der Host offline geht. Bis mir mal jemand gesteckt hat, dass man auf ein RAC mit einer anderen Client-Bibliothek zugreift. Mit anderen Worten: der Verbindungsabbruch wird nicht an das Programm durchgereicht, sondern das Statement (bzw. die Transaktion?) wird auf einer neuen Verbindung wiederholt. Ich unterstelle einfach mal, dass Galera etc. ähnlich arbeiten.

Können das die modernen Connection-Pools, ORMs etc. nicht auch alle schon mehr oder weniger selbsttätig oder mit “minimal changes”? Eine Applikation sollte es auf jeden Fall können. Aber gut, es sollte auch keine Applikationen mehr geben, die mehr als ein Statement außerhalb einer Transaktion durchführen…!

Auf jeden Fall rücken solche Aussagen die entsprechenden Produkte m. E. in die Nähe eines Worts, das im Titel dieses Beitrags steht…

Der klassische Ansatz:

Der Vollständigkeit halber sei noch kurz umrissen, wie eine hochverfügbare Cluster-Lösung mit PostgreSQL oder auch anderen DBMS aussehen kann.

  • ein Knoten (“Primary” oder non-PC “master”, P) erlaubt lesende und schreibende Zugriffe (R/W)
  • n andere Knoten (“Secondaries” oder “slaves”, S1,…,Sn) erhalten die Änderungen von P und erlauben lesende Zugriffe (RO)
  • zusätzlich landen alle Änderungen in einem Archiv, aus dem jeder beliebige Zeitpunkt wieder hergestellt werden kann (PITR)
  • Sn können synchron oder asynchron replizieren (bei synchroner Replikation sollte n > 1 sein!)

Der Zugriff auf den Knoten P kann auf verschiedene Arten erfolgen:

  • Clients erhalten die IPs aller Knoten und können selbst festlegen, ob sie Schreib-Lesezugriff benötigen
  • P hat eine zusätzliche virtuelle IP-Adresse, unter der er angesprochen wird (gerne zusammen mit P in einer Resource-Group der eingesetzten HA-Lösung)
  • ein vorgeschaltetes Tool, z.B. HAProxy weiß, welcher Knoten gerade P ist

Zusätzlich können Clients entscheiden, ob ihre jeweilige Aktivität nur lesend oder schreibend ist und sich entsprechend mit P oder einem Sn unterhalten, um die Gesamt-Performance zu verbessern.

Manche Pooler, z.B. PGPool-II können diese Unterscheidung sogar selber mehr oder weniger gut treffen. Vorsicht aber mit z.B. schreibenden Triggern!

Dass eine Client-Software eine halbwegs funktionale Fehlerbehandlung haben sollte, vielleicht sogar mit ein wenig Wartezeit vor’m retry, versteht sich von selbst.

Multi-Master-Datenbankcluster bringen einige Aspekte mit, die zu wenig oder zumindest selten beachtet werden. Manche sind ausgesprochen gefährlich!

Eine klassische Replikationslösung bietet annähernd dieselbe Verfügbarkeit, i.A. deutlich bessere Performance und bereitet auf Dauer wesentlich weniger Kopfschmerzen.

Wie man ein solches Cluster aufbaut, lernt man in unserem Kurs PostgreSQL Fundamentals.

Gunnar “Nick” Bluth hat seine Liebe zu relationalen Datenbanken Ende des letzten Jahrtausends entdeckt. Über MS Access und MySQL 3.x landete er sehr schnell bei PostgreSQL und hat nie zurückgeschaut, zumindest nie ohne Schmerzen. Er verdient seine Brötchen seit beinahe 20 Jahren mit FOSS (Administration, Schulungen, Linux, PostgreSQL). Gelegentlich taucht er auch tiefer in die Programmierung ein, so als SQL-Programmierer bei der Commerzbank oder in App-Nebenprojekten.