mirror of
https://github.com/MariaDB/server.git
synced 2025-01-20 05:52:27 +01:00
f6682e2743
Moved .progress files into the log directory Moved 'cluster' database tables into the MySQL database, to not have 'cluster' beeing a reserved database name Fixed bug where mysqld got a core dump when trying to use a table created by MySQL 3.23 Fixed some compiler warnings Fixed small memory leak in libmysql Note that this doesn't changeset doesn't include the new mysqldump.c code required to run some tests. This will be added when I merge 5.0 to 5.1
71 lines
2.1 KiB
Text
71 lines
2.1 KiB
Text
--source include/have_ndb.inc
|
|
--source include/have_multi_ndb.inc
|
|
--source include/have_binlog_format_row.inc
|
|
--source include/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.binlog_index and 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.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.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;
|