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 --master-data --databases JTELWeb JTELStats JTELLog --add-drop-database --add-drop-table --events --routines > filename.sql
- <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.
- 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! BESSER IST a! 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.sql
- 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