Rebuild Slave-DB & Replication
Es dürfen auf dem Master-Server keine VarCalData Einträge vorhanden sein und es darf kein Traffic auf dem Master-Server sein.
- 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;
- QUIT;
- Auf dem Master-Server nun folgenden Schritte durchführen
- Anmeldung in MySQL, den Master Status abrufen, Daten notieren um die Replikation später auf dem Slave wieder an genau dieser Stelle wieder zu starten. Dafür folgende Befehle nutzen:
- mysql -uUSER -pPWD
- SHOW MASTER STATUS \G;
- Binlog-File <Name LogFile> und Binlog-Position <Position LogFile> merken
- QUIT;
- Durch QUIT; ist man nun wieder auf dem Master Datenbank Server. Nun wird ein MySQL-Dump geschrieben. Dazu ein Backup-Verzeichnis anlegen und in selbiges wechseln. Der MySQL-Dumb wird nun mit dem folgenden Befehl ausgeführt:
- mysqldump -uUSER -pPWD --databases JTELWeb JTELStats JTELLog --add-drop-database --add-drop-table --events --routines > filename
- 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.
- Anmeldung in MySQL, den Master Status abrufen, Daten notieren um die Replikation später auf dem Slave wieder an genau dieser Stelle wieder zu starten. Dafür folgende Befehle nutzen:
- ENTWEDER a ODER b!Wir wechseln wieder auf den Slave-Server und importieren nun den mysqldump.
- Dafür verwenden wir die folgenden Befehle
- mysql -uUSER -pPWD (Nun sind wir in MySQL)
- drop database JTELLog
- drop database JTELStats
- drop database JTELWeb
- source <filename>
- Dafür verwenden wir die folgenden Befehle
- mysql -uUSER -pPWD < filename
- Dafür verwenden wir die folgenden Befehle
- Als nächstes wieder Anmeldung auf dem Slave-Server in mysql, danach wird ein Slave Reset durchgeführt, der Startpunkt für die Replikation auf den vorhin notierten Wert gesetzt und anschließend der Slave wieder gestartet. Dazu folgende Befehle:
- mysql -uUSER -pPWD
- RESET SLAVE;
- CHANGE MASTER TO MASTER_LOG_FILE='<Name LogFile>', MASTER_LOG_POS = <Position LogFile>;
- START SLAVE;
- SHOW SLAVE STATUS \G;
- Slave_IO_Running: Yes
- Slave_SQL_Running: Yes
- Replikation prüfen. Dazu irgendein Ereignis im Master hervorrufen, das dann in der Slave Datenbank repliziert wird. Beispielsweise ein Anruf.
- Testanruf im System
- Master-Server Status prüfen
- Slave-Status prüfen
- letzter Eintrag sollte identisch sein, so dass ACD-System an sich funktioniert und auch die Replikation
- Login auf Master / Slave Datenbank Server
- Login in MySQL: mysql -uUSER -pPWD
- Richtige Datenbank wählen: use JTELStats
- Anrufdaten abfragen: SELECT * FROM StatisticsPartA WHERE ANUMBER LIKE '%<Anrufernummer>%' ORDER BY ID DESC LIMIT 1;
- Die Datenbanken sollten nun konsistent sein, da auf dem Slave-Server die Replikation zeitlich vor dem Zeitstempel des MySQL-Dumps beginnt