113 lines
5.2 KiB
Plaintext
113 lines
5.2 KiB
Plaintext
let $MYPORT_CONSENSUS_1 = query_get_value("select $MYPORT_1+40 as c1", c1, 1);
|
|
let $MYPORT_CONSENSUS_2 = query_get_value("select $MYPORT_2+40 as c1", c1, 1);
|
|
|
|
# start with leader follower1 follower2
|
|
# add learner1
|
|
let $learner_base_port = query_get_value("select $MYPORT_1+50 as c1", c1, 1);
|
|
--source include/start_new_learner.inc
|
|
let $learner1_cluster_info = $learner_cluster_info;
|
|
#add consensus_learner '$learner1_cluster_info';
|
|
--replace_result $learner1_cluster_info learner1_cluster_info
|
|
eval call dbms_consensus.add_learner($learner1_cluster_info);
|
|
|
|
# add learner2
|
|
let $learner_base_port = query_get_value("select $MYPORT_1+51 as c1", c1, 1);
|
|
--source include/start_new_learner.inc
|
|
let $learner2_cluster_info = $learner_cluster_info;
|
|
#add consensus_learner '$learner2_cluster_info';
|
|
--replace_result $learner2_cluster_info learner2_cluster_info
|
|
eval call dbms_consensus.add_learner($learner2_cluster_info);
|
|
|
|
select server_id, role from information_schema.alisql_cluster_global;
|
|
|
|
# learner1 to follower3
|
|
#change consensus_learner '$learner1_cluster_info' to consensus_follower;
|
|
--replace_result $learner1_cluster_info learner1_cluster_info
|
|
eval call dbms_consensus.upgrade_learner($learner1_cluster_info);
|
|
|
|
select server_id, role from information_schema.alisql_cluster_global;
|
|
|
|
# drop learner2
|
|
#drop consensus_learner '$learner2_cluster_info';
|
|
--replace_result $learner2_cluster_info learner2_cluster_info
|
|
eval call dbms_consensus.drop_learner($learner2_cluster_info);
|
|
|
|
select server_id, role from information_schema.alisql_cluster_global;
|
|
|
|
#change consensus_node '$learner1_cluster_info' consensus_force_sync true consensus_election_weight 5;
|
|
--replace_result $learner1_cluster_info learner1_cluster_info
|
|
eval call dbms_consensus.configure_follower($learner1_cluster_info, 5, 1);
|
|
|
|
#change consensus_follower '$learner1_cluster_info' to consensus_learner;
|
|
--replace_result $learner1_cluster_info learner1_cluster_info
|
|
eval call dbms_consensus.downgrade_follower($learner1_cluster_info);
|
|
|
|
#eval change consensus_node '$learner1_cluster_info' consensus_learner_source '127.0.0.1:$MYPORT_CONSENSUS_1' consensus_use_applyindex true;
|
|
--replace_result $learner1_cluster_info learner1_cluster_info $MYPORT_CONSENSUS_1 MYPORT_CONSENSUS_1
|
|
eval call dbms_consensus.configure_learner($learner1_cluster_info, "127.0.0.1:$MYPORT_CONSENSUS_1", 1);
|
|
|
|
#change consensus_learner for consensus_meta;
|
|
call dbms_consensus.refresh_learner_meta();
|
|
|
|
# drop learner2
|
|
#drop consensus_learner '$learner1_cluster_info';
|
|
--replace_result $learner1_cluster_info learner1_cluster_info
|
|
eval call dbms_consensus.drop_learner($learner1_cluster_info);
|
|
|
|
# add follower
|
|
#add consensus_follower '$learner1_cluster_info';
|
|
--replace_result $learner1_cluster_info learner1_cluster_info
|
|
eval call dbms_consensus.add_follower($learner1_cluster_info);
|
|
|
|
# drop follower
|
|
#drop consensus_follower '$learner1_cluster_info';
|
|
--replace_result $learner1_cluster_info learner1_cluster_info
|
|
eval call dbms_consensus.downgrade_follower($learner1_cluster_info);
|
|
--replace_result $learner1_cluster_info learner1_cluster_info
|
|
eval call dbms_consensus.drop_learner($learner1_cluster_info);
|
|
select server_id, role from information_schema.alisql_cluster_global;
|
|
|
|
--replace_result $MYPORT_CONSENSUS_2 MYPORT_CONSENSUS_2
|
|
#eval change consensus_leader to "127.0.0.1:$MYPORT_CONSENSUS_2";
|
|
eval call dbms_consensus.change_leader("127.0.0.1:$MYPORT_CONSENSUS_2");
|
|
|
|
# show alisql_cluster_consensus_membership_change from new leader
|
|
--connect (conn2,127.0.0.1,root,,test,$MYPORT_2)
|
|
--connection conn2
|
|
# wait leader election
|
|
let $wait_condition= select role='Leader' from information_schema.alisql_cluster_local;
|
|
--source include/wait_condition.inc
|
|
|
|
--replace_result $learner1_cluster_info learner1_cluster_info $learner2_cluster_info learner2_cluster_info $MYPORT_CONSENSUS_1 MYPORT_CONSENSUS_1 $MYPORT_CONSENSUS_2 MYPORT_CONSENSUS_2
|
|
select command from information_schema.alisql_cluster_consensus_membership_change;
|
|
|
|
--replace_result $MYPORT_CONSENSUS_1 MYPORT_CONSENSUS_1
|
|
#eval change consensus_leader to "127.0.0.1:$MYPORT_CONSENSUS_1";
|
|
eval call dbms_consensus.change_leader("127.0.0.1:$MYPORT_CONSENSUS_1");
|
|
|
|
--connect (conn1,127.0.0.1,root,,test,$MYPORT_1)
|
|
--connection conn1
|
|
# wait leader election
|
|
let $wait_condition= select role='Leader' from information_schema.alisql_cluster_local;
|
|
--source include/wait_condition.inc
|
|
|
|
--replace_result $learner1_cluster_info learner1_cluster_info $learner2_cluster_info learner2_cluster_info $MYPORT_CONSENSUS_1 MYPORT_CONSENSUS_1 $MYPORT_CONSENSUS_2 MYPORT_CONSENSUS_2
|
|
select command from information_schema.alisql_cluster_consensus_membership_change;
|
|
|
|
# show from follower
|
|
--connect (conn3,127.0.0.1,root,,test,$MYPORT_3)
|
|
--connection conn3
|
|
|
|
--replace_result $learner1_cluster_info learner1_cluster_info $learner2_cluster_info learner2_cluster_info $MYPORT_CONSENSUS_1 MYPORT_CONSENSUS_1 $MYPORT_CONSENSUS_2 MYPORT_CONSENSUS_2
|
|
select command from information_schema.alisql_cluster_consensus_membership_change;
|
|
|
|
--connection conn1
|
|
select server_id, role from information_schema.alisql_cluster_global;
|
|
|
|
# cleanup
|
|
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
|