mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.1-main
into dl145h.mysql.com:/data0/mkindahl/mysql-5.1-2team include/my_bitmap.h: Auto merged mysql-test/suite/binlog/r/binlog_multi_engine.result: Auto merged mysql-test/suite/ndb/r/ndb_binlog_multi.result: Auto merged mysql-test/suite/ndb/t/ndb_autodiscover3.test: Auto merged mysql-test/suite/ndb/t/ndb_binlog_basic.test: Auto merged mysql-test/suite/ndb/t/ndb_binlog_ddl_multi.test: Auto merged mysql-test/suite/ndb/t/ndb_binlog_discover.test: Auto merged mysql-test/suite/ndb/t/ndb_binlog_ignore_db.test: Auto merged mysql-test/suite/ndb/t/ndb_binlog_log_bin.test: Auto merged mysql-test/suite/ndb/t/ndb_binlog_multi.test: Auto merged mysql-test/suite/ndb/t/ndb_multi_row.test: Auto merged mysql-test/suite/rpl/r/rpl_row_log.result: Auto merged mysql-test/suite/rpl/r/rpl_row_log_innodb.result: Auto merged mysql-test/suite/rpl/r/rpl_stm_log.result: Auto merged mysql-test/suite/rpl/r/rpl_truncate_7ndb_2.result: Auto merged mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_partitions.result: Auto merged mysql-test/suite/rpl_ndb/r/rpl_ndb_log.result: Auto merged mysql-test/suite/rpl_ndb/t/rpl_ndb_UUID.test: Auto merged mysql-test/suite/rpl_ndb/t/rpl_ndb_bank.test: Auto merged mysql-test/suite/rpl_ndb/t/rpl_ndb_basic.test: Auto merged mysql-test/suite/rpl_ndb/t/rpl_ndb_blob.test: Auto merged mysql-test/suite/rpl_ndb/t/rpl_ndb_blob2.test: Auto merged mysql-test/suite/rpl_ndb/t/rpl_ndb_circular.test: Auto merged mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_simplex.test: Auto merged mysql-test/suite/rpl_ndb/t/rpl_ndb_dd_advance.test: Auto merged mysql-test/suite/rpl_ndb/t/rpl_ndb_dd_basic.test: Auto merged mysql-test/suite/rpl_ndb/t/rpl_ndb_dd_partitions.test: Auto merged mysql-test/suite/rpl_ndb/t/rpl_ndb_ddl.test: Auto merged mysql-test/suite/rpl_ndb/t/rpl_ndb_delete_nowhere.test: Auto merged mysql-test/suite/rpl_ndb/t/rpl_ndb_do_db.test: Auto merged mysql-test/suite/rpl_ndb/t/rpl_ndb_do_table.test: Auto merged mysql-test/suite/rpl_ndb/t/rpl_ndb_extraCol.test: Auto merged mysql-test/suite/rpl_ndb/t/rpl_ndb_func003.test: Auto merged mysql-test/suite/rpl_ndb/t/rpl_ndb_idempotent.test: Auto merged mysql-test/suite/rpl_ndb/t/rpl_ndb_insert_ignore.test: Auto merged mysql-test/suite/rpl_ndb/t/rpl_ndb_multi.test: Auto merged mysql-test/suite/rpl_ndb/t/rpl_ndb_multi_update2.test: Auto merged mysql-test/suite/rpl_ndb/t/rpl_ndb_multi_update3.test: Auto merged mysql-test/suite/rpl_ndb/t/rpl_ndb_rep_ignore.test: Auto merged mysql-test/suite/rpl_ndb/t/rpl_ndb_row_001.test: Auto merged mysql-test/suite/rpl_ndb/t/rpl_ndb_sp003.test: Auto merged mysql-test/suite/rpl_ndb/t/rpl_ndb_sp006.test: Auto merged mysql-test/suite/rpl_ndb/t/rpl_ndb_sync.test: Auto merged mysql-test/suite/rpl_ndb/t/rpl_ndb_trig004.test: Auto merged mysql-test/suite/rpl_ndb/t/rpl_ndbapi_multi.test: Auto merged mysql-test/suite/rpl_ndb/t/rpl_row_basic_7ndb.test: Auto merged sql/log_event.cc: Auto merged mysql-test/suite/rpl_ndb/r/rpl_truncate_7ndb.result: Manual merge mysql-test/t/disabled.def: Manual merge of main tree into replication tree
This commit is contained in:
70
mysql-test/suite/rpl_ndb/t/rpl_ndb_multi.test
Normal file
70
mysql-test/suite/rpl_ndb/t/rpl_ndb_multi.test
Normal file
@ -0,0 +1,70 @@
|
||||
--source include/have_multi_ndb.inc
|
||||
--source include/have_binlog_format_mixed_or_row.inc
|
||||
--source include/ndb_master-slave.inc
|
||||
|
||||
# note: server2 is another "master" connected to the master cluster
|
||||
|
||||
#
|
||||
# Currently test only works with ndb since it retrieves "old"
|
||||
# binlog positions with mysql.ndb_binlog_index and ndb_apply_status;
|
||||
#
|
||||
|
||||
# create a table with one row, and make sure the other "master" gets it
|
||||
CREATE TABLE t1 (c1 CHAR(15), c2 CHAR(15), c3 INT, PRIMARY KEY (c3)) ENGINE = NDB ;
|
||||
connection server2;
|
||||
reset master;
|
||||
SHOW TABLES;
|
||||
connection master;
|
||||
INSERT INTO t1 VALUES ("row1","will go away",1);
|
||||
SELECT * FROM t1 ORDER BY c3;
|
||||
connection server2;
|
||||
SELECT * FROM t1 ORDER BY c3;
|
||||
|
||||
# sync slave and retrieve epoch and stop the slave
|
||||
connection master;
|
||||
sync_slave_with_master;
|
||||
--replace_column 1 <the_epoch>
|
||||
SELECT @the_epoch:=MAX(epoch) FROM mysql.ndb_apply_status;
|
||||
let $the_epoch= `select @the_epoch` ;
|
||||
SELECT * FROM t1 ORDER BY c3;
|
||||
stop slave;
|
||||
|
||||
# get the master binlog pos from the epoch, from the _other_ "master", server2
|
||||
connection server2;
|
||||
--replace_result $the_epoch <the_epoch>
|
||||
eval SELECT @the_pos:=Position,@the_file:=SUBSTRING_INDEX(FILE, '/', -1)
|
||||
FROM mysql.ndb_binlog_index WHERE epoch = $the_epoch ;
|
||||
let $the_pos= `SELECT @the_pos` ;
|
||||
let $the_file= `SELECT @the_file` ;
|
||||
|
||||
# now connect the slave to the _other_ "master"
|
||||
connection slave;
|
||||
--replace_result $MASTER_MYPORT1 <MASTER_PORT1>
|
||||
eval CHANGE MASTER TO
|
||||
master_port=$MASTER_MYPORT1,
|
||||
master_log_file = '$the_file',
|
||||
master_log_pos = $the_pos ;
|
||||
start slave;
|
||||
|
||||
# insert some more values on the first master
|
||||
connection master;
|
||||
INSERT INTO t1 VALUES ("row2","will go away",2),("row3","will change",3),("row4","D",4);
|
||||
DELETE FROM t1 WHERE c3 = 1;
|
||||
UPDATE t1 SET c2="should go away" WHERE c3 = 2;
|
||||
UPDATE t1 SET c2="C" WHERE c3 = 3;
|
||||
DELETE FROM t1 WHERE c3 = 2;
|
||||
|
||||
SELECT * FROM t1 ORDER BY c3;
|
||||
|
||||
save_master_pos;
|
||||
|
||||
# insert another row, and check that we have it on the slave
|
||||
connection server2;
|
||||
INSERT INTO t1 VALUES ("row5","E",5);
|
||||
SELECT * FROM t1 ORDER BY c3;
|
||||
#sync_slave_with_master;
|
||||
connection slave;
|
||||
--sleep 2
|
||||
SELECT * FROM t1 ORDER BY c3;
|
||||
|
||||
STOP SLAVE;
|
Reference in New Issue
Block a user