Detaillierte Erläuterung des Implementierungsprozesses der Dual-Master-Synchronisierung von Teiltabellen in MySQL 5.7

Detaillierte Erläuterung des Implementierungsprozesses der Dual-Master-Synchronisierung von Teiltabellen in MySQL 5.7

Vorwort

Kürzlich stieß ich auf eine Anforderung. Aufgrund der eigenen Geschäftstätigkeit des Unternehmens müssen einige Tabellen zwischen zwei Datenbanken Daten in Echtzeit und bidirektional synchronisieren, und die Ausfallzeit einer Datenbank wirkt sich nicht auf die andere Datenbank aus. Hier zeichne ich meine eigene technische Recherche auf, um sie bei einer späteren Rekonstruktion zu verwenden. Schauen wir uns ohne weitere Umschweife die ausführliche Einführung an.

Installieren Sie MySQL 5.7

Es wird empfohlen, direkt zur offiziellen Website https://dev.mysql.com zu gehen, um die Yum-Quelle für die Installation herunterzuladen, da dies sicher und bequem ist.

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
yum -y installiere mysql57-community-release-el7-11.noarch.rpm
yum -y installiere MySQL-Server
# MySQL 5.7 installieren
systemctl starte mysqld
# Starten Sie MySQL

Dual Active konfigurieren

my.cnf-Konfiguration

Hier führen wir nur eine einfache Dual-Master-Konfiguration durch und es wird keine datenbankbezogene Optimierung durchgeführt. Wenn Sie eine Optimierung benötigen, können Sie privat chatten.

Die Konfiguration von MySQL1 ist wie folgt

[mysqld]
vim /etc/meine.cnf
Datenverzeichnis=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolische Links = 0
log-error=/var/log/mysqld.log
pid-Datei=/var/run/mysqld/mysqld.pid
skip_name_resolve=EIN
#Einfaches Passwort festlegen validate_password_policy=0
validate_password_length=1
###Hauptkonfiguration log_bin=bin_log
Server-ID = 1
binlog-do-db=ziyun
# Von welcher Bibliothek darf repliziert werden slave_parallel_type='logical_clock'
#Setzen Sie den Replikationstyp auf LOGICAL_CLOCK
Slave_Parallel_Worker = 4
#Setzen Sie die Anzahl der parallelen Operationen auf 4
###Aus der Konfiguration relay-log=relay-bin
relay-log-index=relay-bin.index
replizieren-do-db=ziyun
# Replikation der Hauptdienstbibliothek zulassen replicate-do-table=ziyun.test1
# Welche Tabelle der Hauptdienstbibliothek darf repliziert werden replicate-do-table=ziyun.test2

Die Konfiguration von MySQL2 ist grundsätzlich die gleiche wie oben, außer dass server-id=2 geändert wird und der Rest unverändert bleibt.

MySQL-Befehlskonfiguration

Folgendes wird in der SQL-Befehlszeilenschnittstelle konfiguriert

Hauptkonfiguration:

mysql> ERSTELLEN SIE BENUTZER 'Slave'@'192.168.1.100' IDENTIFIZIERT DURCH '123.com'; 
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.1.100';
# Autorisierter Replikationsbenutzer und Passwortmysql> show master status;
+-----------------+----------+--------------+------------------+-------------------+
| Datei | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-----------------+----------+--------------+------------------+-------------------+
| bin_log.000002 | 8384 | ziyun | | |
+-----------------+----------+--------------+------------------+-------------------+
1 Zeile im Satz (0,00 Sek.)

Aus der Konfiguration:

mysql> ÄNDERN SIE MASTER IN
 -> MASTER_HOST='192.168.1.101',
 -> MASTER_USER='Sklave',
 -> MASTER_LOG_FILE='bin_log.000002',
 -> MASTER_LOG_POS=8384;
Abfrage OK, 0 Zeilen betroffen, 2 Warnungen (0,01 Sek.)
mysql> Slave starten;
Abfrage OK, 0 Zeilen betroffen (0,01 Sek.)
mysql> Slave-Status anzeigen\G
  Slave_IO_Running: Ja
  Slave_SQL_Running: Ja
# Stellen Sie sicher, dass alle oben genannten Punkte zutreffen und keine Fehler vorliegen.

Die gleiche Konfiguration kann auf MySQL2 durchgeführt werden

Dual-Master-Synchronisationstest

Hier habe ich auf beiden Seiten eine Ziyun-Datenbank erstellt und Test1-Test2-Test3-Tabellen erstellt. Die Testergebnisse sind wie folgt:

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels Ihnen bei Ihrem Studium oder Ihrer Arbeit helfen kann. 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:
  • MySQL realisiert die Synchronisierung von Daten zwischen zwei Tabellen
  • MySql-Entwicklung einer automatischen Synchronisierungstabellenstruktur

<<:  VUE implementiert einen Beispielcode für das Spiel Flappy Bird

>>:  Detailliertes Verständnis von umask in den neuen Linux-Dateiberechtigungseinstellungen

Artikel empfehlen

VMware virtuelle Maschine installieren CentOS 8 (1905) System-Tutorial-Diagramm

Die weltberühmte virtuelle Maschinensoftware VMwa...

So begrenzen Sie den Wertebereich von Objektschlüsseln in TypeScript

Wenn wir TypeScript verwenden, möchten wir das vo...

Verwendung des Linux-Befehls „cal“

1. Befehlseinführung Mit dem Befehl cal (Kalender...

Implementierungsprozess des Lupeneffekts im Javascript-Beispielprojekt

Inhaltsverzeichnis Vorwort Fall: Nachahmung des L...

MySQL-Datenmigration mit dem Befehl MySQLdump

Die Vorteile dieser Lösung liegen in der Einfachh...

So verwenden Sie benutzerdefinierte CSS-Variablen in Vue

Inhaltsverzeichnis Die benutzerdefinierte CSS-Var...

Bei der anonymen Mysql-Anmeldung kann keine Datenbankproblemlösung erstellt werden

Häufig gestellte Fragen Der Zugriff für den Benut...

So aktivieren Sie das Root-Konto in Ubuntu 20.04

Nach der Installation von Ubuntu 20.04 gibt es st...

Detaillierte Erklärung des JS-Browserspeichers

Inhaltsverzeichnis Einführung Plätzchen Was sind ...

Zusammenfassung der Ubuntu-Sicherungsmethoden (vier Typen)

Methode 1: Um Respin zu verwenden, folgen Sie die...