DB-Replikation
Einrichtung
Master
- MySQL Konfigurationsdatei anpassen:
[mysqld]
server-id = <eindeutige ID zB 10>
log-bin = mysql-bin
binlog-format = ROW
- Neustarten des MySQL-Dienstes auf dem Master-Server
- Benutzer für die Replikation erstellen und Berechtigungen erteilen:
CREATE USER 'replica_user'@'%' IDENTIFIED BY 'secure_password';
GRANT REPLICATION SLAVE ON *.* TO 'replica_user'@'%';
FLUSH PRIVILEGES;
- Erstellen eines Snapshot-Backups:
Dies ist notwendig, um sicherzustellen, dass der Slave-Server mit den aktuellen Daten startet.
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
-- Notieren Sie sich den Wert von 'File' und 'Position'
-- für die spätere Verwendung auf dem Slave-Server.
==> Backup erstellen (mysqldump) und auf dem Slave-Server ablegen.
5. Tabellen wieder entsperren:
UNLOCK TABLES;
Slave
- MySQL Konfigurationsdatei anpassen:
[mysqld]
server-id = <eindeutige ID zB 11>
relay-log = mysql-relay-bin
- Neustarten des MySQL-Dienstes auf dem Slave-Server
-
Datenbank-Dump auf dem Slave-Server importieren
- Slave-Server konfigurieren, um mit dem Master zu synchronisieren:
CHANGE MASTER TO
MASTER_HOST='master_host_ip',
MASTER_USER='replica_user',
MASTER_PASSWORD='secure_password',
MASTER_LOG_FILE='mysql-bin.000001', -- Wert von SHOW MASTER STATUS
MASTER_LOG_POS=1234; -- Wert von SHOW MASTER STATUS
- Replikation starten:
START SLAVE;
- Status der Replikation überprüfen:
SHOW SLAVE STATUS\G;