add ha testcase for switchover timeout

This commit is contained in:
maxz
2023-05-31 17:10:58 +08:00
parent 9a7990d935
commit 94c23d74ca
6 changed files with 203 additions and 10 deletions

View File

@ -1,4 +1,5 @@
cascade/failover cascade/failover
cascade/failover_with_data cascade/failover_with_data
cascade/switchover cascade/switchover
cascade/switchover_timeout
cascade/inc_build_failover cascade/inc_build_failover

View File

@ -6,6 +6,7 @@ multi_standby_single/inc_build_reconnect
#multi_standby_single/sync_commit #multi_standby_single/sync_commit
#multi_standby_single/quorum #multi_standby_single/quorum
multi_standby_single/switchover multi_standby_single/switchover
multi_standby_single/switchover_timeout
multi_standby_single/failover multi_standby_single/failover
multi_standby_single/params multi_standby_single/params
multi_standby_single/xlog_redo_apply_delay multi_standby_single/xlog_redo_apply_delay

View File

@ -0,0 +1,92 @@
#!/bin/sh
# switchover when primary-standby-cascade_standby all ready
source ./util.sh
function test_1()
{
set_cascade_default
check_instance_cascade_standby
check_cascade_detailed_instance
#create table
gsql -d $db -p $dn1_primary_port -c "DROP TABLE if exists mpp_test1; CREATE TABLE mpp_test1(id INT,name VARCHAR(15) NOT NULL);"
echo "drop table success"
#prepare insert sql
cat $scripts_dir'/data/data5_head_100' | python tools.py mpp_test1 '|' > $scripts_dir'/data/data5_head_100_sql'
gsql -d $db -p $dn1_primary_port < $scripts_dir'/data/data5_head_100_sql' &> /dev/null
#test the insert results primary
b=`wc $scripts_dir'/data/data5_head_100_sql' | awk '{print $1}'`
echo "b=" $b
if [ $(gsql -d $db -p $dn1_primary_port -c "select count(1) from mpp_test1;" | grep $b | wc -l) -eq 1 ]; then
echo "insert into table success!"
else
echo "insert into table failure $failed_keyword!"
exit 1
fi
sleep 10
#test the insert results standby
b=`wc $scripts_dir'/data/data5_head_100_sql' | awk '{print $1}'`
if [ $(gsql -d $db -p $dn1_standby_port -c "select count(1) from mpp_test1;" | grep $b | wc -l) -eq 1 ]; then
echo "test insert result success!"
else
echo "test insert result, $failed_keyword!"
exit 1
fi
#test the insert results cascade standby
b=`wc $scripts_dir'/data/data5_head_100_sql' | awk '{print $1}'`
if [ $(gsql -d $db -p $standby2_port -c "select count(1) from mpp_test1;" | grep $b | wc -l) -eq 1 ]; then
echo "test insert result success!"
else
echo "test insert result, $failed_keyword!"
exit 1
fi
echo "begin to switch to cascade standby"
#switchover
switchover_to_cascade_standby 1
echo "end of switch to cascade standby"
sleep 60
#test the insert results primary
b=`wc $scripts_dir'/data/data5_head_100_sql' | awk '{print $1}'`
if [ $(gsql -d $db -p $dn1_primary_port -c "select count(1) from mpp_test1;" | grep $b | wc -l) -eq 1 ]; then
echo "test insert result success!"
else
echo "test insert result, $failed_keyword!"
exit 1
fi
#test the insert results standby
b=`wc $scripts_dir'/data/data5_head_100_sql' | awk '{print $1}'`
if [ $(gsql -d $db -p $dn1_standby_port -c "select count(1) from mpp_test1;" | grep $b | wc -l) -eq 1 ]; then
echo "test insert result success!"
else
echo "test insert result, $failed_keyword!"
exit 1
fi
#test the insert results cascade standby
b=`wc $scripts_dir'/data/data5_head_100_sql' | awk '{print $1}'`
if [ $(gsql -d $db -p $standby2_port -c "select count(1) from mpp_test1;" | grep $b | wc -l) -eq 1 ]; then
echo "test insert result success!"
else
echo "test insert result, $failed_keyword!"
exit 1
fi
}
function tear_down()
{
set_cascade_default
sleep 3
gsql -d $db -p $dn1_primary_port -c "DROP TABLE if exists mpp_test1;"
}
test_1
tear_down

View File

@ -34,21 +34,21 @@ function test_1()
echo "begin to switch to standby1" echo "begin to switch to standby1"
#switchover #switchover
switchover_to_standby switchover_to_standby
echo "end of swtich to standby1" echo "end of switch to standby1"
sleep 10 sleep 10
echo "begin to switch to standby2" echo "begin to switch to standby2"
#switchover #switchover
switchover_to_standby2 switchover_to_standby2
echo "end of swtich to standby2" echo "end of switch to standby2"
sleep 10 sleep 10
echo "begin to switch to standby3" echo "begin to switch to standby3"
#switchover #switchover
switchover_to_standby3 switchover_to_standby3
echo "end of swtich to standby3" echo "end of switch to standby3"
#echo "begin to switch to standby4" #echo "begin to switch to standby4"
#switchover #switchover

View File

