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

随着互联网的飞速发展,Web应用程序越来越多地集成了数据库操作。MySQL作为一款世界知名的关系型数据库系统,使用广泛。在高并发的Web应用中,MySQL主从复制是一种提高数据库性能和可用性的重要方式。本文将介绍如何使用PHP实现MySQL数据库主从复制。一、什么是MySQL主从复制MySQL主从复制是指将一个MySQL数据库服务器的数据复制到另一个服务器上

构建高可用的MySQL集群:主从复制与负载均衡的最佳实践指南近年来,随着互联网的快速发展,数据库已成为大部分Web应用的核心数据存储和处理引擎之一。在这个场景下,高可用性和负载均衡成为了数据库架构设计中的重要考虑因素。而MySQL作为最受欢迎的开源关系型数据库之一,其集群化部署方案备受关注。本文将介绍如何通过MySQL主从复制与负载均衡实现高可用的数据库集群

MySQL数据库是一种非常流行的关系型数据库管理系统,支持多种数据复制技术,其中较为常用的是主从复制技术。本文将介绍MySQL中的数据主从复制技术,包括原理、实现方法、常见问题及应对措施等方面。一、主从复制技术的原理MySQL中的主从复制技术可以将一个MySQL数据库的数据复制到其他服务器上,以实现数据备份、负载均衡、读写分离等功能。它的基本原理是将主数据库

Redis是一个开源的基于内存的键值存储系统,常用于缓存、队列和实时数据处理等场景。在大规模应用时,为了提高Redis的可用性和性能,常常需要采用分布式架构,其中主从复制是一种常用的机制。本文将介绍Redis的主从复制功能,包括定义、原理、配置和应用场景等方面。一、定义Redis的主从复制是指将一个Redis节点(即主节点)的数据自动同步到其他节点(即从节点

如何配置MySQL数据库的主从复制?MySQL数据库的主从复制是一种常见的数据备份和高可用性解决方案。通过配置主从复制,可以实现将数据从一个MySQL服务器(主服务器)同步到另一个(从服务器),从而提高数据库的可用性和性能。下面将介绍如何在MySQL数据库中配置主从复制,并提供相应的代码示例。确保MySQL服务器安装并启动首先,确保你的系统中已经安装了MyS

集群模式下的负载均衡与灾备:MySQL主从复制的深度解析与实践随着互联网行业的迅猛发展,数据存储和处理的需求越来越高。在应对高并发访问和海量数据存储的情况下,集群模式成为了一种常见的解决方案。而负载均衡与灾备则是集群系统中的重要组成部分,其中MySQL主从复制更是一种被广泛应用的方式。本文将深入探讨集群模式下的负载均衡与灾备,重点分析MySQL主从复制的原理

实现数据冗余与扩展:MySQL主从复制技术在集群环境中的应用案例引言:随着互联网发展,数据量的不断增大和用户的不断增加,传统的单机数据库已经无法满足高并发、高可用性的需求。在这种背景下,分布式数据库成为了热门的解决方案之一。MySQL作为最常用的关系型数据库之一,其主从复制技术在分布式数据库中的应用也受到了广泛关注。本文将介绍MySQL主从复制技术在集群环境

MySQL中的主从复制和高可用架构随着互联网应用和数据量的不断增长,数据库的高可用性和可扩展性变得越来越重要。MySQL作为一种使用广泛的开源关系型数据库,提供了主从复制和高可用架构的解决方案。主从复制是指将一个MySQL数据库实例作为主库(master),并将其数据复制到一个或多个从库(slave)的过程。这种复制的方式可以实现数据的冗余备份以及读写分离,


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SublimeText3 Chinese version
Chinese version, very easy to use

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

Atom editor mac version download
The most popular open source editor

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function
