MariaDB Galera Cluster Setup (3 Server)

Dieses Setup ist für den Betrieb auf drei separaten Servern optimiert.

Server-Struktur

  • Server 1: 10.233.1.101 (Bootstrap-Knoten)
  • Server 2: 10.233.1.102 (Cluster-Knoten)
  • Server 3: 10.233.1.103 (Cluster-Knoten)

Vorbereitung

  1. Stelle sicher, dass auf allen Servern Docker installiert ist.
  2. Die Firewall muss folgende Ports zwischen den Servern erlauben:
    • 3306 (MySQL/MariaDB)
    • 4567 (Galera Cluster Kommunikation)
    • 4568 (Incremental State Transfer - IST)
    • 4444 (State Snapshot Transfer - SST)

Installations-Ablauf

Kopiere das docker/ Verzeichnis auf alle drei Server.

1. Auf Server 1 (10.233.1.101)

Initialisiere den Cluster (Bootstrap). Dieser Knoten wird der erste Master.

bash docker/scripts/init_cluster_n1.sh

2. Auf Server 2 (10.233.1.102)

Tritt dem bestehenden Cluster bei.

bash docker/scripts/init_cluster_n2.sh

3. Auf Server 3 (10.233.1.103)

Tritt dem bestehenden Cluster bei.

bash docker/scripts/init_cluster_n3.sh

Status prüfen

Nachdem alle Knoten gestartet sind, kannst du den Status mit dem bereitgestellten Skript prüfen:

bash docker/scripts/check_nodes.sh

Die Ausgabe sollte wsrep_cluster_size | 3 anzeigen.

Web-Dashboard (Optional)

Du kannst einen kleinen Webserver starten, der den Status des Clusters grafisch im Browser anzeigt:

  1. Starte den Webserver:
    bash docker/scripts/init_webserver.sh
    
  2. Öffne im Browser: http://[SERVER-IP]:8080

Wichtige Hinweise

Network Mode Host

Die Container nutzen network_mode: host. Das sorgt für maximale Performance, da kein Docker-Netzwerk-Overhead entsteht. MariaDB ist direkt über die IP des Host-Servers erreichbar.

Neustart des Clusters

Falls der gesamte Cluster gestoppt wurde, muss der erste Knoten immer wieder mit dem init_cluster_n1.sh Skript (Bootstrap) gestartet werden, um den Cluster neu zu initialisieren.

Fehlerbehebung (Recovery)

Falls der Cluster nach einem harten Neustart im "Restart-Loop" hängt, nutze auf Server 1 das Recovery-Skript:

bash docker/scripts/recover_cluster.sh

Dieses Skript forciert den Bootstrap von Node 1. Sobald dieser fertig ist, kannst du Node 2 und 3 normal starten.

Verzeichnisstruktur

Die Skripte erwarten, dass die Verzeichnisstruktur (docker/scripts/ und docker/mariadb/n*/) erhalten bleibt, da sie intern mit relativen Pfaden arbeiten.

S
Description
No description provided
Readme
36 KiB
0 Stars 1 Watchers 0 Forks
Languages
Shell 81.5%
PHP 18.5%