Heim Datenbank MySQL-Tutorial MySQL中主从复制重复键问题修复方法_MySQL

MySQL中主从复制重复键问题修复方法_MySQL

Jun 01, 2016 pm 01:05 PM
主从复制

-------------------quote begin------------------------ 3. If you decide that you can skip the next statement from the master, issue the following statements: mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER = n; mysql> START SLAVE; The value of n should be 1 if the next statement from the master does not use AUTO_INCREMENT or LAST_INSERT_ID(). Otherwise, the value should be 2. The reason for using a value of 2 for statements that use AUTO_INCREMENT or LAST_INSERT_ID() is that they take two events in the binary log of the master.

-------------------quote end------------------------

MySQL文档中的意思是当master传到slave的语句中要用到auto_increment,或者last_insert_id()时,需要skip两个event. 但实际情况并非如此

测试过程如下: 172.16.161.26 为master 172.16.161.15 为slave 同步c2cdb,初始状态ok

1. 在master上创建测试表

mysql> create table tmp_test_0208(id int not null auto_increment,name varchar(30),primary key(id)) engine=innodb;
Query OK, 0 rows affected (0.20 sec)
Nach dem Login kopieren

2, 在salve上insert 3条记录

mysql> insert into tmp_test_0208 values(1,'a'),(2,'b'),(3,'c');
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0

mysql> select * from tmp_test_0208;
+----+------+
| id | name |
+----+------+
| 1 | a |
| 2 | b |
| 3 | c |
+----+------+
3 rows in set (0.00 sec)
Nach dem Login kopieren

3, 在master上insert 3条记录

mysql> insert into tmp_test_0208(name) values('a'),('b'),('c');
Query OK, 3 rows affected (0.02 sec)
Records: 3 Duplicates: 0 Warnings: 0

mysql> select * from tmp_test_0208;
+----+------+
| id | name |
+----+------+
| 1 | a |
| 2 | b |
| 3 | c |
+----+------+
3 rows in set (0.00 sec)
Nach dem Login kopieren

4, slave 的sql thread 中止

/usr/local/mysql/bin/mysql -uroot -pxxx c2cdb -s -e "show slave status\G" |egrep "Slave_IO_Running|Sl
ave_SQL_Running"
Slave_IO_Running: Yes
Slave_SQL_Running: No
Nach dem Login kopieren

5, skip next statemate后start slave正常

mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1 ;
Query OK, 0 rows affected (0.00 sec)

mysql> slave start;
Query OK, 0 rows affected (0.00 sec)

/usr/local/mysql/bin/mysql -uroot -pxxx c2cdb -s -e "show slave status\G" |egrep "Slave_IO_Running|Sl
ave_SQL_Running"
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Nach dem Login kopieren

slave端errlog如下: 070208 16:07:59[ERROR] Slave: Error 'Duplicate entry '1' for key 1' on query. Default database: 'c2cdb'. Query: 'insert into tmp_te st_0208(name) values('a'),('b'),('c')', Error_code: 1062

070208 16:07:59 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE  START". We stopped at log 'db_auction1-bin.000203' position 14215101

070208 16:09:59 [Note] Slave SQL thread initialized, starting replication in log 'db_auction1-bin.000203' at position 14215101, rela y log './db_auction1_b-relay-bin.000457' position: 200682931

 

master羰binlog中相应的记录如下:

# at 14215101 #070208 16:08:00 server id 1  log_pos 14215101  Intvar SET INSERT_ID=1; # at 14215129 #070208 16:08:00 server id 1  log_pos 14215129  Query   thread_id=2744782       exec_time=0     error_code=0 SET TIMESTAMP=1170922080; insert into tmp_test_0208(name) values('a'),('b'),('c');

总结:使用SET GLOBAL SQL_SLAVE_SKIP_COUNTER 命令跳过失败的SQL

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So implementieren Sie die Master-Slave-Replikation der MySQL-Datenbank in PHP So implementieren Sie die Master-Slave-Replikation der MySQL-Datenbank in PHP May 17, 2023 am 08:18 AM

