171 lines
5.6 KiB
Plaintext
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
|
|
|
|
|