Ich als Betreiber von einem großen DynDNS Dienst (IPv64.net) muss für meine Nameserver den richtigen Weg finden, um meine Datenbanken abzugleichen. Was bietet sich mehr an als eine MySQL Replikation. Für mich war natürlich eine asynchrone Replikation ausreichen.

Asynchrone Replikation bedeutet, dass die Daten auf den Slave zwar kopiert werden und synchron gehalten werden, aber für den Client die Bestätigung bereits kommt, wenn der Master die Daten geschrieben hat. Also es kann vorkommen, dass auf dem Slave die Daten erst wenige Millisekunden später kopiert werden und dann zur Verfügung stehen. Das nennt man Asynchron.

Aber eben genau da, z.B. bei Webseiten ist das nicht grundlegend schlimm, wenn der Datenbankbestand ein paar Millisekunden abweicht.

# Vorschau Produkt Bewertung Preis
1 MINIS FORUM MS-01 Mini Workstation Intel Core i5-12600H (vPro Enterprise Support) Mini PC,2X 10Gbps SFP+/2X 2.5G RJ45/2x USB4/HDIM/1x PCIe4.0x16 Slot/Support 3X M.2 2280/22110/U.2 SSD,Pas de RAM/SSD MINIS FORUM MS-01 Mini Workstation Intel Core i5-12600H (vPro Enterprise Support) Mini PC,2X 10Gbps… Aktuell keine Bewertungen 439,00 EUR
2 MINIS FORUM MS-01 Mini PC, Prozessor Core i5-12600H 12C/16T bis zu 4,5 GHz, Barebone ohne DDR5 SODIMM/M.2 2280 NVME SSD/3x M.2 2280/22110/U.2 SSD/OS, HDMI/2 x USB4/Port SFP+ 10G×2/2,5G RJ45x2 MINIS FORUM MS-01 Mini PC, Prozessor Core i5-12600H 12C/16T bis zu 4,5 GHz, Barebone ohne DDR… Aktuell keine Bewertungen 435,00 EUR
3 MNBOXCONET S2 Mini PC N150 10GBE SFP+, Firewall Appliance Micro Büro Hardware, Barebone No RAM No SSD, 2xi226V 2.5Gbit LAN, USB C, TF Card Slot, Support Proxmox OPNsense, SPK/MIC MNBOXCONET S2 Mini PC N150 10GBE SFP+, Firewall Appliance Micro Büro Hardware, Barebone No RAM No… Aktuell keine Bewertungen 339,99 EUR
4 MINIS FORUM MS-A2 Mini PC, AMD Ryzen 7 7745HX (8C/16T, bis 5,1 GHz), PCIe x16 Slot, 8K Triple Display, 2×10G SFP+ & 2×2,5G LAN, 3×M.2 NVMe, Barebone ohne RAM & SSD MINIS FORUM MS-A2 Mini PC, AMD Ryzen 7 7745HX (8C/16T, bis 5,1 GHz), PCIe x16 Slot, 8K Triple… Aktuell keine Bewertungen 499,00 EURAmazon Prime
5 MINIS FORUM MS-A2 Mini PC,AMD Ryzen 7 7745HX Processor 8C/16T bis zu 5,1 GHz/AMD Radeon 610M Mini Workstation,Barebone ohne DDR5/M.2 2280 SSD/OS, HDMI/USB-C x 2/2,5G RJ45 LAN x 2/10G SFP+ x 2, PCIEx16 MINIS FORUM MS-A2 Mini PC,AMD Ryzen 7 7745HX Processor 8C/16T bis zu 5,1 GHz/AMD Radeon 610M Mini… Aktuell keine Bewertungen 450,00 EUR
6 MINIS FORUM MS-01 Mini Workstation Intel Core i9-13900H (vPro Enterprise) Mini PC,2X 10Gbps SFP+/2X 2.5G RJ45/2x USB4/HDIM/1x PCIe4.0x16 slot/3x M.2 2280/22110/U.2 SSD,Pas de RAM/SSD MINIS FORUM MS-01 Mini Workstation Intel Core i9-13900H (vPro Enterprise) Mini PC,2X 10Gbps SFP+/2X… Aktuell keine Bewertungen 695,00 EUR
7 MINIS FORUM MS-01 Mini PC, Core i9-13900H 14 Core/20 Thread Prozessor bis zu 5,4 GHz, Barebone ohne DDR5/PCIE SSD/OS, Mini-Desktop-Computer, HDMI/2 x USB4, 10G SFP+ Port ×2,2,5G RJ45x2 MINIS FORUM MS-01 Mini PC, Core i9-13900H 14 Core/20 Thread Prozessor bis zu 5,4 GHz, Barebone ohne… Aktuell keine Bewertungen 689,00 EUR
8 MINIS FORUM MS-A2 Mini PC, AMD Ryzen 9 8945HX (16C/32T bis 5,4 GHz, 64 MB Cache), PCIe x16, 8K Triple Display (HDMI + 2X USB-C), 2X 10G SFP+, 2X 2,5G LAN, 3X M.2, ohne RAM/SSD MINIS FORUM MS-A2 Mini PC, AMD Ryzen 9 8945HX (16C/32T bis 5,4 GHz, 64 MB Cache), PCIe x16, 8K… Aktuell keine Bewertungen 599,00 EUR
9 MINIS FORUM Mini PC MS-A2, AMD Ryzen 9 8945HX 16 Kerne/32 Threads Prozessor bis zu 5,4 GHz, Barebone ohne DDR5 RAM(Max bis zu 96GB)/SSD/OS, HDMI/USB-C x 2, 2,5G RJ45 x 2/10G SFP+ x 2, Wi-Fi 6E, BT5.2 MINIS FORUM Mini PC MS-A2, AMD Ryzen 9 8945HX 16 Kerne/32 Threads Prozessor bis zu 5,4 GHz, Barebone… Aktuell keine Bewertungen 599,00 EUR
10 MINIS FORUM MS-A2 Mini PC, AMD Ryzen 9 9955HX 16C/32T bis zu 5,4 GHz mit AMD Radeon 610M, Barebone ohne DDR5 RAM(Max bis zu 96GB)/SSD/OS, HDMI/USB-C x 2/2,5G RJ45 x 2/10G SFP+ x 2, Wi-Fi 6E, BT5.2 MINIS FORUM MS-A2 Mini PC, AMD Ryzen 9 9955HX 16C/32T bis zu 5,4 GHz mit AMD Radeon 610M, Barebone… Aktuell keine Bewertungen 837,00 EUR

