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

Eine kurze Zusammenfassung meiner Erfahrungen beim Schreiben von HTML-Seiten

Es sind drei oder vier Monate vergangen, seit ich ...

Details zur Verwendung von Bimface in Vue

Inhaltsverzeichnis 1. Installieren Sie das Vue-Ge...

So deinstallieren Sie MySQL 5.7 unter CentOS7

Überprüfen Sie, was in MySQL installiert ist grep...

Syntax-Alias-Problem basierend auf Löschen in MySQL

Inhaltsverzeichnis MySQL-Löschsyntax-Aliasproblem...

Toolkit: Ein leistungsfähigeres Front-End-Framework als Bootstrap

Hinweis: Die derzeit beliebtesten Front-End-Frame...

TypeScript-Dekorator-Definition

Inhaltsverzeichnis 1. Konzept 1.1 Definition 1.2 ...

JS ES neue Funktionen Vorlagenzeichenfolge

Inhaltsverzeichnis 1. Was ist eine Vorlagenzeiche...

Grundlegendes zur JavaScript-Prototypenkette

Inhaltsverzeichnis 1. Verständnis der Gleichheits...

Ein Artikel zum Verständnis der Verwendung von typeof in js

Inhaltsverzeichnis Base Rückgabetyp String und Bo...