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

MySQL数据库

开发平台:

Visual C++

  1. #
  2. # Test of replicating FLUSH TABLES to make
  3. # RENAME TABLE work with MERGE tables on the slave.
  4. # Test of FLUSH NO_WRITE_TO_BINLOG by the way.
  5. #
  6. --source include/master-slave.inc
  7. # Skipped on Windows because it can't handle a table underlying an open
  8. # merge table getting renamed.
  9. --source include/not_windows.inc
  10. create table t1 (a int);
  11. insert into t1 values (10);
  12. create table t2 (a int);
  13. create table t3 (a int) engine=merge union(t1);
  14. create table t4 (a int);
  15. # We force the slave to open t3 (because we want to try confusing him) with this :
  16. insert into t4 select * from t3;
  17. rename table t1 to t5, t2 to t1;
  18. # RENAME may have confused the master (this is a known bug): so FLUSH tables,
  19. # first don't write it to the binlog, to test the NO_WRITE_TO_BINLOG keyword.
  20. flush no_write_to_binlog tables;
  21. # Check that it's not in the binlog.
  22. --replace_result $SERVER_VERSION SERVER_VERSION
  23. show binlog events;
  24. # Check that the master is not confused.
  25. select * from t3;
  26. # This FLUSH should go into the binlog to not confuse the slave.
  27. flush tables;
  28. # Check that it's in the binlog.
  29. --replace_result $SERVER_VERSION SERVER_VERSION
  30. show binlog events;
  31. save_master_pos;
  32. connection slave;
  33. sync_with_master;
  34. # Check that the slave is not confused.
  35. select * from t3;
  36. # Note that all this confusion may cause warnings 'table xx is open on rename'
  37. # in the .err files; these are not fatal and are not reported by mysql-test-run.
  38. stop slave;
  39. connection master;
  40. drop table t1;
  41. connection slave;
  42. flush tables with read lock;
  43. start slave;
  44. sleep 1;
  45. --error 1192
  46. stop slave;
  47. # End of 4.1 tests