Hello,all friends
  in a master -slave setup ,that's all Ver 14.7 Distrib 4.1.14
  I create a test table in master without any records, with auto-increment 
property.
and then,I insert three rows in slave's test table.
  again ,I return to master,insert the same three rows in test table, in order 
to simulate the 'duplicate key' integrity constraint violation. 
  as the result,the  Slave_SQL_Running thread on Slave stops. 
I can issue the following commands to restart the slave:
  SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1 ;
slave start;
  my problem is 
why not SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 2 , as to the mysql manual 
reference said? 
-------------------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---------------------------
  the following is the process of test
  step 1. create the test table on 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)
  step 2. insert three rows in Slave
-----------------------------------------------
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)
  step 3. insert the same rows to Master
-----------------------------------------------
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)
  
step 4. look the slave status
-----------------------------------------------
 /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
  step 5. SKIP the sql, and 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
   
  the following is the errlog in slave 
-----------------------------------------------
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
  
the following is the binlog during the test
-----------------------------------------------
# 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');
   
   
   
   
   

                
---------------------------------
 雅虎免费邮箱-3.5G容量,20M附件

Reply via email to