rpl_mystery22.test
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:1k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. # test case to make slave thread get ahead by 22 bytes
  2. source include/master-slave.inc;
  3. # first, cause a duplicate key problem on the slave
  4. create table t1(n int auto_increment primary key);
  5. sync_slave_with_master;
  6. insert into t1 values (2);
  7. connection master;
  8. insert into t1 values(NULL);
  9. insert into t1 values(NULL);
  10. save_master_pos;
  11. connection slave;
  12. sleep 3; # there is no way around this sleep - we have to wait until
  13. # the slave tries to run the query, fails and aborts slave thread
  14. delete from t1 where n = 2;
  15. start slave;
  16. sync_with_master;
  17. #now the buggy slave would be confused on the offset but it can replicate
  18. #in order to make it break, we need to stop/start the slave one more time
  19. stop slave;
  20. connection master;
  21. # to be able to really confuse the slave, we need some non-auto-increment
  22. # events in the log
  23. create table t2(n int);
  24. drop table t2;
  25. insert into t1 values(NULL);
  26. save_master_pos;
  27. connection slave;
  28. start slave;
  29. #now the truth comes out - if the slave is buggy, it will never sync because
  30. #the slave thread is not able to read events
  31. sync_with_master;
  32. select * from t1;
  33. #clean up
  34. connection master;
  35. drop table t1;
  36. sync_slave_with_master;
  37. # End of 4.1 tests