Tutorial zur MySQL-Datensicherungsmethode mit Multi-Master und One-Slave

Tutorial zur MySQL-Datensicherungsmethode mit Multi-Master und One-Slave

Überblick

Vorgänge, die auf einer Datenbank ausgeführt werden, werden automatisch auf die andere Datenbank angewendet, sodass die Daten in beiden Datenbanken stets konsistent bleiben.

Dies hat folgende Vorteile:

  • Es kann zur Notfallwiederherstellung verwendet werden, und wenn einer von beiden ausfällt, können Sie auf einen anderen wechseln.
  • Es ist ein Lastenausgleich möglich und die Anfragen können auf beliebige Maschinen verteilt werden, um den Website-Durchsatz zu verbessern. Für externe Hot-Backups ist es besonders für die Notfallwiederherstellung geeignet.

MySQL Master-Slave-Replikationsmethode

1 Wenn die Master-Datenbank eine beliebige Datenbank betreibt, wird der Betriebsdatensatz in die Biglog-Protokolldatei geschrieben

2 Die Slave-Datenbank erhält die Protokolldatei der Master-Datenbank über das Netzwerk, schreibt sie in das lokale Protokollsystem und vervollständigt dann die Datenbankereignisse in der Datenbank nacheinander

3. Der Slave wiederholt die Ereignisse im Relay-Protokoll und spiegelt die Änderungen am Master in seiner eigenen Datenbank wider, sodass die Daten an beiden Enden exakt gleich sind.

Umfeld

Betriebssystem: CentOS

MySQL-Version: mysql-5.6.26 (die Datenbankversionen von Master und Slave müssen konsistent sein)

Master1-Konfiguration

1 Binlog-Protokollierung aktivieren

vim /etc/meine.cnf

Server-ID = 6
log-bin=mysql-bin

2 MySQL neu starten, anmelden und autorisieren

mysql -uroot -p123456

gewähre Replikations-Slave, Replikationsclient auf *.* an „repl“@„10.211.55.7“, identifiziert durch „123456“;

Die IP-Adresse ist die IP-Adresse des Slave-Servers

3 Protokollstatus anzeigen

Masterstatus anzeigen;

Master2-Konfiguration

1 Binlog-Protokollierung aktivieren

vim /etc/meine.cnf

Server-ID = 8
log-bin=mysql-bin

2 MySQL neu starten, anmelden und autorisieren

mysql -uroot -p123456

gewähre Replikations-Slave, Replikationsclient auf *.* an „repl“@„10.211.55.7“, identifiziert durch „123456“;

Die IP-Adresse ist die IP-Adresse des Slave-Servers

3 Protokollstatus anzeigen

Masterstatus anzeigen;

Slave-Konfiguration

1 Ändern Sie die Konfigurationsdatei (beachten Sie, dass der Port, an dem die Standarddatenbank des Slaves gestartet wird, geschlossen sein muss: service mysql stop)

vim /etc/meine.cnf

[mysqld]
 binlog-ignore-db=mysql
 binlog_format=gemischt
 Ablaufdatum der Protokolle: 7
 Slave_Überspringen_Fehler=1062
 relay_log=mysql-relay-bin
 log_slave_updates=1

[mysqld_muliti]
 mysqld=/usr/bin/mysqld_safe
 mysqladmin=/usr/bin/mysqladmin
 Benutzer=root
 Passwort=123456
[mysqld6]
 Port = 3306
 datadir=/home/mysql/data6
 pid-Datei=/home/mysql/data6/mysql.pid
 socket=/home/mysql/data6/mysql.sock
 Benutzer=mysql
 Server-ID = 7
[mysqld8]
 Port = 3307
 Datenverzeichnis=/home/mysql/data8
 pid-Datei=/home/mysql/data8/mysql.pid
 socket=/home/mysql/data8/mysql.sock
 Benutzer=mysql
 Server-ID = 7

2 Initialisieren Sie das Build-Verzeichnis

/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/data6 &
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/data8 &

3 Verzeichnisberechtigungen ändern

chown -R mysql /home/mysql/data6

chown -R mysql /home/mysql/data8

4 Starten Sie den Dienst

mysqld_multi --defaults-file=/etc/my.cnf start 6

mysqld_multi --defaults-file=/etc/my.cnf start 8

5 Login-Test (und gesondert autorisieren)

mysql -P 3306 -S /home/mysql/data6/mysql.sock

mysql> ändere Master in master_host='10.211.55.6', master_user='repl', master_password='123456', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos=120;
mysql> Slave starten;

mysql -P 3307 -S /home/mysql/data8/mysql.sock

mysql> ändere Master in master_host='10.211.55.8', master_user='repl', master_password='123456', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos=120;
mysql> Slave starten;

ok, das ist es.

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Implementierungsideen und Schritte für die MySQL-Master-Slave-Konstruktion (mehrere Master und ein Slave)
  • Centos7 Mysql 5.6 Multi-Master- und One-Slave-Lösung und detaillierte Konfiguration
  • MySQL8.0.18-Konfiguration mehrerer Master und eines Slaves

<<:  Wie der Linux-Kernel in den Prozessadressraum eindringt und den Prozessspeicher ändert

>>:  Detaillierte Erklärung der berechneten Eigenschaften, der Überwachungseigenschaften und des Lebenszyklus in Vue.js

Artikel empfehlen

Detailliertes Beispiel für die Verwendung einer asynchronen JS-Fetch-Anforderung

Inhaltsverzeichnis Asynchronität verstehen abrufe...

So stellen Sie Go-Webanwendungen mit Docker bereit

Inhaltsverzeichnis Warum brauchen wir Docker? Bei...

Das Prinzip und die Implementierung der bidirektionalen Bindung in Vue2.x

Inhaltsverzeichnis 1. Implementierungsprozess 2. ...

Zusammenfassung der Grundlagen der Vue-Komponenten

Komponentengrundlagen 1 Wiederverwendung von Komp...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7

In diesem Tutorial erfahren Sie alles über die In...

Installationsmethode für komprimierte MySQL 5.6-Pakete

Es gibt zwei Installationsmethoden für MySQL: MSI...

Lösung für das Problem, dass der Docker-Container nicht gestoppt werden kann

Die Lösung lautet wie folgt: 1. Container löschen...

So verwenden Sie Spark und Scala zum Analysieren von Apache-Zugriffsprotokollen

Installieren Zuerst müssen Sie Java und Scala ins...