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

So verwenden Sie Docker zum Erstellen eines privaten pypi-Repositorys

1. Konstruktion 1. Bereiten Sie die Datei htpassw...

Natives JS zum Erzielen eines nahtlosen Karusselleffekts

Native js realisiert den Karusselleffekt (nahtlos...

Über 3 gängige Pakete der REM-Anpassung

Vorwort Ich habe bereits einen Artikel über REM-A...

Zusammenfassung der allgemeinen MySQL-Funktionen

Vorwort: Die MySQL-Datenbank bietet eine breite P...

Implementierung des Pushens von Docker-Images zum Docker Hub

Nachdem das Image erfolgreich erstellt wurde, kan...

So verwenden Sie Nginx, um einen RTMP-Liveserver auszuführen

Dieses Mal haben wir einen RTMP-Liveübertragungss...

js, um einen einfachen Lupeneffekt zu erzielen

In diesem Artikel wird der spezifische Code von j...

Tiefgreifendes Verständnis von Javascript-Prototypen und Prototypenketten

Inhaltsverzeichnis 1. Was ist ein Prototyp? 2. Pr...

Detaillierte Erklärung der Vue-Filter

<Text> <div id="Wurzel"> &l...