rpl_flush_tables.test
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:2k
源码类别:
MySQL数据库
开发平台:
Visual C++
- #
- # Test of replicating FLUSH TABLES to make
- # RENAME TABLE work with MERGE tables on the slave.
- # Test of FLUSH NO_WRITE_TO_BINLOG by the way.
- #
- --source include/master-slave.inc
- # Skipped on Windows because it can't handle a table underlying an open
- # merge table getting renamed.
- --source include/not_windows.inc
- create table t1 (a int);
- insert into t1 values (10);
- create table t2 (a int);
- create table t3 (a int) engine=merge union(t1);
- create table t4 (a int);
- # We force the slave to open t3 (because we want to try confusing him) with this :
- insert into t4 select * from t3;
- rename table t1 to t5, t2 to t1;
- # RENAME may have confused the master (this is a known bug): so FLUSH tables,
- # first don't write it to the binlog, to test the NO_WRITE_TO_BINLOG keyword.
- flush no_write_to_binlog tables;
- # Check that it's not in the binlog.
- --replace_result $SERVER_VERSION SERVER_VERSION
- show binlog events;
- # Check that the master is not confused.
- select * from t3;
- # This FLUSH should go into the binlog to not confuse the slave.
- flush tables;
- # Check that it's in the binlog.
- --replace_result $SERVER_VERSION SERVER_VERSION
- show binlog events;
- save_master_pos;
- connection slave;
- sync_with_master;
- # Check that the slave is not confused.
- select * from t3;
- # Note that all this confusion may cause warnings 'table xx is open on rename'
- # in the .err files; these are not fatal and are not reported by mysql-test-run.
- stop slave;
- connection master;
- drop table t1;
- connection slave;
- flush tables with read lock;
- start slave;
- sleep 1;
- --error 1192
- stop slave;
- # End of 4.1 tests