...
- Auf Slave-Server anmelden
- Anmeldung in MySQL mit Credentials USER und PWD, danach Slave stoppen und MySQL wieder verlassen. Dafür folgende Befehle nutzen:
mysql -uUSER -pPWD
STOP SLAVE;
RESET SLAVE;
QUIT;
MySQL Server mit
servcie mysqld restart
neu starten.
- Anmeldung in MySQL mit Credentials USER und PWD, danach Slave stoppen und MySQL wieder verlassen. Dafür folgende Befehle nutzen:
- Einen MySQL-Dump schreiben. Auf dem Master-Server nun folgenden Schritte durchführen. Dazu ein Backup-Verzeichnis anlegen und in selbiges wechseln. Der MySQL-Dumb wird nun mit dem folgenden Befehl ausgeführt:
mysqldump -uUSER -pPWD --single-transaction --master-data=2 --databases JTELWeb JTELStats JTELLog --add-drop-database --add-drop-table --events --routines > filename.sql
Hierzu eine kurze Erklärung:
- <Name LogFile> und <Position LogFile> werden durch --master-data im Dump gespeichert.
- nur die JTEL-Datenbanken verwenden '--databases'
- alle Datenbanken vor Import löschen '--add-drop-database'
- alle Tabelle der Datenbanken vor Import löschen '--add-drop-table'
- alle Routinen und Prozeduren im Dump implementieren '--events --routines'
- Zusätzlich kann noch der Parameter --default_character_set utf8 verwendet werden
- MySQL-Dump vom Master Datenbankserver auf den Slave Datenbank Server kopieren.
Verwende hierfür das Tool deiner Wahl: Kommandozeile (scp), WinSCP, ... - Wir wechseln wieder auf den Slave-Server und importieren nun den mysqldump.
mysql -uUSER -pPWD (Nun sind wir in MySQL)
drop database JTELLog;
drop database JTELStats;
drop database JTELWeb;
source <filename>
- Wir ermitteln nun die Replikationsparameter, da wir sie gleich benötigen werden:
- In der mysqldump Datei ganz am Anfang finden wir im Kommentarblock eine Zeile, die folgendermaßen aussieht:
CHANGE MASTER TO MASTER_LOG_FILE='binlog.000872', MASTER_LOG_POS=11940974;
Die ParameterMASTER_LOG_FILE
undMASTER_LOG_POS
muss man sich merken. - Wir brauchen den Namen oder die IP vom Master DB Server
- Wir brauchen das Passwort des Benutzers
repl
auf dem Master DB Server. Dies entspricht eigentlich immer dem Passwort des Benutzers root - man kann es am einfachsten ausprobieren, in dem man sich vom Slave auf dem Master mit diesem Passwort anmeldet:mysql -h <masterIP> -u repl -p<Passwort>
- wenn das Funktioniert, weiss man bescheid.
- In der mysqldump Datei ganz am Anfang finden wir im Kommentarblock eine Zeile, die folgendermaßen aussieht:
- Jetzt befindet sich auf dem Slave server schon eine konsistente, einigermaßen neuer Stand der Daten. Es ist nun nur noch erforderlich die Replikation neu zu konfigurieren. Dazu folgende Befehle:
mysql -uUSER -pPWD
CHANGE MASTER TO MASTER_HOST='<name oder IP des master servers>',MASTER_USER='repl',MASTER_PASSWORD='<passwort>',MASTER_LOG_FILE='<Name LogFile>', MASTER_LOG_POS=<Position LogFile>;
Hier sind alle Parameter mit denen aus Schritt 5 zu ersetzen.START SLAVE;
SHOW SLAVE STATUS\G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
- Aufräumen von Datenmüll nicht vergessen! D.h. mysqldumps und Verzeichnisse zumindest auf dem Slave wieder löschen. Auf der Master Datenbank kann ein Backup bleiben, sofern genügend Platz vorhanden ist.