MySQL bietet asynchrone Replikation in dem ein Master-Datenbank -Server an einen oder mehrere Slave-Server repliziert wird . Sie können die Replikation auf alle oder ausgewählte Datenbanken oder nur ausgewählte Tabellen enthalten . Replication können Sie die Arbeitslast auf mehrere Slaves verteilt , Backups auf den Slaves ohne Beschädigung der Meister , führen Analysen auf Sklaven , ohne die Leistung des Meisters und verteilen die Daten über große Distanzen . Die Grundlagen
Replikation wird durch die binäre Protokolle durchgeführt . Diese Protokolle enthalten alle Anweisungen , die Daten aktualisieren , einschließlich Aussagen , die möglicherweise Ihre Daten , konnte aber nicht. Der Master-Server zeichnet alle Aussagen , und der Server so konfiguriert ist , um eine Kopie des Protokolls erhalten . Die Slaves können so konfiguriert, dass das gesamte Protokoll oder nur Teile davon (zB nur Ereignisse auf bestimmte Datenbanken ) auszuführen.
Die Replikation Informationen innerhalb einer Datei namens " master.info ", die erstellt mit gespeichert die "CHANGE MASTER TO "-Anweisung. Diese Datei enthält Informationen über den Host-Namen des Meisters, den Namen der Protokolldatei und der Position innerhalb der Log-Datei gelesen werden.
Die Replikation Benutzer
Der Sklave wird an den Master mit einem Standard- MySQL-Konto mit dem " Replikationsslave ' " Privileg zu verbinden. Der Benutzername und das Kennwort für dieses Konto wird als Klartext Eintrag in der " master.info "-Datei gespeichert werden, so ist es am besten , um einen Benutzer , der nur über die Replikation Privilegien zu schaffen.
Konfigurationsdateien
der Master muss binary für den Austausch von Daten Protokollierung aktiviert . Es muss auch mit einer einzigartigen Server - ID konfiguriert werden. Diese Werte werden durch die " my.cnf " -Datei, die gelesen werden, wenn der Server gestartet wird .
[Mysqld ] log -bin = mysql- binserver - id = 1
Der Sklave muss auch so konfiguriert werden, mit : Die Werte werden in der " [mysqld ]"-Abschnitt mit der folgenden Syntax platziert ein einzigartiges " server-id " durch die " my.cnf "-Datei. Binary Logging muss nicht aktiviert werden, aber es kann nützlich sein, für Datensicherung und Disaster Recovery.
Replication
Replikation richtig zu starten, räumen die Master binären Protokoll mit den " FLUSH TABLES WITH READ LOCK ; "-Anweisung. Dann nutzen Sie die " SHOW MASTER STATUS" Anweisung, um die Binär-Log- Dateinamen zu ermitteln und Offset-Position .
Erstellen eine Momentaufnahme der Daten auf der Master-Datenbank mit dem " mysqldump " Dienstprogramm. Vom Betriebssystem Eingabeaufforderung " mysqldump - all-databases - lock- all-tables > dbdump.db " . Dann aus dem MySQL-Client , geben Sie die "UNLOCK TABLES; " Anweisung, um die Lese- Verriegelung zu lösen. Kopieren Sie die " dbdump.db "-Datei zu jedem der Slaves mit dem Befehl " mysql < dbdump.db " von des Betriebssystems Eingabeaufforderung ausgegeben .
Schließlich Einrichten der Slaves an den Master mit der Verbindung folgenden Befehl ein:
CHANGE MASTER TO MASTER_HOST = ' master_host_name ' , Master_User = ' replication_user_name ' , MASTER_PASSWORD = ' replication_password ' , MASTER_LOG_FILE = ' recorded_log_file_name ' , MASTER_LOG_POS = recorded_log_position ;
ändern die Werte der Variablen , um die Informationen für Ihr System anzupassen.