Heim >Datenbank >MySQL-Tutorial >MySQL – Eine detaillierte Einführung zum Hinzufügen einer neuen Datenbank zur MySQL-Master-Slave-Replikationsliste
MySQL – Eine detaillierte Einführung zum Hinzufügen einer neuen Datenbank zur MySQL-Master-Slave-Replikationsliste
MySQL-Master-Slave-Replikation Normalerweise richten wir die Datenbank ein Die Parameterkonfigurationsoption binlog-do-db, die synchronisiert werden muss, kann die Datenbank angeben, die auf dem Master synchronisiert werden muss, und Replicate-do-db gibt die Datenbank an, die vom Datenpunkt aus synchronisiert werden muss Sicht. (Im Allgemeinen ist nur binlog-do-db auf dem Master festgelegt, und es ist nicht erforderlich, beide gleichzeitig festzulegen. Für alle Fälle können Sie auch Replicate-ignore-db auf dem Slave hinzufügen.)
Heute war das Problem, dass dem Master eine neue Datenbank hinzugefügt wurde. Wie füge ich die neu hinzugefügte Datenbank zur Master-Slave-Replikationskette von MySQL hinzu? (Das heißt, die Master-Slave-Replikation zurücksetzen, ohne die gesamte Bibliothek erneut zu replizieren).
Lassen Sie uns zunächst die grundlegenden Schritte der Master-Slave-Replikation aufzählen (MySQL-Master-Slave muss zuerst auf den jeweiligen Servern konfiguriert werden).
mysqldump --master-data --single-transaction -R --databases [db_name] | gzip -9 - | pv > all-db-with-master-data.sql.gz
Hinweis: innodb verwendet –single-transaction, myisam muss –lock-all- verwenden Tische.
pv < all-db-with-master-data.sql.gz | zcat | mysql
slave start
Hinweis: Die Anweisung zum Wechseln zur Hauptdatei ist bereits in der exportierten SQL-Anweisung enthalten. Bitte überprüfen Sie sie sorgfältig. Ändern Sie den Master in „master_log_file=’(Binlog-Name in Relay_master_log_file)’, master_log_pos=(exec_master_log_pos-Nummer).
Wie fügt man also eine neue Datenbank zur bestehenden Master-Slave-Replikationsstruktur hinzu? Beispielsweise möchten wir eine Datenbank auf dem Masterserver hinzufügen, beispielsweise eine Datenbank mit dem Namen newdb. Die spezifischen Vorgänge sind wie folgt:
stop slave;
mysqldump --master-data --single-transaction -R --databases newdb > newdb.sql
Ändern Sie auf dem Hauptserver die my.cnf-Datei und fügen Sie die neue Bibliothek zur binlog-do-db hinzu Parameter und starten Sie MySQL neu.
Suchen Sie die aktuelle Protokolldatei und den aktuellen Speicherort in der exportierten Datei newdb.sql (ändern Sie den Master in …)
und lassen Sie sie dann als Slave Der Server führt die Ausführung an diesem Speicherort aus.
start slave until MASTER_LOG_FILE="mysql-bin.000001", MASTER_LOG_POS=1222220;
Unter diesen befinden sich MASTER_LOG_FILE und MASTER_LOG_POS oben in der exportierten Datenbank newdb.sql.
mysql < newdb.sql
start slave
Wichtiger ist die Protokollposition (Position A) beim Exportieren der neuen Bibliothek auf den Master-Server Dieser Punkt dient als Trennlinie und wird in die neue Bibliothek importiert.
Diese Methode ist auch auf Situationen anwendbar, in denen eine bestimmte Datenbank oder eine bestimmte Datentabelle nicht synchron ist. Wenn beispielsweise eine Tabelle in der Master-Slave-Datenbank aus bestimmten Gründen inkonsistente Daten aufweist, ist die obige Methode nur erforderlich um den Schritt des Neustarts der Datenbank und den Rest zu entfernen. Die Vorgänge sind im Grunde die gleichen
Das obige ist der detaillierte Inhalt vonMySQL – Eine detaillierte Einführung zum Hinzufügen einer neuen Datenbank zur MySQL-Master-Slave-Replikationsliste. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!