MySQL中主从复制重复键问题修复方法_MySQL
-------------------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)
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)
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)
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
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
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

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

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 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.

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

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? 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 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.

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 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.
