polardbxengine/mysql-test/suite/xcluster/t/dumpbinlog_with_purge.test

171 lines
5.6 KiB
Plaintext

--source include/have_debug_new.inc
--echo #
--echo # ---- test Leader ----
--echo #
let $learner_base_port = query_get_value("select $MYPORT_1+50 as c1", c1, 1);
--source include/start_new_learner.inc
--connection default
flush local logs;
flush local logs;
#eval add consensus_learner $learner_cluster_info;
--replace_result $learner_cluster_info learner_cluster_info
eval call dbms_consensus.add_learner($learner_cluster_info);
create table t1(id int);
insert into t1 values (1);
--sleep 2
--connect (learner,127.0.0.1,root,,test,$learner_port)
--source include/wait_apply_catchup.inc
--connection default
#eval drop consensus_learner $learner_cluster_info;
--replace_result $learner_cluster_info learner_cluster_info
eval call dbms_consensus.drop_learner($learner_cluster_info);
--let $MASTER_BINLOG= query_get_value(SHOW MASTER STATUS, File, 1)
--let $MASTER_POS= query_get_value(SHOW MASTER STATUS, Position, 1)
--connection learner
#change consensus_node to consensus_force_single_mode;
call dbms_consensus.force_single_mode();
let $wait_condition= select role='Leader' and server_ready_for_rw='Yes' from information_schema.alisql_cluster_local;
--source include/wait_condition.inc
--replace_result $MYPORT_1 MYPORT_1 $MASTER_BINLOG MASTER_BINLOG $MASTER_POS MASTER_POS
eval CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=$MYPORT_1, MASTER_USER='root', MASTER_PASSWORD='', MASTER_LOG_FILE='$MASTER_BINLOG', MASTER_LOG_POS=$MASTER_POS, MASTER_AUTO_POSITION=0 FOR CHANNEL 'testsync';
start slave for channel "testsync";
--connection default
insert into t1 values (2);
select * from t1;
--let $MASTER_BINLOG= query_get_value(SHOW MASTER STATUS, File, 1)
--let $MASTER_POS= query_get_value(SHOW MASTER STATUS, Position, 1)
--connection learner
--replace_result $MASTER_BINLOG MASTER_BINLOG $MASTER_POS MASTER_POS
eval SELECT MASTER_POS_WAIT('$MASTER_BINLOG', $MASTER_POS, 0, "testsync") >= 0;
select * from t1;
--connection default
insert into t1 values (3);
flush local logs;
#purge force consensus_log before 10000000;
call dbms_consensus.force_purge_log(10000000);
insert into t1 values (4);
flush local logs;
insert into t1 values (5);
insert into t1 values (6);
select * from t1;
--let $MASTER_BINLOG= query_get_value(SHOW MASTER STATUS, File, 1)
--let $MASTER_POS= query_get_value(SHOW MASTER STATUS, Position, 1)
--connection learner
--replace_result $MASTER_BINLOG MASTER_BINLOG $MASTER_POS MASTER_POS
eval SELECT MASTER_POS_WAIT('$MASTER_BINLOG', $MASTER_POS, 0, "testsync") >= 0;
select * from t1;
stop slave for channel "testsync";
--echo #
--echo # ---- test Follower ----
--echo #
--connect (foll,127.0.0.1,root,,test,$MYPORT_2)
flush local logs;
flush local logs;
let $learner_base_port = query_get_value("select $MYPORT_1+51 as c1", c1, 1);
--source include/start_new_learner.inc
--connection default
#eval add consensus_learner $learner_cluster_info;
--replace_result $learner_cluster_info learner_cluster_info
eval call dbms_consensus.add_learner($learner_cluster_info);
insert into t1 values (1);
--sleep 2
--connect (learner2,127.0.0.1,root,,test,$learner_port)
--source include/wait_apply_catchup.inc
--connection default
#eval drop consensus_learner $learner_cluster_info;
--replace_result $learner_cluster_info learner_cluster_info
eval call dbms_consensus.drop_learner($learner_cluster_info);
insert into t1 values (2); # not in learner2
--connection foll
--source include/wait_apply_catchup.inc
--let $MASTER_BINLOG= query_get_value(SHOW MASTER STATUS, File, 1)
--let $MASTER_POS= query_get_value(SHOW MASTER STATUS, Position, 1)
--connection learner2
#change consensus_node to consensus_force_single_mode;
call dbms_consensus.force_single_mode();
let $wait_condition= select role='Leader' and server_ready_for_rw='Yes' from information_schema.alisql_cluster_local;
--source include/wait_condition.inc
--replace_result $MYPORT_2 MYPORT_2 $MASTER_BINLOG MASTER_BINLOG $MASTER_POS MASTER_POS
eval CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=$MYPORT_2, MASTER_USER='root', MASTER_PASSWORD='', MASTER_LOG_FILE='$MASTER_BINLOG', MASTER_LOG_POS=$MASTER_POS, MASTER_AUTO_POSITION=0 FOR CHANNEL 'testsync';
start slave for channel "testsync";
--connection default
insert into t1 values (3);
--connection foll
--source include/wait_apply_catchup.inc
select * from t1;
--let $MASTER_BINLOG= query_get_value(SHOW MASTER STATUS, File, 1)
--let $MASTER_POS= query_get_value(SHOW MASTER STATUS, Position, 1)
--connection learner2
--replace_result $MASTER_BINLOG MASTER_BINLOG $MASTER_POS MASTER_POS
eval SELECT MASTER_POS_WAIT('$MASTER_BINLOG', $MASTER_POS, 0, "testsync") >= 0;
select * from t1;
--connection default
insert into t1 values (4);
--connection foll
--source include/wait_apply_catchup.inc
flush local logs;
#purge force consensus_log before 10000000;
call dbms_consensus.force_purge_log(10000000);
--connection default
insert into t1 values (5);
--connection foll
--source include/wait_apply_catchup.inc
flush local logs;
--connection default
insert into t1 values (6);
insert into t1 values (7);
--connection foll
--source include/wait_apply_catchup.inc
select * from t1;
--let $MASTER_BINLOG= query_get_value(SHOW MASTER STATUS, File, 1)
--let $MASTER_POS= query_get_value(SHOW MASTER STATUS, Position, 1)
--connection learner2
--replace_result $MASTER_BINLOG MASTER_BINLOG $MASTER_POS MASTER_POS
eval SELECT MASTER_POS_WAIT('$MASTER_BINLOG', $MASTER_POS, 0, "testsync") >= 0;
select * from t1;
--connection default
drop table t1;
let $learner_base_port = query_get_value("select $MYPORT_1+50 as c1", c1, 1);
--source include/stop_new_learner.inc
let $learner_base_port = query_get_value("select $MYPORT_1+51 as c1", c1, 1);
--source include/stop_new_learner.inc