Heim > Datenbank > MySQL-Tutorial > Hauptteil

Was soll ich tun, wenn zwei MySQL-Master und -Slaves synchronisiert sind?

(*-*)浩
Freigeben: 2020-09-15 17:38:20
Original
3481 Leute haben es durchsucht

MySQL hat zwei Master und Slaves, das heißt Master-Server und Slave-Server. Die Struktur hat einen Master und einen Slave: einen Master und einen Slave. Ein Master und mehrere Slaves: ein Master und mehrere Slaves.

Empfohlene Kurse: MySQL-Tutorial

Was soll ich tun, wenn zwei MySQL-Master und -Slaves synchronisiert sind?

Master-Slave-Synchronisationslösung

Zuerst Gehen Sie zur Master-Bibliothek:

mysql>show processlist; 查看下进程是否Sleep太多。发现很正常。 
show master status; 也正常。 
mysql> show master status; 
+-------------------+----------+--------------+-------------------------------+ 
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | 
+-------------------+----------+--------------+-------------------------------+ 
| mysqld-bin.000001 | 3260 | | mysql,test,information_schema | 
+-------------------+----------+--------------+-------------------------------+ 
1 row in set (0.00 sec)
Nach dem Login kopieren

Überprüfen Sie dann den Slave

mysql> show slave status\G 
Slave_IO_Running: Yes 
Slave_SQL_Running: No
Nach dem Login kopieren

Es ist ersichtlich, dass der Slave nicht synchron ist

Zwei Lösungen werden unten vorgestellt :

Methode 1: Fehler ignorieren und Synchronisierung fortsetzen

Diese Methode eignet sich für Situationen, in denen die Daten in der Master-Slave-Datenbank nicht sehr unterschiedlich sind , oder die Daten müssen nicht vollständig vereinheitlicht werden und die Datenanforderungen sind nicht strenge Situation

Lösung:

stop slave; 
#表示跳过一步错误,后面的数字可变 
set global sql_slave_skip_counter =1; 
start slave; 
之后再用mysql> show slave status\G 查看: 
Slave_IO_Running: Yes 
Slave_SQL_Running: Yes 
ok,现在主从同步状态正常了。。。
Nach dem Login kopieren

Methode 2: Master-Slave erneut durchführen, vollständige Synchronisierung

Diese Methode eignet sich für Master-Slave-Datenbankdaten. Der Unterschied ist groß oder die Daten müssen vollständig vereinheitlicht werden

Die Lösungsschritte lauten wie folgt:

1. Geben Sie zunächst die Hauptdatenbank ein und sperren Sie die Tabelle, um das Schreiben von Daten zu verhindern.

Verwenden Sie den Befehl:

mysql> flush tables with read lock;
Nach dem Login kopieren

Hinweis: Dieser Bereich ist schreibgeschützt Zustand, und die Anweisungen unterscheiden nicht zwischen Groß- und Kleinschreibung

2. Sichern Sie die Daten

# Sichern Sie die Daten in der mysql.bak-Datei

[root@server01 mysql]#mysqldump -uroot -p -hlocalhost > mysql.bak.sql
Nach dem Login kopieren

Hinweis hier: Die Datenbanksicherung muss regelmäßig durchgeführt werden. Sie können ein Shell-Skript oder ein Python-Skript verwenden, um sicherzustellen, dass die Daten narrensicher sind.

rrree>4 MySQL-Sicherungsdatei auf dem Slave-Computer zur Datenwiederherstellung

#Verwenden Sie den scp-Befehl

mysql> show master status; 
+-------------------+----------+--------------+-------------------------------+ 
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | 
+-------------------+----------+--------------+-------------------------------+ 
| mysqld-bin.000001 | 3260 | | mysql,test,information_schema | 
+-------------------+----------+--------------+-------------------------------+ 
1 row in set (0.00 sec)
Nach dem Login kopieren
5. Stoppen Sie den Status des Slaves

[root@server01 mysql]# scp mysql.bak.sql root@192.168.128.101:/tmp/
Nach dem Login kopieren
6. Führen Sie dann den MySQL-Befehl aus in der Slave-Bibliothek und importieren Sie die Datensicherung

rrree

. Achten Sie auf den Synchronisationspunkt, der sich in der Datei „Master“ befindet der Master-Bibliothek

mysql> stop slave;
Nach dem Login kopieren
8. Slave-Synchronisation neu starten

mysql> source /tmp/mysql.bak.sql
Nach dem Login kopieren
9. Synchronisationsstatus prüfen

change master to master_host = '192.168.128.100', master_user = 'rsync', master_port=3306, master_password='', master_log_file = 'mysqld-bin.000001', master_log_pos=3260;
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn zwei MySQL-Master und -Slaves synchronisiert sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!