1. MySQL Replikation einrichten – Master Einstellungen

Als Erstes legen wir einen Benutzeraccount auf dem Master an, welcher benutzt werden darf von den Slaves für die Replikation. Ändert natürlich nach Bedarf, die IP-Adresse, den Benutzernamen und das Passwort.

mysql -u root -p

mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'repl'@'192.168.0.%' IDENTIFIED BY 'password';

Es folgen einige kleine Änderungen in der „/etc/my.conf“ (MySQL) oder „/etc/mysql/mariadb.conf/50-server“ (MariaDB). Danach starten wir den MySQL Dienst neu und überprüfen unsere Einstellungen.

log_bin = mysql-bin
server_id = 1
sync_binlog = 1
bind-address = 192.168.0.1 <Nimm hier deine IP>

## MySQL Neustarten ##
service mariadb restart

## Master Status überprüfen ##
mysql -u root -p

mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |       98 |              |                  | 
+------------------+----------+--------------+------------------+

2. MySQL Replikation einrichten – Slave Einstellungen

Es folgen einige kleine Änderungen in der „/etc/my.conf“ (MySQL) oder „/etc/mysql/mariadb.conf/50-server“ (MariaDB).

server_id = 2
relay_log = mysql-relay-bin
read_only = 1

3. Daten auf den Slave kopieren

Jetzt müssen wir initial 1x die Daten (wenn vorhanden) auf den Slave kopieren, damit der Datenstand auf Master und Slave beim starten der Replikation gleich ist.

## Auf dem MASTER ##
mysqldump --all-databases --allow-keywords --single-transaction --flush-logs --master-data=2 -r /root/mysqldump.sql

## Daten auf den Slave kopieren ##
scp mysqldump.sql root@<IP-Adresse>:/root

## Master Status anzeigen lassen ##
mysql -u root -p

mysql> show master status;
## Auf dem Slave Datenbank importieren ##
cat /root/mysqldump.sql | mysql -u root -p

4. MySQL Replikation starten

Jetzt starten wir die Replikation auf dem Slave.

GANZ WICHTIG: Mit dem nächsten Befehl müssen die Daten „master_log_file“ & „master_log_pos“ übereinstimmen mit der Ausgabe von dem „show master status“ Befehl.

mysql -u root -p

mysql> change master to master_host='<IP-Addresse>', master_user='repl', 
  master_password='password', master_log_file='mysql-bin.000001', master_log_pos=98;

## Slave starten ##
mysql> start slave;

## Replikation Status auf Slave überprüfen ##
mysql> show slave status\G

## Replikation Status auf Master überprüfen ##
mysql> show master status;

Das war’s. Jetzt werden jegliche Änderungen auf dem Master sofort auf den / die MySQL Slaves kopiert. Du kannst nun die Slave Datenbank Server als lesende Datenbanken verwenden und den Master weiter entlasten. Der Slave kann natürlich auch im Falle eines großen Ausfalls zum Master promotet werden.

Das folgende Bild zeigt auch wie ich die Replikation in dem Dienst IPv64.net verwende.

IPv64.net MySQL Replikation
IPv64.net MySQL Replikation