@ -0,0 +1,69 @@
#!/bin/sh
# switchover when primary-standby-dummystandby all ready
source ./util.sh
function test_1()
{
set_default
check_detailed_instance
#create table
gsql -d $db -p $dn1_primary_port -c "DROP TABLE if exists mpp_test1; CREATE TABLE mpp_test1(id INT,name VARCHAR(15) NOT NULL);"
echo "drop table success"
#prepare insert sql
cat $scripts_dir'/data/data5_head_100' | python tools.py mpp_test1 '|' > $scripts_dir'/data/data5_head_100_sql'
gsql -d $db -p $dn1_primary_port < $scripts_dir'/data/data5_head_100_sql' &> /dev/null
#test the insert results
b=`wc $scripts_dir'/data/data5_head_100_sql' | awk '{print $1}'`
echo "b=" $b
if [ $(gsql -d $db -p $dn1_primary_port -c "select count(1) from mpp_test1;" | grep $b | wc -l) -eq 1 ]; then
echo "insert into table success!"
else
echo "insert into table failure $failed_keyword!"
exit 1
fi
sleep 1
echo "begin to switch to standby1 with timeout 1s"
#switchover
switchover_to_standby 1
echo "end of switch to standby1 with timeout 1s"
sleep 60
echo "begin to switch to standby2 with timeout 2s"
#switchover
switchover_to_standby2 2
echo "end of switch to standby2"
sleep 60
echo "begin to switch to standby3 with timeout 3s"
#switchover
switchover_to_standby3 3
echo "end of switch to standby3"
sleep 60
#test the insert results
b=`wc $scripts_dir'/data/data5_head_100_sql' | awk '{print $1}'`
if [ $(gsql -d $db -p $standby3_port -c "select count(1) from mpp_test1;" | grep $b | wc -l) -eq 1 ]; then
echo "test insert result success!"
else
echo "test insert result, $failed_keyword!"
exit 1
fi
}
function tear_down()
{
set_default
sleep 3
gsql -d $db -p $dn1_primary_port -c "DROP TABLE if exists mpp_test1;"
}
test_1
tear_down

View File

@ -301,7 +301,12 @@ function set_most_available_sync_helper() {
} }
function switchover_to_primary() { function switchover_to_primary() {
gs_ctl switchover -w -t $gsctl_wait_time -D $data_dir/datanode1 if [ $# -eq 0 ]; then
switchover_timeout=$gsctl_wait_time
else
switchover_timeout=$1
fi
gs_ctl switchover -w -t $switchover_timeout -D $data_dir/datanode1
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
echo "switchover to primary success!" echo "switchover to primary success!"
else else
@ -311,7 +316,12 @@ function switchover_to_primary() {
} }
function switchover_to_standby() { function switchover_to_standby() {
gs_ctl switchover -w -t $gsctl_wait_time -D $data_dir/datanode1_standby if [ $# -eq 0 ]; then
switchover_timeout=$gsctl_wait_time
else
switchover_timeout=$1
fi
gs_ctl switchover -w -t $switchover_timeout -D $data_dir/datanode1_standby
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
echo "switchover to standby1 success!" echo "switchover to standby1 success!"
else else
@ -321,7 +331,12 @@ function switchover_to_standby() {
} }
function switchover_to_standby2() { function switchover_to_standby2() {
gs_ctl switchover -w -t $gsctl_wait_time -D $data_dir/datanode2_standby if [ $# -eq 0 ]; then
switchover_timeout=$gsctl_wait_time
else
switchover_timeout=$1
fi
gs_ctl switchover -w -t $switchover_timeout -D $data_dir/datanode2_standby
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
echo "switchover to standby2 success!" echo "switchover to standby2 success!"
else else
@ -331,7 +346,12 @@ function switchover_to_standby2() {
} }
function switchover_to_standby3() { function switchover_to_standby3() {
gs_ctl switchover -w -t $gsctl_wait_time -D $data_dir/datanode3_standby -f if [ $# -eq 0 ]; then
switchover_timeout=$gsctl_wait_time
else
switchover_timeout=$1
fi
gs_ctl switchover -w -t $switchover_timeout -D $data_dir/datanode3_standby -f
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
echo "switchover to standby3 success!" echo "switchover to standby3 success!"
else else
@ -341,7 +361,12 @@ function switchover_to_standby3() {
} }
function switchover_to_standby4() { function switchover_to_standby4() {
gs_ctl switchover -w -t $gsctl_wait_time -D $data_dir/datanode4_standby -f if [ $# -eq 0 ]; then
switchover_timeout=$gsctl_wait_time
else
switchover_timeout=$1
fi
gs_ctl switchover -w -t $switchover_timeout -D $data_dir/datanode4_standby -f
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
echo "switchover to standby4 success!" echo "switchover to standby4 success!"
else else
@ -350,7 +375,6 @@ function switchover_to_standby4() {
fi fi
} }
function failover_to_primary() { function failover_to_primary() {
gs_ctl failover -w -t $gsctl_wait_time -D $data_dir/datanode1 gs_ctl failover -w -t $gsctl_wait_time -D $data_dir/datanode1
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
@ -489,7 +513,12 @@ function failover_to_cascade_standby() {
fi fi
} }
function switchover_to_cascade_standby() { function switchover_to_cascade_standby() {
gs_ctl switchover -w -t $gsctl_wait_time -D $data_dir/datanode2_standby if [ $# -eq 0 ]; then
switchover_timeout=$gsctl_wait_time
else
switchover_timeout=$1
fi
gs_ctl switchover -w -t $switchover_timeout -D $data_dir/datanode2_standby
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
echo "switchover to cascade standby success!" echo "switchover to cascade standby success!"
else else
@ -497,6 +526,7 @@ function switchover_to_cascade_standby() {
exit 1 exit 1
fi fi
} }
function check_cascade_detailed_instance(){ function check_cascade_detailed_instance(){
sleep 2 sleep 2
#date #date