Post 1234
Unix

MySQL/MariaDB Cluster einrichten: Tools und Generatoren im Überblick

Ein hochverfügbarer Datenbank-Cluster ist für produktive Umgebungen unverzichtbar – er eliminiert Single Points of Failure und ermöglicht horizontale Skalierung. Die manuelle Einrichtung eines MySQL- oder MariaDB-Galera-Clusters ist jedoch komplex und fehleranfällig. Mit den richtigen Werkzeugen lässt sich dieser Prozess erheblich vereinfachen.

Severalnines ClusterControl

Eine der umfangreichsten Lösungen für automatisiertes Cluster-Deployment ist Severalnines ClusterControl. Das Tool bietet einen grafischen Konfigurations-Generator sowie vollautomatisches Deployment für verschiedene Cluster-Typen: MySQL Galera Cluster, MySQL Replication, MySQL NDB Cluster, MongoDB Replica Set und PostgreSQL.

MySQL Galera Cluster manuell aufsetzen

Wer den Cluster selbst einrichten möchte, benötigt auf allen Knoten Galera und die passende MySQL/MariaDB-Version. Hier die grundlegenden Schritte für Ubuntu/Debian:

# MariaDB + Galera auf allen Knoten installieren
apt-get install mariadb-server mariadb-galera-server

# Galera-Konfiguration in /etc/mysql/conf.d/galera.cnf
[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0

# Galera Provider
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_name="mein_cluster"
wsrep_cluster_address="gcomm://192.168.1.10,192.168.1.11,192.168.1.12"
wsrep_sst_method=rsync

# Knotenspezifisch
wsrep_node_address="192.168.1.10"
wsrep_node_name="node1"

Ersten Knoten bootstrappen

Der erste Knoten muss manuell gestartet werden, um den neuen Cluster zu initialisieren:

# Ersten Knoten starten
galera_new_cluster

# Status prüfen
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size';"

Die weiteren Knoten werden dann normal gestartet und treten dem Cluster automatisch bei:

systemctl start mariadb

Cluster-Status überwachen

Die wichtigsten wsrep-Statusvariablen für die laufende Überwachung:

mysql -u root -p -e "SHOW STATUS LIKE 'wsrep%';" | grep -E "cluster_size|cluster_status|ready|connected|flow_control"

Backup im Cluster-Betrieb

Im Cluster-Betrieb empfiehlt es sich, Backups immer von einem dedizierten Knoten zu erstellen, um den aktiven Traffic nicht zu belasten:

# Backup mit mysqldump
mysqldump --all-databases --single-transaction --master-data=2   -u root -p > /backup/cluster_backup_$(date +%Y%m%d).sql

Wer Datenbankserver auf Linux betreibt, findet in der Kategorie Linux & Server weitere Anleitungen zu Backup-Strategien und Serververwaltung. Für den Einsatz von Datenbanken in kleineren Umgebungen ist auch Raspberry Pi als kostengünstiger Testserver interessant.