156 lines
4.2 KiB
Plaintext
156 lines
4.2 KiB
Plaintext
--source include/have_ndb.inc
|
|
|
|
# set up circular replication
|
|
--let $rpl_topology= 1->2->1
|
|
--source include/rpl_init.inc
|
|
|
|
--let $rpl_connection_name= master
|
|
--let $rpl_server_number= 1
|
|
--source include/rpl_connect.inc
|
|
|
|
--let $rpl_connection_name= slave
|
|
--let $rpl_server_number= 2
|
|
--source include/rpl_connect.inc
|
|
|
|
|
|
# create the table on the "slave"
|
|
--connection slave
|
|
CREATE TABLE t1 (a int key, b int) ENGINE=ndb;
|
|
#CREATE TABLE t2 (a int key, b int) ENGINE=ndb;
|
|
sync_slave_with_master master;
|
|
# now we should have a table on the master as well
|
|
SHOW TABLES;
|
|
|
|
# insert some values on the slave and master
|
|
--connection master
|
|
INSERT INTO t1 VALUES (1,2);
|
|
# Give time to propagate + close epoch, to ensure deterministic Binlog contents
|
|
--sleep 1
|
|
--connection slave
|
|
INSERT INTO t1 VALUES (2,3);
|
|
|
|
# ensure data has propagated both ways
|
|
--connection slave
|
|
sync_slave_with_master master;
|
|
--sync_slave_with_master
|
|
|
|
# connect to slave and ensure data it there.
|
|
--connection slave
|
|
SELECT * FROM t1 ORDER BY a;
|
|
#SELECT * FROM t2 ORDER BY a;
|
|
|
|
# Check slave has no errors and are running
|
|
--source include/check_slave_no_error.inc
|
|
--source include/check_slave_is_running.inc
|
|
|
|
--echo Slave Binlog contains all ops as log_slave_updates is on
|
|
show variables like 'server_id';
|
|
show variables like 'log_bin';
|
|
show variables like 'log_slave_updates';
|
|
--source include/show_binlog_events.inc
|
|
|
|
source include/check_slave_is_running.inc;
|
|
# connect to master and ensure data it there.
|
|
--connection master
|
|
SELECT * FROM t1 ORDER BY a;
|
|
#SELECT * FROM t2 ORDER BY a;
|
|
source include/check_slave_is_running.inc;
|
|
|
|
--echo Master Binlog contains only Master ops as log_slave_updates is off
|
|
show variables like 'server_id';
|
|
show variables like 'log_bin';
|
|
show variables like 'log_slave_updates';
|
|
--source include/show_binlog_events.inc
|
|
|
|
# stop replication on "master" as not to replicate
|
|
# shutdown circularly, eg drop table
|
|
--connection master
|
|
STOP SLAVE;
|
|
|
|
# cleanup
|
|
--connection master
|
|
DROP TABLE t1;
|
|
-- sync_slave_with_master
|
|
|
|
# Test ndb_log_apply_status option
|
|
|
|
--connection master
|
|
start slave;
|
|
create table t1 (a int primary key, b int) engine=ndb;
|
|
show variables like '%log_orig%';
|
|
|
|
--echo 'Master' has only slave's serverid entry
|
|
select server_id, log_name from mysql.ndb_apply_status order by server_id;
|
|
|
|
set global ndb_log_apply_status=On;
|
|
show variables like 'ndb_log_apply_status';
|
|
|
|
--connection slave
|
|
--echo 'Slave' has only Master's serverid entry
|
|
select server_id, log_name from mysql.ndb_apply_status order by server_id;
|
|
--echo 'Slave' has following ndb_binlog_index entries
|
|
select inserts, updates, deletes, schemaops, orig_server_id from mysql.ndb_binlog_index order by position,orig_epoch;
|
|
|
|
set global ndb_log_apply_status=On;
|
|
show variables like 'ndb_log_apply_status';
|
|
|
|
--connection master
|
|
|
|
stop slave;
|
|
insert into t1 values (1,1);
|
|
--sync_slave_with_master
|
|
|
|
--connection slave
|
|
--echo 'Slave' still has only Master's serverid entry
|
|
select server_id, log_name from mysql.ndb_apply_status order by server_id;
|
|
|
|
--disable_result_log
|
|
--source include/wait_for_ndb_committed_to_binlog.inc
|
|
--enable_result_log
|
|
--echo 'Slave' has following ndb_binlog_index entries
|
|
select inserts, updates, deletes, schemaops, orig_server_id from mysql.ndb_binlog_index order by position,orig_epoch;
|
|
|
|
--connection master
|
|
--echo 'Master' still has only Slave's serverid entry
|
|
select server_id, log_name from mysql.ndb_apply_status order by server_id;
|
|
|
|
start slave;
|
|
--connection slave
|
|
--sync_slave_with_master master
|
|
|
|
--connection master
|
|
--echo 'Master' now has own serverid entry as well.
|
|
select server_id, log_name from mysql.ndb_apply_status order by server_id;
|
|
|
|
--connection slave
|
|
--echo 'Slave' still only has 'Master''s serverid entry
|
|
select server_id, log_name from mysql.ndb_apply_status order by server_id;
|
|
--echo Now create event originating at Slave
|
|
insert into t1 values (2,2);
|
|
--sync_slave_with_master master
|
|
|
|
--connection master
|
|
--sync_slave_with_master slave
|
|
|
|
--connection slave
|
|
--echo 'Slave' now also has its own serverid entry
|
|
select server_id, log_name from mysql.ndb_apply_status order by server_id;
|
|
|
|
|
|
--connection master
|
|
stop slave;
|
|
set global ndb_log_apply_status=off;
|
|
|
|
--connection slave
|
|
set global ndb_log_apply_status=off;
|
|
stop slave;
|
|
|
|
drop table t1;
|
|
|
|
--connection master
|
|
|
|
drop table t1;
|
|
|
|
--let $rpl_only_running_threads= 1
|
|
--source include/rpl_end.inc
|