Mit der rasanten Entwicklung des Internets integrieren Webanwendungen zunehmend Datenbankoperationen. MySQL ist ein weltweit bekanntes relationales Datenbanksystem, das weit verbreitet ist. In hochgradig gleichzeitigen Webanwendungen ist die MySQL-Master-Slave-Replikation eine wichtige Möglichkeit, die Leistung und Verfügbarkeit der Datenbank zu verbessern. In diesem Artikel wird erläutert, wie Sie mit PHP die Master-Slave-Replikation der MySQL-Datenbank implementieren. 1. Was ist MySQL-Master-Slave-Replikation? Unter MySQL-Master-Slave-Replikation versteht man das Kopieren von Daten von einem MySQL-Datenbankserver auf einen anderen.

Aufbau eines hochverfügbaren MySQL-Clusters: Best-Practice-Leitfaden für Master-Slave-Replikation und Lastausgleich Aufbau eines hochverfügbaren MySQL-Clusters: Best-Practice-Leitfaden für Master-Slave-Replikation und Lastausgleich Sep 09, 2023 am 10:57 AM

Aufbau eines hochverfügbaren MySQL-Clusters: Best-Practice-Leitfaden für Master-Slave-Replikation und Lastausgleich In den letzten Jahren hat sich die Datenbank mit der rasanten Entwicklung des Internets zu einem der zentralen Datenspeicher- und Verarbeitungs-Engines für die meisten Webanwendungen entwickelt. In diesem Szenario sind Hochverfügbarkeit und Lastausgleich zu wichtigen Überlegungen beim Entwurf der Datenbankarchitektur geworden. Als eine der beliebtesten relationalen Open-Source-Datenbanken hat die Cluster-Bereitstellungslösung von MySQL große Aufmerksamkeit auf sich gezogen. In diesem Artikel wird erläutert, wie Sie einen hochverfügbaren Datenbankcluster durch MySQL-Master-Slave-Replikation und Lastausgleich implementieren.

Daten-Master-Slave-Replikationstechnologie in MySQL Daten-Master-Slave-Replikationstechnologie in MySQL Jun 14, 2023 pm 02:10 PM

MySQL-Datenbank ist ein sehr beliebtes relationales Datenbankverwaltungssystem, das eine Vielzahl von Datenreplikationstechnologien unterstützt, von denen die Master-Slave-Replikationstechnologie am häufigsten verwendet wird. In diesem Artikel wird die Daten-Master-Slave-Replikationstechnologie in MySQL vorgestellt, einschließlich Prinzipien, Implementierungsmethoden, häufigen Problemen und Gegenmaßnahmen. 1. Prinzip der Master-Slave-Replikationstechnologie Die Master-Slave-Replikationstechnologie in MySQL kann die Daten einer MySQL-Datenbank auf andere Server kopieren, um Datensicherung, Lastausgleich, Lese-/Schreibtrennung und andere Funktionen zu erreichen. Sein Grundprinzip besteht darin, die Hauptdatenbank zu konvertieren

Detaillierte Erläuterung der Master-Slave-Replikationsfunktion von Redis Detaillierte Erläuterung der Master-Slave-Replikationsfunktion von Redis May 11, 2023 am 10:00 AM

Redis ist ein auf Open-Source-Speicher basierendes Schlüsselwertspeichersystem, das häufig in Szenarien wie Caching, Warteschlangen und Echtzeit-Datenverarbeitung verwendet wird. In großen Anwendungen ist es zur Verbesserung der Verfügbarkeit und Leistung von Redis häufig erforderlich, eine verteilte Architektur einzuführen, in der die Master-Slave-Replikation ein häufig verwendeter Mechanismus ist. In diesem Artikel wird die Master-Slave-Replikationsfunktion von Redis vorgestellt, einschließlich Definition, Prinzip, Konfiguration und Anwendungsszenarien. 1. Die Definition der Redis-Master-Slave-Replikation bezieht sich auf die automatische Synchronisierung der Daten eines Redis-Knotens (d. h. Master-Knotens) mit anderen Knoten (d. h. Slave-Knoten).

