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
- Auf dem Master-Server nun folgenden Schritte durchführenDurch 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:
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.
- 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
- 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:Nun überprüfen wir den Slave Status (ein paar mal) mit dem Befehl:und erwarten folgendes Ergebnis:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Damit läuft die Replikation nun wieder. Der Name des Logfiles und die Position sollten zeitnah ziemlich genau denen des show master status auf der Master-Datenbank entsprechen. - Replikation prüfen (nicht notwendig). 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
Ob die Slave Datenbank den Anruf aufgezeichnet hat und dieser in die Slave Datenbank repliziert wurde kann man beispielsweise durch folgende Befehle auf beiden Datenbanken verifizieren:- 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