############################################################# # Author: Serge Kozlov # Date: 03/17/2008 # Purpose: Testing cluster circular replication based on two # independent channels between two clusters ############################################################# --source include/have_ndb.inc #--source include/ndb_master-slave.inc --source include/ndb_master-slave_2ch.inc --source include/have_binlog_format_mixed_or_row.inc --echo # Check server_id and set auto_increment_* variables --echo *** Check server_id of mysqld servers *** --connection master SHOW VARIABLES LIKE "server_id"; SET auto_increment_offset = 1; SET auto_increment_increment = 2; --connection master1 SHOW VARIABLES LIKE "server_id"; SET auto_increment_offset = 1; SET auto_increment_increment = 2; --connection slave SHOW VARIABLES LIKE "server_id"; SET auto_increment_offset = 2; SET auto_increment_increment = 2; --connection slave1 SHOW VARIABLES LIKE "server_id"; SET auto_increment_offset = 2; SET auto_increment_increment = 2; # Preparing data. --echo *** Preparing data *** --connection master CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b VARCHAR(100), c INT NOT NULL, PRIMARY KEY(a)) ENGINE=ndb; let $wait_binlog_event= CREATE TABLE t1; --source include/wait_for_binlog_event.inc --connection master1 --source include/wait_for_binlog_event.inc --connection slave --source include/wait_for_binlog_event.inc --connection slave1 --source include/wait_for_binlog_event.inc --echo # # Testing # --echo *** Basic testing *** # insert data via all hosts --echo Insert rows via all hosts #--disable_query_log let $counter= 10; while ($counter) { --connection master INSERT INTO t1(b,c) VALUES('master',1); --connection master1 INSERT INTO t1(b,c) VALUES('master1',1); --connection slave INSERT INTO t1(b,c) VALUES('slave',1); --connection slave1 INSERT INTO t1(b,c) VALUES('slave1',1); dec $counter; } --connection master #--enable_query_log # Wait replication between clusters let $wait_condition= SELECT COUNT(*)=40 FROM t1 WHERE c = 1; --source include/wait_condition.inc --connection slave --source include/wait_condition.inc # Check data --echo Check data on both clusters let $diff_table_1=master:test.t1; let $diff_table_2=slave:test.t1; source include/diff_tables.inc; --echo *** Transaction testing *** # Start transaction for one mysqld and do mass of inserts for other. # Do it for for both clusters ###--real_sleep 9999 let $counter= 30; --connection master --disable_query_log while ($counter) { --connection master1 INSERT INTO t1(b,c) VALUES('master1',2); dec $counter; } --connection master1 --echo 'master1' select * from t1 order by a; --connection master --enable_query_log --echo 'master' select * from t1 order by a; COMMIT; # Clean up --connection master DROP TABLE t1; --connection slave --disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings --echo # End of test 5.1