Wie konfiguriere ich die Master-Slave-Replikation der MySQL-Datenbank? Wie konfiguriere ich die Master-Slave-Replikation der MySQL-Datenbank? Jul 13, 2023 pm 10:05 PM

Wie konfiguriere ich die Master-Slave-Replikation der MySQL-Datenbank? Die Master-Slave-Replikation der MySQL-Datenbank ist eine gängige Datensicherungs- und Hochverfügbarkeitslösung. Durch die Konfiguration der Master-Slave-Replikation können Sie Daten von einem MySQL-Server (Master-Server) auf einen anderen (Slave-Server) synchronisieren und so die Verfügbarkeit und Leistung der Datenbank verbessern. Im Folgenden wird beschrieben, wie Sie die Master-Slave-Replikation in einer MySQL-Datenbank konfigurieren und entsprechende Codebeispiele bereitstellen. Stellen Sie sicher, dass der MySQL-Server installiert und gestartet ist. Stellen Sie zunächst sicher, dass MySQL auf Ihrem System installiert ist.

Master-Slave-Replikation und Hochverfügbarkeitsarchitektur in MySQL Master-Slave-Replikation und Hochverfügbarkeitsarchitektur in MySQL Sep 09, 2023 pm 12:03 PM

Master-Slave-Replikation und Hochverfügbarkeitsarchitektur in MySQL Da Internetanwendungen und Datenmengen weiter wachsen, werden die Hochverfügbarkeit und Skalierbarkeit der Datenbank immer wichtiger. Als weit verbreitete relationale Open-Source-Datenbank bietet MySQL Master-Slave-Replikations- und Hochverfügbarkeitsarchitekturlösungen. Unter Master-Slave-Replikation versteht man den Prozess, bei dem eine MySQL-Datenbankinstanz als Master-Datenbank verwendet und deren Daten in eine oder mehrere Slave-Datenbanken (Slave) kopiert werden. Mit dieser Replikationsmethode können eine redundante Datensicherung und eine Trennung von Lesen und Schreiben erreicht werden.

So implementieren Sie die Master-Slave-Replikation der Memcached-Datenbank in PHP So implementieren Sie die Master-Slave-Replikation der Memcached-Datenbank in PHP May 15, 2023 pm 06:40 PM

Memcached ist ein Open-Source-Hochleistungs-Objekt-Caching-System mit verteiltem Speicher, das zur Beschleunigung von Webanwendungen verwendet werden kann und besonders gut beim Caching großer Datenmengen funktioniert. Für dieses System ist die Master-Slave-Replikation eine sehr wichtige Funktion, mit der Datenzuverlässigkeit und hohe Verfügbarkeit gewährleistet werden können. In diesem Artikel wird erläutert, wie Sie mit PHP die Master-Slave-Replikation der Memcached-Datenbank implementieren. Einführung in den Master-Slave-Modus Der Master-Slave-Modus ist eine verteilte Struktur des Memcached-Servers. Er besteht aus mindestens zwei Servern: einem

Lastausgleich und Notfallwiederherstellung im Cluster-Modus: Eingehende Analyse und Praxis der MySQL-Master-Slave-Replikation Lastausgleich und Notfallwiederherstellung im Cluster-Modus: Eingehende Analyse und Praxis der MySQL-Master-Slave-Replikation Sep 11, 2023 pm 05:51 PM

Lastausgleich und Notfallwiederherstellung im Cluster-Modus: Eingehende Analyse und Praxis der MySQL-Master-Slave-Replikation Mit der rasanten Entwicklung der Internetbranche wird die Nachfrage nach Datenspeicherung und -verarbeitung immer höher. Als Reaktion auf den hohen gleichzeitigen Zugriff und die enorme Datenspeicherung hat sich der Cluster-Modus zu einer gängigen Lösung entwickelt. Lastausgleich und Notfallwiederherstellung sind wichtige Komponenten des Clustersystems, und die MySQL-Master-Slave-Replikation ist eine weit verbreitete Methode. Dieser Artikel befasst sich mit dem Lastausgleich und der Notfallwiederherstellung im Clustermodus und konzentriert sich dabei auf das Prinzip der MySQL-Master-Slave-Replikation.

See all articles