Master Server (Primary)
Folgende Schritte sind erforderlich, um einen DATA Server als Master zu konfigurieren.
Als erstes muss ein entsprechendes Konfigurationsmodul erstellt werden. Dies erfolgt mit folgendem Befehl:
cat <<EOFF > /etc/my.cnf.d/jtel-master.cnf # Custom MySQL settings for a specific SQL master server # # WARNING: This file is specific to the master server [mysqld] # # Replication Options # # Specific options for MASTER role # server_id = 1 binlog_format = ROW expire_logs_days = 3 max_binlog_size = 100M log_bin = binlog EOFF
ACHTUNG
Der Wert server_id
taucht sowohl in den Konfigurationsmodulen für Master-Server als auch in den Konfigurationsmodulen für Slave-Server auf. Hierbei ist strikt darauf zu achten, dass dieser Wert eindeutig ist. In einem Verbund dürfen keine DATA-Server die gleiche server_id
haben.
Als nächstes wird ein Benutzer angelegt, mit dem sich die Slave-Server mit dem Master-Server verbinden können - <password> mit den entsprechenden Passwort ersetzen:
mysql -u root -p<password> -v -e"CREATE USER 'repl'@'%' IDENTIFIED BY '<password>'" mysql -u root -p<password> -v -e"GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'" mysql -u root -p<password> -v -e"FLUSH PRIVILEGES"
Im Anschluss muss der MySQL-Server neu gestartet werden, damit alle Einstellungen übernommen werden:
service mysqld restart
Keep only bin logs for 4 hours
This step is necessary, on master servers with a high load and low disk capacity - replace <password> with the DB password:
echo "FLUSH LOGS;" > /home/jtel/purge.sql echo "PURGE BINARY LOGS BEFORE NOW() - INTERVAL 4 HOUR;" >> /home/jtel/purge.sql echo '#!/bin/bash' > /home/jtel/purge.sh echo "mysql -uroot -p<password> < /home/jtel/purge.sql" >> /home/jtel/purge.sh chmod 700 /home/jtel/purge.sh mv /home/jtel/purge.sh /etc/cron.hourly/
Slave Server
Folgende Schritte sind erforderlich, um einen DATA-Server als Slave zu konfigurieren. Es handelt sich hierbei um eine unverschlüsselte Replikation. Eine verschlüsselte Replikation kann gemäß https://www.thomas-krenn.com/de/wiki/MySQL_Verbindungen_mit_SSL_verschl%C3%BCsseln umgesetzt werden.
Als erstes muss ein entsprechendes Konfigurationsmodul erstellt werden. Dies erfolgt mit folgendem Befehl:
cat <<EOFF > /etc/my.cnf.d/jtel-slave.cnf # Custom MySQL settings for a specific SQL slave server # # WARNING: This file is specific to the slave server [mysqld] # Specific options for SLAVE role # server_id = 2 EOFF
ACHTUNG
Der Wert server_id
taucht sowohl in den Konfigurationsmodulen für Master-Server als auch in den Konfigurationsmodulen für Slave-Server auf. Hierbei ist strikt darauf zu achten, dass dieser Wert eindeutig ist. In einem Verbund dürfen keine DATA-Server die gleiche server_id
haben.
Im Anschluss muss der MySQL-Server neu gestartet werden, damit alle Einstellungen übernommen werden:
service mysqld restart