Heim  >  Artikel  >  Datenbank  >  Detaillierte Analyse von MySQL zum schnellen Aufbau einer Master-Slave-Replikationsarchitektur

Detaillierte Analyse von MySQL zum schnellen Aufbau einer Master-Slave-Replikationsarchitektur

WBOY
WBOYnach vorne
2022-03-11 18:01:311527Durchsuche

Dieser Artikel vermittelt Ihnen relevantes Wissen über MySQL und stellt hauptsächlich verwandte Themen zum schnellen Aufbau einer Master-Slave-Replikationsarchitektur vor. Die von der MySQL-Datenbank bereitgestellte Master-Slave-Replikationsfunktion kann problemlos eine automatische Datenreplikation auf mehreren Servern realisieren. Backup ermöglicht die Erweiterung der Datenbank und erhöht die Datensicherheit erheblich. Ich hoffe, dass es für alle hilfreich ist.

Detaillierte Analyse von MySQL zum schnellen Aufbau einer Master-Slave-Replikationsarchitektur

Empfohlenes Lernen: MySQL-Tutorial

1. Master-Slave-Replikation und Lese-Schreib-Trennung

1.1 Master-Slave-Replikation (Datenebene)

Master-Slave-Replikation ist die Voraussetzung für Lese- und Schreibvorgänge. Trennung schreiben. Die von der MySQL-Datenbank bereitgestellte Master-Slave-Replikationsfunktion kann problemlos eine automatische Datensicherung auf mehreren Servern realisieren, die Erweiterung der Datenbank realisieren und die Datensicherheit erheblich verbessern. Gleichzeitig kann nach der Implementierung der Master-Slave-Replikation die Ladeleistung der Datenbank durch die Implementierung der Lese-/Schreibtrennung weiter verbessert werden.

Wie in der Abbildung dargestellt, ist der allgemeine Implementierungsprozess der Master-Slave-Replikation dargestellt.

Detaillierte Analyse von MySQL zum schnellen Aufbau einer Master-Slave-Replikationsarchitektur

1.2 Lese-Schreib-Trennung (Geschäftsebene)

Die Lese-Schreib-Trennung basiert auf der Master-Slave-Replikation. Nur durch die Realisierung der Master-Slave-Replikation der Datenbank kann die Lese-Schreib-Trennung weiter realisiert werden. Die Lese-Schreib-Trennung kann so verstanden werden, dass alle Abfragevorgänge in der Unterdatenbank und alle Schreibvorgänge in der Hauptdatenbank ausgeführt werden. Nachdem die Daten in die Hauptdatenbank geschrieben wurden, werden sie durch Master-Slave-Replikation in der Unterdatenbank gesichert, um die Datenkonsistenz sicherzustellen.

Detaillierte Analyse von MySQL zum schnellen Aufbau einer Master-Slave-Replikationsarchitektur

2. Implementierung

Lassen Sie uns zunächst das Prinzip der Master-Slave-Replikation verstehen:

  1. Wenn sich die Daten in der Hauptdatenbank ändern, wird der Änderungsdatensatz zunächst in das Binlog-Protokoll geschrieben.
  2. Die Slave-Datenbank erkennt innerhalb eines bestimmten Zeitraums das Binlog-Protokoll in der Master-Datenbank. Wenn Änderungen auftreten, fordert sie die Informationen der Master-Protokolldatei an.

Nachdem wir das Prinzip verstanden haben, müssen wir die Voraussetzungen für die Aktivierung der Master-Slave-Replikation kennen:

  1. Der Masterknoten muss Binlog aktivieren (MySQL aktiviert Binlog standardmäßig nicht).

  2. Slave-Knoten, geben Sie a an Binlog-Datei und synchronisieren Der Offset

    • gibt die IP des Masterknotens an

    • Der Benutzername und das Passwort zum Ausführen des Masterknotens

Da wir es nun alle grob verstanden haben, erstellen wir einen -Master-One-Slave-Datenbankmodell und demonstrieren Sie den Konfigurationsprozess der Datenbank-Master-Slave-Einrichtung.

Bereiten Sie zwei CentOS-Server vor und installieren Sie mysql5.7 im Voraus.

2.1 Öffnen Sie das Binlog-Protokoll des Master-Servers Den folgenden Inhalt müssen wir selbst hinzufügen. Mein Ziel hier ist es, eine Master-Slave-Replikation von Daten in der Myslave-Datenbank durchzuführen.

vim /etc/my.cnf

Verwenden Sie den folgenden Befehl, um MySQL neu zu starten. Verschiedene Linux-Versionen können unterschiedliche Befehle haben.

server-id = 1 #server-id 服务器唯一标识log_bin = master-bin 
#log_bin 启动MySQL二进制日志log_bin_index = master-bin.index
binlog_do_db = myslave #binlog_do_db 指定记录二进制日志的数据库 这两个指定可以不添加binlog_ignore_db = mysql 
#binlog_ignore_db 指定不记录二进制日志的数据库

Nach erfolgreichem Start können wir den Bin-Log-Öffnungsstatus durch die folgende Anweisung sehen: (Fragen Sie ihn einfach direkt in Navicat ab)

service mysql restart

2.2 Fernzugriff

show variables like 'log_bin%';
Detaillierte Analyse von MySQL zum schnellen Aufbau einer Master-Slave-Replikationsarchitektur2.3 Slave-Knotenkonfiguration

First On Führen Sie auf dem Masterknoten den folgenden Befehl aus, um den Status des Masterknotens zu verstehen und die in der folgenden Abbildung gezeigten Informationen zu erhalten.

#允许远程用户访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.221.131' IDENTIFIED BY '123456' WITH GRANT OPTION;
#刷新
FLUSH PRIVILEGES;

Detaillierte Analyse von MySQL zum schnellen Aufbau einer Master-Slave-ReplikationsarchitekturÄndern Sie relevante Konfigurationen

show master status;
    Fügen Sie relevante Informationen hinzu:
  • vim /etc/my.cnf

    Denken Sie daran, den Dienst neu zu starten;

    server-id = 2  #唯一标识relay-log = slave-relay-bin
    relay-log-index = slave-relay-bin.index
    replicate-do-db=myslave #备份数据库 对应master中设置的,可以不设置replicate-ignore-db=mysql #忽略数据库

    Führen Sie den folgenden Befehl auf dem Slave-Knoten aus.

    service mysql restart
  • master_log_file ist der im ersten Schritt erhaltene Dateiname;
  • master_log_pos ist die im ersten Schritt erhaltene Synchronisationsposition; Die folgende Abbildung zeigt an, dass die Master-Slave-Synchronisation erfolgreich hergestellt wurde. Tabellentests können in der Hauptdatenbank erstellt werden.

    change master to master_host='192.168.221.128',master_user='root',master_password='123456',master_log_file='binlog.000009',master_log_pos=2339;

  • Empfohlenes Lernen:

    MySQL-Lerntutorial

Das obige ist der detaillierte Inhalt vonDetaillierte Analyse von MySQL zum schnellen Aufbau einer Master-Slave-Replikationsarchitektur. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen