add cluster testcase of electing leader
This commit is contained in:
parent
37d39a38c6
commit
7b909d59db
|
@ -0,0 +1,474 @@
|
|||
system sh/stop_dnodes.sh
|
||||
system sh/deploy.sh -n dnode1 -i 1
|
||||
system sh/deploy.sh -n dnode2 -i 2
|
||||
system sh/deploy.sh -n dnode3 -i 3
|
||||
system sh/deploy.sh -n dnode4 -i 4
|
||||
|
||||
system sh/cfg.sh -n dnode1 -c supportVnodes -v 0
|
||||
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
system sh/exec.sh -n dnode2 -s start
|
||||
system sh/exec.sh -n dnode3 -s start
|
||||
system sh/exec.sh -n dnode4 -s start
|
||||
|
||||
$loop_cnt = 0
|
||||
check_dnode_ready:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 10 then
|
||||
print ====> dnode not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show dnodes
|
||||
print ===> $rows $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print ===> $rows $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
print ===> $rows $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6]
|
||||
print ===> $rows $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6]
|
||||
if $data[0][0] != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] != ready then
|
||||
goto check_dnode_ready
|
||||
endi
|
||||
|
||||
sql connect
|
||||
sql create dnode $hostname port 7200
|
||||
sql create dnode $hostname port 7300
|
||||
sql create dnode $hostname port 7400
|
||||
|
||||
$loop_cnt = 0
|
||||
check_dnode_ready_1:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 10 then
|
||||
print ====> dnodes not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show dnodes
|
||||
print ===> $rows $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print ===> $rows $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
print ===> $rows $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6]
|
||||
print ===> $rows $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6]
|
||||
if $data[0][4] != ready then
|
||||
goto check_dnode_ready_1
|
||||
endi
|
||||
if $data[1][4] != ready then
|
||||
goto check_dnode_ready_1
|
||||
endi
|
||||
if $data[2][4] != ready then
|
||||
goto check_dnode_ready_1
|
||||
endi
|
||||
if $data[3][4] != ready then
|
||||
goto check_dnode_ready_1
|
||||
endi
|
||||
|
||||
$replica = 3
|
||||
$vgroups = 1
|
||||
|
||||
print ============= create database
|
||||
sql create database db replica $replica vgroups $vgroups
|
||||
|
||||
$loop_cnt = 0
|
||||
check_db_ready:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 100 then
|
||||
print ====> db not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show databases
|
||||
print ===> rows: $rows
|
||||
print $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6] $data[2][7] $data[2][8] $data[2][9] $data[2][6] $data[2][11] $data[2][12] $data[2][13] $data[2][14] $data[2][15] $data[2][16] $data[2][17] $data[2][18] $data[2][19]
|
||||
if $rows != 3 then
|
||||
return -1
|
||||
endi
|
||||
if $data[2][19] != ready then
|
||||
goto check_db_ready
|
||||
endi
|
||||
|
||||
sql use db
|
||||
|
||||
$loop_cnt = 0
|
||||
check_vg_ready:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 300 then
|
||||
print ====> vgroups not ready!
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show vgroups
|
||||
print ===> rows: $rows
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][10] $data[0][11]
|
||||
|
||||
if $rows != $vgroups then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data[0][4] == LEADER then
|
||||
if $data[0][6] == FOLLOWER then
|
||||
if $data[0][8] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[0][6] == LEADER then
|
||||
if $data[0][4] == FOLLOWER then
|
||||
if $data[0][8] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[0][8] == LEADER then
|
||||
if $data[0][4] == FOLLOWER then
|
||||
if $data[0][6] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready
|
||||
endi
|
||||
|
||||
|
||||
vg_ready:
|
||||
print ====> create stable/child table
|
||||
sql create table stb (ts timestamp, c1 int, c2 float, c3 binary(10)) tags (t1 int)
|
||||
|
||||
sql show stables
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
$ctbPrefix = ctb
|
||||
$ntbPrefix = ntb
|
||||
$tbNum = 10
|
||||
$i = 0
|
||||
while $i < $tbNum
|
||||
$ctb = $ctbPrefix . $i
|
||||
sql create table $ctb using stb tags( $i )
|
||||
$ntb = $ntbPrefix . $i
|
||||
sql create table $ntb (ts timestamp, c1 int, c2 float, c3 binary(10))
|
||||
$i = $i + 1
|
||||
endw
|
||||
|
||||
$totalTblNum = $tbNum * 2
|
||||
sleep 1000
|
||||
sql show tables
|
||||
print ====> expect $totalTblNum and infinsert $rows in fact
|
||||
if $rows != $totalTblNum then
|
||||
return -1
|
||||
endi
|
||||
|
||||
start_switch_leader:
|
||||
|
||||
$switch_loop_cnt = 0
|
||||
sql show vgroups
|
||||
$dnodeId = $data[0][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
|
||||
switch_leader_to_offine_loop:
|
||||
|
||||
print $dnodeId
|
||||
print ====> stop $dnodeId
|
||||
system sh/exec.sh -n $dnodeId -s stop -x SIGINT
|
||||
|
||||
|
||||
$loop_cnt = 0
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 201
|
||||
if $loop_cnt == 300 then
|
||||
print ====> vgroups switch fail!!!
|
||||
return -1
|
||||
endi
|
||||
sql show vgroups
|
||||
print ===> rows: $rows
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][10] $data[0][11]
|
||||
|
||||
if $rows != $vgroups then
|
||||
return -1
|
||||
endi
|
||||
|
||||
|
||||
vg_offline_1:
|
||||
|
||||
print ====> start $dnodeId
|
||||
system sh/exec.sh -n $dnodeId -s start
|
||||
|
||||
$switch_loop_cnt = $switch_loop_cnt + 1
|
||||
print $switch_loop_cnt
|
||||
|
||||
if $switch_loop_cnt == 1 then
|
||||
sql show vgroups
|
||||
$dnodeId = $data[1][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
goto switch_leader_to_offine_loop
|
||||
elif $switch_loop_cnt == 2 then
|
||||
sql show vgroups
|
||||
$dnodeId = $data[2][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
goto switch_leader_to_offine_loop
|
||||
elif $switch_loop_cnt == 3 then
|
||||
sql show vgroups
|
||||
$dnodeId = $data[3][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
goto switch_leader_to_offine_loop
|
||||
elif $switch_loop_cnt == 4 then
|
||||
sql show vgroups
|
||||
$dnodeId = $data[4][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
goto switch_leader_to_offine_loop
|
||||
else
|
||||
goto stop_leader_to_offine_loop
|
||||
endi
|
||||
|
||||
stop_leader_to_offine_loop:
|
||||
|
||||
$loop_cnt = 0
|
||||
check_vg_ready1:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
print $loop_cnt
|
||||
sleep 202
|
||||
if $loop_cnt == 300 then
|
||||
print ====> vgroups not ready!
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show vgroups
|
||||
print ===> rows: $rows
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][10] $data[0][11]
|
||||
|
||||
if $rows != $vgroups then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data[0][4] == LEADER then
|
||||
if $data[0][6] == FOLLOWER then
|
||||
if $data[0][8] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[0][6] == LEADER then
|
||||
if $data[0][4] == FOLLOWER then
|
||||
if $data[0][8] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[0][8] == LEADER then
|
||||
if $data[0][4] == FOLLOWER then
|
||||
if $data[0][6] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready1
|
||||
endi
|
||||
|
||||
|
||||
print ====> final test: create stable/child table
|
||||
sql create table stb1 (ts timestamp, c1 int, c2 float, c3 binary(10)) tags (t1 int)
|
||||
|
||||
|
||||
sql show stables
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
$ctbPrefix = ctb1
|
||||
$ntbPrefix = ntb1
|
||||
$tbNum = 10
|
||||
$i = 0
|
||||
while $i < $tbNum
|
||||
$ctb = $ctbPrefix . $i
|
||||
sql create table $ctb using stb1 tags( $i )
|
||||
$ntb = $ntbPrefix . $i
|
||||
sql create table $ntb (ts timestamp, c1 int, c2 float, c3 binary(10))
|
||||
$i = $i + 1
|
||||
endw
|
||||
|
||||
sleep 1000
|
||||
sql show stables
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show tables
|
||||
if $rows != 40 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
|
||||
|
||||
system sh/deploy.sh -n dnode5 -i 5
|
||||
system sh/exec.sh -n dnode5 -s start
|
||||
|
||||
sql connect
|
||||
sql create dnode $hostname port 7500
|
||||
|
||||
$loop_cnt = 0
|
||||
check_dnode_ready3:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 100 then
|
||||
print ====> dnode not ready!
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show dnodes
|
||||
print ===> $rows $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print ===> $rows $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
print ===> $rows $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6]
|
||||
print ===> $rows $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6]
|
||||
print ===> $rows $data[4][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6]
|
||||
|
||||
if $rows != 5 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data[4][4] != ready then
|
||||
goto check_dnode_ready3
|
||||
endi
|
||||
|
||||
|
||||
|
||||
# restart clusters
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode5 -s stop -x SIGINT
|
||||
|
||||
|
||||
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
system sh/exec.sh -n dnode2 -s start
|
||||
system sh/exec.sh -n dnode3 -s start
|
||||
system sh/exec.sh -n dnode4 -s start
|
||||
system sh/exec.sh -n dnode5 -s start
|
||||
|
||||
|
||||
$loop_cnt = 0
|
||||
check_dnode_ready_2:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 10 then
|
||||
print ====> dnode not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show dnodes
|
||||
print ===> $rows $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print ===> $rows $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
print ===> $rows $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6]
|
||||
print ===> $rows $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6]
|
||||
if $data[0][0] != 1 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data[0][4] != ready then
|
||||
goto check_dnode_ready_2
|
||||
endi
|
||||
if $data[1][4] != ready then
|
||||
goto check_dnode_ready_2
|
||||
endi
|
||||
if $data[2][4] != ready then
|
||||
goto check_dnode_ready_2
|
||||
endi
|
||||
if $data[3][4] != ready then
|
||||
goto check_dnode_ready_2
|
||||
endi
|
||||
|
||||
sql use db;
|
||||
$ctbPrefix = ctb2
|
||||
$ntbPrefix = ntb2
|
||||
$tbNum = 10
|
||||
$i = 0
|
||||
while $i < $tbNum
|
||||
$ctb = $ctbPrefix . $i
|
||||
sql create table $ctb using stb1 tags( $i )
|
||||
$ntb = $ntbPrefix . $i
|
||||
sql create table $ntb (ts timestamp, c1 int, c2 float, c3 binary(10))
|
||||
$i = $i + 1
|
||||
endw
|
||||
|
||||
sleep 1000
|
||||
sql use db
|
||||
sql show stables
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show tables
|
||||
print $rows
|
||||
if $rows != 60 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
|
||||
|
||||
$replica = 3
|
||||
$vgroups = 5
|
||||
|
||||
print ============= create database
|
||||
sql create database db1 replica $replica vgroups $vgroups
|
||||
|
||||
$loop_cnt = 0
|
||||
check_db_ready1:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 100 then
|
||||
print ====> db not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show databases
|
||||
print ===> rows: $rows
|
||||
print $data(db1)[0] $data(db1)[1] $data(db1)[2] $data(db1)[3] $data(db1)[4] $data(db1)[5] $data(db1)[6] $data(db1)[7] $data(db1)[8] $data(db1)[9] $data(db1)[6] $data(db1)[11] $data(db1)[12] $data(db1)[13] $data(db1)[14] $data(db1)[15] $data(db1)[16] $data(db1)[17] $data(db1)[18] $data(db1)[19]
|
||||
if $rows != 4 then
|
||||
return -1
|
||||
endi
|
||||
if $data(db1)[19] != ready then
|
||||
goto check_db_ready1
|
||||
endi
|
||||
|
||||
|
||||
sql use db1
|
||||
|
||||
$loop_cnt = 0
|
||||
check_vg_ready3:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
print $loop_cnt
|
||||
sleep 202
|
||||
if $loop_cnt == 300 then
|
||||
print ====> vgroups not ready!
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show vgroups
|
||||
print ===> rows: $rows
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][10] $data[0][11]
|
||||
if $rows != $vgroups then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data[0][4] == LEADER then
|
||||
if $data[0][6] == FOLLOWER then
|
||||
if $data[0][8] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[0][6] == LEADER then
|
||||
if $data[0][4] == FOLLOWER then
|
||||
if $data[0][8] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[0][8] == LEADER then
|
||||
if $data[0][4] == FOLLOWER then
|
||||
if $data[0][6] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready3
|
||||
endi
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,755 @@
|
|||
system sh/stop_dnodes.sh
|
||||
system sh/deploy.sh -n dnode1 -i 1
|
||||
system sh/deploy.sh -n dnode2 -i 2
|
||||
system sh/deploy.sh -n dnode3 -i 3
|
||||
system sh/deploy.sh -n dnode4 -i 4
|
||||
|
||||
system sh/cfg.sh -n dnode1 -c supportVnodes -v 0
|
||||
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
system sh/exec.sh -n dnode2 -s start
|
||||
system sh/exec.sh -n dnode3 -s start
|
||||
system sh/exec.sh -n dnode4 -s start
|
||||
|
||||
$loop_cnt = 0
|
||||
check_dnode_ready:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 10 then
|
||||
print ====> dnode not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show dnodes
|
||||
print ===> $rows $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print ===> $rows $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
print ===> $rows $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6]
|
||||
print ===> $rows $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6]
|
||||
if $data[0][0] != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] != ready then
|
||||
goto check_dnode_ready
|
||||
endi
|
||||
|
||||
sql connect
|
||||
sql create dnode $hostname port 7200
|
||||
sql create dnode $hostname port 7300
|
||||
sql create dnode $hostname port 7400
|
||||
|
||||
$loop_cnt = 0
|
||||
check_dnode_ready_1:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 10 then
|
||||
print ====> dnodes not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show dnodes
|
||||
print ===> $rows $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print ===> $rows $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
print ===> $rows $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6]
|
||||
print ===> $rows $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6]
|
||||
if $data[0][4] != ready then
|
||||
goto check_dnode_ready_1
|
||||
endi
|
||||
if $data[1][4] != ready then
|
||||
goto check_dnode_ready_1
|
||||
endi
|
||||
if $data[2][4] != ready then
|
||||
goto check_dnode_ready_1
|
||||
endi
|
||||
if $data[3][4] != ready then
|
||||
goto check_dnode_ready_1
|
||||
endi
|
||||
|
||||
$replica = 3
|
||||
$vgroups = 5
|
||||
|
||||
print ============= create database
|
||||
sql create database db replica $replica vgroups $vgroups
|
||||
|
||||
$loop_cnt = 0
|
||||
check_db_ready:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 100 then
|
||||
print ====> db not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show databases
|
||||
print ===> rows: $rows
|
||||
print $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6] $data[2][7] $data[2][8] $data[2][9] $data[2][6] $data[2][11] $data[2][12] $data[2][13] $data[2][14] $data[2][15] $data[2][16] $data[2][17] $data[2][18] $data[2][19]
|
||||
if $rows != 3 then
|
||||
return -1
|
||||
endi
|
||||
if $data[2][19] != ready then
|
||||
goto check_db_ready
|
||||
endi
|
||||
|
||||
sql use db
|
||||
|
||||
$loop_cnt = 0
|
||||
check_vg_ready:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 300 then
|
||||
print ====> vgroups not ready!
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show vgroups
|
||||
print ===> rows: $rows
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][10] $data[0][11]
|
||||
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6] $data[1][7] $data[1][8] $data[1][9] $data[1][10] $data[1][11]
|
||||
print $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6] $data[2][7] $data[2][8] $data[2][9] $data[2][10] $data[2][11]
|
||||
print $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6] $data[3][7] $data[3][8] $data[3][9] $data[3][10] $data[3][11]
|
||||
print $data[4][0] $data[4][1] $data[4][2] $data[4][3] $data[4][4] $data[4][5] $data[4][6] $data[4][7] $data[4][8] $data[4][9] $data[4][10] $data[4][11]
|
||||
if $rows != $vgroups then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data[0][4] == LEADER then
|
||||
if $data[0][6] == FOLLOWER then
|
||||
if $data[0][8] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[0][6] == LEADER then
|
||||
if $data[0][4] == FOLLOWER then
|
||||
if $data[0][8] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[0][8] == LEADER then
|
||||
if $data[0][4] == FOLLOWER then
|
||||
if $data[0][6] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready
|
||||
endi
|
||||
|
||||
if $data[1][4] == LEADER then
|
||||
if $data[1][6] == FOLLOWER then
|
||||
if $data[1][8] == FOLLOWER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[1][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[1][6] == LEADER then
|
||||
if $data[1][4] == FOLLOWER then
|
||||
if $data[1][8] == FOLLOWER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[1][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[1][8] == LEADER then
|
||||
if $data[1][4] == FOLLOWER then
|
||||
if $data[1][6] == FOLLOWER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[1][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready
|
||||
endi
|
||||
|
||||
if $data[2][4] == LEADER then
|
||||
if $data[2][6] == FOLLOWER then
|
||||
if $data[2][8] == FOLLOWER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[2][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[2][6] == LEADER then
|
||||
if $data[2][4] == FOLLOWER then
|
||||
if $data[2][8] == FOLLOWER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[2][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[2][8] == LEADER then
|
||||
if $data[2][4] == FOLLOWER then
|
||||
if $data[2][6] == FOLLOWER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[2][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready
|
||||
endi
|
||||
|
||||
if $data[3][4] == LEADER then
|
||||
if $data[3][6] == FOLLOWER then
|
||||
if $data[3][8] == FOLLOWER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[3][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[3][6] == LEADER then
|
||||
if $data[3][4] == FOLLOWER then
|
||||
if $data[3][8] == FOLLOWER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[3][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[3][8] == LEADER then
|
||||
if $data[3][4] == FOLLOWER then
|
||||
if $data[3][6] == FOLLOWER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[3][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready
|
||||
endi
|
||||
|
||||
if $data[4][4] == LEADER then
|
||||
if $data[4][6] == FOLLOWER then
|
||||
if $data[4][8] == FOLLOWER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[4][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[4][6] == LEADER then
|
||||
if $data[4][4] == FOLLOWER then
|
||||
if $data[4][8] == FOLLOWER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[4][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[4][8] == LEADER then
|
||||
if $data[4][4] == FOLLOWER then
|
||||
if $data[4][6] == FOLLOWER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[4][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready
|
||||
endi
|
||||
|
||||
vg_ready:
|
||||
print ====> create stable/child table
|
||||
sql create table stb (ts timestamp, c1 int, c2 float, c3 binary(10)) tags (t1 int)
|
||||
|
||||
sql show stables
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
$ctbPrefix = ctb
|
||||
$ntbPrefix = ntb
|
||||
$tbNum = 10
|
||||
$i = 0
|
||||
while $i < $tbNum
|
||||
$ctb = $ctbPrefix . $i
|
||||
sql create table $ctb using stb tags( $i )
|
||||
$ntb = $ntbPrefix . $i
|
||||
sql create table $ntb (ts timestamp, c1 int, c2 float, c3 binary(10))
|
||||
$i = $i + 1
|
||||
endw
|
||||
|
||||
$totalTblNum = $tbNum * 2
|
||||
sleep 1000
|
||||
sql show tables
|
||||
print ====> expect $totalTblNum and infinsert $rows in fact
|
||||
if $rows != $totalTblNum then
|
||||
return -1
|
||||
endi
|
||||
|
||||
start_switch_leader:
|
||||
|
||||
$switch_loop_cnt = 0
|
||||
sql show vgroups
|
||||
$dnodeId = $data[0][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
|
||||
switch_leader_to_offine_loop:
|
||||
|
||||
print $dnodeId
|
||||
print ====> stop $dnodeId
|
||||
system sh/exec.sh -n $dnodeId -s stop -x SIGINT
|
||||
|
||||
|
||||
$loop_cnt = 0
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 201
|
||||
if $loop_cnt == 300 then
|
||||
print ====> vgroups switch fail!!!
|
||||
return -1
|
||||
endi
|
||||
sql show vgroups
|
||||
print ===> rows: $rows
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][10] $data[0][11]
|
||||
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6] $data[1][7] $data[1][8] $data[1][9] $data[1][10] $data[1][11]
|
||||
print $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6] $data[2][7] $data[2][8] $data[2][9] $data[2][10] $data[2][11]
|
||||
print $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6] $data[3][7] $data[3][8] $data[3][9] $data[3][10] $data[3][11]
|
||||
print $data[4][0] $data[4][1] $data[4][2] $data[4][3] $data[4][4] $data[4][5] $data[4][6] $data[4][7] $data[4][8] $data[4][9] $data[4][10] $data[4][11]
|
||||
if $rows != $vgroups then
|
||||
return -1
|
||||
endi
|
||||
|
||||
|
||||
vg_offline_1:
|
||||
|
||||
print ====> start $dnodeId
|
||||
system sh/exec.sh -n $dnodeId -s start
|
||||
|
||||
$switch_loop_cnt = $switch_loop_cnt + 1
|
||||
print $switch_loop_cnt
|
||||
|
||||
if $switch_loop_cnt == 1 then
|
||||
sql show vgroups
|
||||
$dnodeId = $data[1][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
goto switch_leader_to_offine_loop
|
||||
elif $switch_loop_cnt == 2 then
|
||||
sql show vgroups
|
||||
$dnodeId = $data[2][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
goto switch_leader_to_offine_loop
|
||||
elif $switch_loop_cnt == 3 then
|
||||
sql show vgroups
|
||||
$dnodeId = $data[3][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
goto switch_leader_to_offine_loop
|
||||
elif $switch_loop_cnt == 4 then
|
||||
sql show vgroups
|
||||
$dnodeId = $data[4][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
goto switch_leader_to_offine_loop
|
||||
else
|
||||
goto stop_leader_to_offine_loop
|
||||
endi
|
||||
|
||||
stop_leader_to_offine_loop:
|
||||
|
||||
$loop_cnt = 0
|
||||
check_vg_ready1:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
print $loop_cnt
|
||||
sleep 202
|
||||
if $loop_cnt == 300 then
|
||||
print ====> vgroups not ready!
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show vgroups
|
||||
print ===> rows: $rows
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][10] $data[0][11]
|
||||
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6] $data[1][7] $data[1][8] $data[1][9] $data[1][10] $data[1][11]
|
||||
print $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6] $data[2][7] $data[2][8] $data[2][9] $data[2][10] $data[2][11]
|
||||
print $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6] $data[3][7] $data[3][8] $data[3][9] $data[3][10] $data[3][11]
|
||||
print $data[4][0] $data[4][1] $data[4][2] $data[4][3] $data[4][4] $data[4][5] $data[4][6] $data[4][7] $data[4][8] $data[4][9] $data[4][10] $data[4][11]
|
||||
if $rows != $vgroups then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data[0][4] == LEADER then
|
||||
if $data[0][6] == FOLLOWER then
|
||||
if $data[0][8] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[0][6] == LEADER then
|
||||
if $data[0][4] == FOLLOWER then
|
||||
if $data[0][8] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[0][8] == LEADER then
|
||||
if $data[0][4] == FOLLOWER then
|
||||
if $data[0][6] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready1
|
||||
endi
|
||||
|
||||
if $data[1][4] == LEADER then
|
||||
if $data[1][6] == FOLLOWER then
|
||||
if $data[1][8] == FOLLOWER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[1][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[1][6] == LEADER then
|
||||
if $data[1][4] == FOLLOWER then
|
||||
if $data[1][8] == FOLLOWER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[1][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[1][8] == LEADER then
|
||||
if $data[1][4] == FOLLOWER then
|
||||
if $data[1][6] == FOLLOWER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[1][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready1
|
||||
endi
|
||||
|
||||
if $data[2][4] == LEADER then
|
||||
if $data[2][6] == FOLLOWER then
|
||||
if $data[2][8] == FOLLOWER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[2][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[2][6] == LEADER then
|
||||
if $data[2][4] == FOLLOWER then
|
||||
if $data[2][8] == FOLLOWER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[2][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[2][8] == LEADER then
|
||||
if $data[2][4] == FOLLOWER then
|
||||
if $data[2][6] == FOLLOWER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[2][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready1
|
||||
endi
|
||||
|
||||
if $data[3][4] == LEADER then
|
||||
if $data[3][6] == FOLLOWER then
|
||||
if $data[3][8] == FOLLOWER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[3][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[3][6] == LEADER then
|
||||
if $data[3][4] == FOLLOWER then
|
||||
if $data[3][8] == FOLLOWER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[3][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[3][8] == LEADER then
|
||||
if $data[3][4] == FOLLOWER then
|
||||
if $data[3][6] == FOLLOWER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[3][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready1
|
||||
endi
|
||||
|
||||
if $data[4][4] == LEADER then
|
||||
if $data[4][6] == FOLLOWER then
|
||||
if $data[4][8] == FOLLOWER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[4][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[4][6] == LEADER then
|
||||
if $data[4][4] == FOLLOWER then
|
||||
if $data[4][8] == FOLLOWER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[4][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[4][8] == LEADER then
|
||||
if $data[4][4] == FOLLOWER then
|
||||
if $data[4][6] == FOLLOWER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[4][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready1
|
||||
endi
|
||||
|
||||
|
||||
print ====> final test: create stable/child table
|
||||
sql create table stb1 (ts timestamp, c1 int, c2 float, c3 binary(10)) tags (t1 int)
|
||||
|
||||
|
||||
sql show stables
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
$ctbPrefix = ctb1
|
||||
$ntbPrefix = ntb1
|
||||
$tbNum = 10
|
||||
$i = 0
|
||||
while $i < $tbNum
|
||||
$ctb = $ctbPrefix . $i
|
||||
sql create table $ctb using stb1 tags( $i )
|
||||
$ntb = $ntbPrefix . $i
|
||||
sql create table $ntb (ts timestamp, c1 int, c2 float, c3 binary(10))
|
||||
$i = $i + 1
|
||||
endw
|
||||
|
||||
sleep 1000
|
||||
sql show stables
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show tables
|
||||
if $rows != 40 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
|
||||
|
||||
system sh/deploy.sh -n dnode5 -i 5
|
||||
system sh/exec.sh -n dnode5 -s start
|
||||
|
||||
sql connect
|
||||
sql create dnode $hostname port 7500
|
||||
|
||||
$loop_cnt = 0
|
||||
check_dnode_ready3:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 100 then
|
||||
print ====> dnode not ready!
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show dnodes
|
||||
print ===> $rows $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print ===> $rows $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
print ===> $rows $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6]
|
||||
print ===> $rows $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6]
|
||||
print ===> $rows $data[4][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6]
|
||||
|
||||
if $rows != 5 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data[4][4] != ready then
|
||||
goto check_dnode_ready3
|
||||
endi
|
||||
|
||||
|
||||
|
||||
# restart clusters
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode5 -s stop -x SIGINT
|
||||
|
||||
|
||||
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
system sh/exec.sh -n dnode2 -s start
|
||||
system sh/exec.sh -n dnode3 -s start
|
||||
system sh/exec.sh -n dnode4 -s start
|
||||
system sh/exec.sh -n dnode5 -s start
|
||||
|
||||
|
||||
$loop_cnt = 0
|
||||
check_dnode_ready_2:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 10 then
|
||||
print ====> dnode not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show dnodes
|
||||
print ===> $rows $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print ===> $rows $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
print ===> $rows $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6]
|
||||
print ===> $rows $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6]
|
||||
if $data[0][0] != 1 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data[0][4] != ready then
|
||||
goto check_dnode_ready_2
|
||||
endi
|
||||
if $data[1][4] != ready then
|
||||
goto check_dnode_ready_2
|
||||
endi
|
||||
if $data[2][4] != ready then
|
||||
goto check_dnode_ready_2
|
||||
endi
|
||||
if $data[3][4] != ready then
|
||||
goto check_dnode_ready_2
|
||||
endi
|
||||
|
||||
sql use db;
|
||||
$ctbPrefix = ctb2
|
||||
$ntbPrefix = ntb2
|
||||
$tbNum = 10
|
||||
$i = 0
|
||||
while $i < $tbNum
|
||||
$ctb = $ctbPrefix . $i
|
||||
sql create table $ctb using stb1 tags( $i )
|
||||
$ntb = $ntbPrefix . $i
|
||||
sql create table $ntb (ts timestamp, c1 int, c2 float, c3 binary(10))
|
||||
$i = $i + 1
|
||||
endw
|
||||
|
||||
sleep 1000
|
||||
sql use db
|
||||
sql show stables
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show tables
|
||||
print $rows
|
||||
if $rows != 60 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
|
||||
|
||||
$replica = 3
|
||||
$vgroups = 5
|
||||
|
||||
print ============= create database
|
||||
sql create database db1 replica $replica vgroups $vgroups
|
||||
|
||||
$loop_cnt = 0
|
||||
check_db_ready1:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 100 then
|
||||
print ====> db not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show databases
|
||||
print ===> rows: $rows
|
||||
print $data(db1)[0] $data(db1)[1] $data(db1)[2] $data(db1)[3] $data(db1)[4] $data(db1)[5] $data(db1)[6] $data(db1)[7] $data(db1)[8] $data(db1)[9] $data(db1)[6] $data(db1)[11] $data(db1)[12] $data(db1)[13] $data(db1)[14] $data(db1)[15] $data(db1)[16] $data(db1)[17] $data(db1)[18] $data(db1)[19]
|
||||
if $rows != 4 then
|
||||
return -1
|
||||
endi
|
||||
if $data(db1)[19] != ready then
|
||||
goto check_db_ready1
|
||||
endi
|
||||
|
||||
|
||||
sql use db1
|
||||
|
||||
$loop_cnt = 0
|
||||
check_vg_ready3:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
print $loop_cnt
|
||||
sleep 202
|
||||
if $loop_cnt == 300 then
|
||||
print ====> vgroups not ready!
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show vgroups
|
||||
print ===> rows: $rows
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][10] $data[0][11]
|
||||
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6] $data[1][7] $data[1][8] $data[1][9] $data[1][10] $data[1][11]
|
||||
print $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6] $data[2][7] $data[2][8] $data[2][9] $data[2][10] $data[2][11]
|
||||
print $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6] $data[3][7] $data[3][8] $data[3][9] $data[3][10] $data[3][11]
|
||||
print $data[4][0] $data[4][1] $data[4][2] $data[4][3] $data[4][4] $data[4][5] $data[4][6] $data[4][7] $data[4][8] $data[4][9] $data[4][10] $data[4][11]
|
||||
if $rows != $vgroups then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data[0][4] == LEADER then
|
||||
if $data[0][6] == FOLLOWER then
|
||||
if $data[0][8] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[0][6] == LEADER then
|
||||
if $data[0][4] == FOLLOWER then
|
||||
if $data[0][8] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[0][8] == LEADER then
|
||||
if $data[0][4] == FOLLOWER then
|
||||
if $data[0][6] == FOLLOWER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready3
|
||||
endi
|
||||
|
||||
if $data[1][4] == LEADER then
|
||||
if $data[1][6] == FOLLOWER then
|
||||
if $data[1][8] == FOLLOWER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[1][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[1][6] == LEADER then
|
||||
if $data[1][4] == FOLLOWER then
|
||||
if $data[1][8] == FOLLOWER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[1][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[1][8] == LEADER then
|
||||
if $data[1][4] == FOLLOWER then
|
||||
if $data[1][6] == FOLLOWER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[1][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready3
|
||||
endi
|
||||
|
||||
if $data[2][4] == LEADER then
|
||||
if $data[2][6] == FOLLOWER then
|
||||
if $data[2][8] == FOLLOWER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[2][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[2][6] == LEADER then
|
||||
if $data[2][4] == FOLLOWER then
|
||||
if $data[2][8] == FOLLOWER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[2][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[2][8] == LEADER then
|
||||
if $data[2][4] == FOLLOWER then
|
||||
if $data[2][6] == FOLLOWER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[2][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready3
|
||||
endi
|
||||
|
||||
if $data[3][4] == LEADER then
|
||||
if $data[3][6] == FOLLOWER then
|
||||
if $data[3][8] == FOLLOWER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[3][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[3][6] == LEADER then
|
||||
if $data[3][4] == FOLLOWER then
|
||||
if $data[3][8] == FOLLOWER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[3][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[3][8] == LEADER then
|
||||
if $data[3][4] == FOLLOWER then
|
||||
if $data[3][6] == FOLLOWER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[3][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready3
|
||||
endi
|
||||
|
||||
if $data[4][4] == LEADER then
|
||||
if $data[4][6] == FOLLOWER then
|
||||
if $data[4][8] == FOLLOWER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[4][3]
|
||||
endi
|
||||
endi
|
||||
elif $data[4][6] == LEADER then
|
||||
if $data[4][4] == FOLLOWER then
|
||||
if $data[4][8] == FOLLOWER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[4][5]
|
||||
endi
|
||||
endi
|
||||
elif $data[4][8] == LEADER then
|
||||
if $data[4][4] == FOLLOWER then
|
||||
if $data[4][6] == FOLLOWER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[4][7]
|
||||
endi
|
||||
endi
|
||||
else
|
||||
goto check_vg_ready3
|
||||
endi
|
||||
|
||||
# sql drop dnode 5
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||
|
||||
|
|
@ -31,7 +31,7 @@ if $data[0][4] != ready then
|
|||
goto check_dnode_ready
|
||||
endi
|
||||
|
||||
#sql connect
|
||||
sql connect
|
||||
sql create dnode $hostname port 7200
|
||||
sql create dnode $hostname port 7300
|
||||
sql create dnode $hostname port 7400
|
||||
|
@ -66,139 +66,94 @@ $vgroups = 1
|
|||
$replica = 1
|
||||
|
||||
print ============= create database
|
||||
sql create database db replica $replica vgroups $vgroups
|
||||
sql create database db1 replica $replica vgroups $vgroups
|
||||
|
||||
$loop_cnt = 0
|
||||
check_db_ready:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 10 then
|
||||
print ====> db not ready!
|
||||
if $loop_cnt == 100 then
|
||||
print ====> db1 not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show databases
|
||||
print ===> rows: $rows
|
||||
print $data(db)[0] $data(db)[1] $data(db)[2] $data(db)[3] $data(db)[4] $data(db)[5] $data(db)[6] $data(db)[7] $data(db)[8] $data(db)[9] $data(db)[10] $data(db)[11] $data(db)[12]
|
||||
print $data(db1)[0] $data(db)[1] $data(db)[2] $data(db)[3] $data(db)[4] $data(db)[5] $data(db)[6] $data(db)[7] $data(db)[8] $data(db)[9] $data(db)[10] $data(db)[11] $data(db)[12]
|
||||
print $data(db)[13] $data(db)[14] $data(db)[15] $data(db)[16] $data(db)[17] $data(db)[18] $data(db)[19] $data(db)[20]
|
||||
if $rows != 3 then
|
||||
return -1
|
||||
endi
|
||||
if $data(db)[19] != ready then
|
||||
if $data(db1)[19] != ready then
|
||||
goto check_db_ready
|
||||
endi
|
||||
|
||||
sql use db
|
||||
sql use db1
|
||||
|
||||
$loop_cnt = 0
|
||||
check_vg_ready:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 10 then
|
||||
if $loop_cnt == 300 then
|
||||
print ====> vgroups not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show vgroups
|
||||
print ===> rows: $rows
|
||||
print $data(2)[0] $data(2)[1] $data(2)[2] $data(2)[3] $data(2)[4] $data(2)[5] $data(2)[6] $data(2)[7] $data(2)[8] $data(2)[9] $data(2)[10] $data(2)[11] $data(2)[12] $data(2)[13]
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[10][6] $data[0][11] $data[0][12] $data[0][13]
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][6] $data[0][11] $data[0][12] $data[0][13]
|
||||
if $rows != $vgroups then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] == LEADER then
|
||||
if $data[0][6] != NULL then
|
||||
goto check_vg_ready
|
||||
endi
|
||||
if $data[0][8] != NULL then
|
||||
goto check_vg_ready
|
||||
endi
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][3]
|
||||
goto vg_ready
|
||||
endi
|
||||
if $data[0][6] == LEADER then
|
||||
if $data[0][4] != NULL then
|
||||
goto check_vg_ready
|
||||
endi
|
||||
if $data[0][8] != NULL then
|
||||
goto check_vg_ready
|
||||
endi
|
||||
goto vg_ready
|
||||
elif $data[0][6] == LEADER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][5]
|
||||
goto vg_ready
|
||||
endi
|
||||
if $data[0][8] == LEADER then
|
||||
if $data[0][4] != NULL then
|
||||
goto check_vg_ready
|
||||
endi
|
||||
if $data[0][6] != NULL then
|
||||
goto check_vg_ready
|
||||
endi
|
||||
goto vg_ready
|
||||
elif $data[0][8] == LEADER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][7]
|
||||
goto vg_ready
|
||||
goto vg_ready
|
||||
else
|
||||
goto check_vg_ready
|
||||
endi
|
||||
vg_ready:
|
||||
|
||||
print ====> create stable/child table, insert data, and select
|
||||
sql create table if not exists stb (ts timestamp, c1 int, c2 float, c3 binary(10)) tags (t1 int)
|
||||
vg_ready:
|
||||
print ====> create stable/child table
|
||||
sql create table stb (ts timestamp, c1 int, c2 float, c3 binary(10)) tags (t1 int)
|
||||
|
||||
sql show stables
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
|
||||
$ctbPrefix = ctb
|
||||
$ntbPrefix = ntb
|
||||
$tbNum = 10
|
||||
$rowNum = 10
|
||||
$tstart = 1640966400000 # 2022-01-01 00:00:00.000
|
||||
|
||||
$i = 0
|
||||
while $i < $tbNum
|
||||
$ctb = $ctbPrefix . $i
|
||||
sql create table $ctb using stb tags( $i )
|
||||
$ntb = $ntbPrefix . $i
|
||||
sql create table $ntb (ts timestamp, c1 int, c2 float, c3 binary(10))
|
||||
|
||||
$x = 0
|
||||
while $x < $rowNum
|
||||
$binary = ' . binary
|
||||
$binary = $binary . $i
|
||||
$binary = $binary . '
|
||||
|
||||
sql insert into $ctb values ($tstart , $i , $x , $binary )
|
||||
sql insert into $ntb values ($tstart , 999 , 999 , 'binary-ntb' )
|
||||
$tstart = $tstart + 1
|
||||
$x = $x + 1
|
||||
endw
|
||||
|
||||
print ====> insert rows: $rowNum into $ctb and $ntb
|
||||
|
||||
$i = $i + 1
|
||||
$tstart = 1640966400000
|
||||
endw
|
||||
|
||||
$totalTblNum = $tbNum * 2
|
||||
sleep 1000
|
||||
sql show tables
|
||||
print ====> expect $totalTblNum and infinsert $rows in fact
|
||||
if $rows != $totalTblNum then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql select count(*) from ntb0
|
||||
print rows: $rows
|
||||
print $data[0][0] $data[0][1]
|
||||
if $data[0][0] != $rowNum then
|
||||
return -1
|
||||
endi
|
||||
start_switch_leader:
|
||||
|
||||
$totalRowsOfStb = $rowNum * $tbNum
|
||||
sql select count(*) from stb
|
||||
print rows: $rows
|
||||
print $data[0][0] $data[0][1]
|
||||
if $data[0][0] != $totalRowsOfStb then
|
||||
return -1
|
||||
endi
|
||||
$switch_loop_cnt = 0
|
||||
switch_leader_to_offine_loop:
|
||||
|
||||
print ====> finde vnode of leader, and stop the dnode where the vnode is located, and query stb/ntb count(*)
|
||||
sql show vgroups
|
||||
print $data(2)[0] $data(2)[1] $data(2)[2] $data(2)[3] $data(2)[4] $data(2)[5] $data(2)[6] $data(2)[7] $data(2)[8] $data(2)[9] $data(2)[10] $data(2)[11] $data(2)[12] $data(2)[13]
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][6] $data[0][11] $data[0][12] $data[0][13]
|
||||
if $data[0][4] == LEADER then
|
||||
$dnodeId = $data[0][3]
|
||||
elif $data[0][6] == LEADER then
|
||||
|
@ -213,148 +168,78 @@ endi
|
|||
$dnodeId = dnode . $dnodeId
|
||||
print ====> stop $dnodeId
|
||||
system sh/exec.sh -n $dnodeId -s stop -x SIGINT
|
||||
#print ====> start $dnodeId
|
||||
#system sh/exec.sh -n $dnodeId -s start
|
||||
|
||||
$loop_cnt = 0
|
||||
check_vg_ready_2:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 10 then
|
||||
if $loop_cnt == 300 then
|
||||
print ====> vgroups switch fail!!!
|
||||
return -1
|
||||
endi
|
||||
sql show vgroups
|
||||
print ===> rows: $rows
|
||||
print $data(2)[0] $data(2)[1] $data(2)[2] $data(2)[3] $data(2)[4] $data(2)[5] $data(2)[6] $data(2)[7] $data(2)[8] $data(2)[9] $data(2)[10] $data(2)[11] $data(2)[12] $data(2)[13]
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[10][6] $data[0][11] $data[0][12] $data[0][13]
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][6] $data[0][11] $data[0][12] $data[0][13]
|
||||
if $rows != $vgroups then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] == LEADER then
|
||||
if $data[0][6] != NULL then
|
||||
goto check_vg_ready_2
|
||||
endi
|
||||
if $data[0][8] != NULL then
|
||||
goto check_vg_ready_2
|
||||
endi
|
||||
print ---- vgroup $data[0][0] leader switch to dnode $data[0][3]
|
||||
goto vg_ready_2
|
||||
endi
|
||||
if $data[0][6] == LEADER then
|
||||
if $data[0][4] != NULL then
|
||||
goto check_vg_ready_2
|
||||
endi
|
||||
if $data[0][8] != NULL then
|
||||
goto check_vg_ready_2
|
||||
endi
|
||||
print ---- vgroup $data[0][0] leader switch to dnode $data[0][5]
|
||||
goto vg_ready_2
|
||||
endi
|
||||
if $data[0][8] == LEADER then
|
||||
if $data[0][4] != NULL then
|
||||
goto check_vg_ready_2
|
||||
endi
|
||||
if $data[0][6] != NULL then
|
||||
goto check_vg_ready_2
|
||||
endi
|
||||
print ---- vgroup $data[0][0] leader switch to dnode $data[0][7]
|
||||
goto vg_ready_2
|
||||
endi
|
||||
vg_ready_2:
|
||||
|
||||
sql select count(*) from ntb0
|
||||
print rows: $rows
|
||||
print $data[0][0] $data[0][1]
|
||||
if $data[0][0] != $rowNum then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] == OFFLINE then
|
||||
print ---- vgroup $dnodeId leader switch to offline
|
||||
goto vg_offline_1
|
||||
elif $data[0][6] == OFFLINE then
|
||||
print ---- vgroup $dnodeId leader switch to offline
|
||||
goto vg_offline_1
|
||||
elif $data[0][8] == OFFLINE then
|
||||
print ---- vgroup $dnodeId leader switch to offline
|
||||
goto vg_offline_1
|
||||
else
|
||||
goto check_vg_ready_2
|
||||
endi
|
||||
|
||||
sql select count(*) from ctb0
|
||||
print rows: $rows
|
||||
print $data[0][0] $data[0][1]
|
||||
if $data[0][0] != $rowNum then
|
||||
return -1
|
||||
endi
|
||||
vg_offline_1:
|
||||
|
||||
sql select count(*) from stb
|
||||
print rows: $rows
|
||||
print $data[0][0] $data[0][1]
|
||||
if $data[0][0] != $totalRowsOfStb then
|
||||
return -1
|
||||
endi
|
||||
print ====> start $dnodeId
|
||||
system sh/exec.sh -n $dnodeId -s start
|
||||
|
||||
print ====> stop and start all dnode(not include the dnode where mnode is located), then query
|
||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode4 -s start
|
||||
system sh/exec.sh -n dnode3 -s start
|
||||
system sh/exec.sh -n dnode2 -s start
|
||||
|
||||
$loop_cnt = 0
|
||||
check_vg_ready_1:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
$loop_cnt1= 0
|
||||
check_vg1_ready:
|
||||
$loop_cnt1 = $loop_cnt1 + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 10 then
|
||||
print ====> after restart dnode, vgroups not ready!
|
||||
if $loop_cnt1 == 300 then
|
||||
print ====> vgroups not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show vgroups
|
||||
print ===> rows: $rows
|
||||
print $data(2)[0] $data(2)[1] $data(2)[2] $data(2)[3] $data(2)[4] $data(2)[5] $data(2)[6] $data(2)[7] $data(2)[8] $data(2)[9] $data(2)[10] $data(2)[11] $data(2)[12] $data(2)[13]
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[10][6] $data[0][11] $data[0][12] $data[0][13]
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][6] $data[0][11] $data[0][12] $data[0][13]
|
||||
if $rows != $vgroups then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] == LEADER then
|
||||
if $data[0][6] != NULL then
|
||||
goto check_vg_ready_1
|
||||
endi
|
||||
if $data[0][8] != NULL then
|
||||
goto check_vg_ready_1
|
||||
endi
|
||||
goto vg_ready_1
|
||||
endi
|
||||
if $data[0][6] == LEADER then
|
||||
if $data[0][4] != NULL then
|
||||
goto check_vg_ready_1
|
||||
endi
|
||||
if $data[0][8] != NULL then
|
||||
goto check_vg_ready_1
|
||||
endi
|
||||
goto vg_ready_1
|
||||
endi
|
||||
if $data[0][8] == LEADER then
|
||||
if $data[0][4] != NULL then
|
||||
goto check_vg_ready_1
|
||||
endi
|
||||
if $data[0][6] != NULL then
|
||||
goto check_vg_ready_1
|
||||
endi
|
||||
goto vg_ready_1
|
||||
endi
|
||||
vg_ready_1:
|
||||
|
||||
print ====> after restart dnode2/dnode3/dnode4, query stb/ntb count(*)
|
||||
sql select count(*) from ntb0
|
||||
print rows: $rows
|
||||
print $data[0][0] $data[0][1]
|
||||
if $data[0][0] != $rowNum then
|
||||
return -1
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][3]
|
||||
goto countinu_loop
|
||||
elif $data[0][6] == LEADER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][5]
|
||||
goto countinu_loop
|
||||
elif $data[0][8] == LEADER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][7]
|
||||
goto countinu_loop
|
||||
else
|
||||
goto check_vg1_ready
|
||||
endi
|
||||
|
||||
sql select count(*) from ctb0
|
||||
print rows: $rows
|
||||
print $data[0][0] $data[0][1]
|
||||
if $data[0][0] != $rowNum then
|
||||
return -1
|
||||
countinu_loop:
|
||||
|
||||
$switch_loop_cnt = $switch_loop_cnt + 1
|
||||
print $switch_loop_cnt
|
||||
if $switch_loop_cnt < 4 then
|
||||
goto switch_leader_to_offine_loop
|
||||
endi
|
||||
|
||||
sql select count(*) from stb
|
||||
print rows: $rows
|
||||
print $data[0][0] $data[0][1]
|
||||
if $data[0][0] != $totalRowsOfStb then
|
||||
return -1
|
||||
endi
|
||||
stop_leader_to_offine_loop:
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||
|
|
|
@ -0,0 +1,417 @@
|
|||
system sh/stop_dnodes.sh
|
||||
system sh/deploy.sh -n dnode1 -i 1
|
||||
system sh/deploy.sh -n dnode2 -i 2
|
||||
system sh/deploy.sh -n dnode3 -i 3
|
||||
system sh/deploy.sh -n dnode4 -i 4
|
||||
|
||||
system sh/cfg.sh -n dnode1 -c supportVnodes -v 0
|
||||
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
system sh/exec.sh -n dnode2 -s start
|
||||
system sh/exec.sh -n dnode3 -s start
|
||||
system sh/exec.sh -n dnode4 -s start
|
||||
|
||||
$loop_cnt = 0
|
||||
check_dnode_ready:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 10 then
|
||||
print ====> dnode not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show dnodes
|
||||
print ===> $rows $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print ===> $rows $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
print ===> $rows $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6]
|
||||
print ===> $rows $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6]
|
||||
if $data[0][0] != 1 then
|
||||
return -1
|
||||
endi
|
||||
if $data[0][4] != ready then
|
||||
goto check_dnode_ready
|
||||
endi
|
||||
|
||||
sql connect
|
||||
sql create dnode $hostname port 7200
|
||||
sql create dnode $hostname port 7300
|
||||
sql create dnode $hostname port 7400
|
||||
|
||||
$loop_cnt = 0
|
||||
check_dnode_ready_1:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 10 then
|
||||
print ====> dnodes not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show dnodes
|
||||
print ===> $rows $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print ===> $rows $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
print ===> $rows $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6]
|
||||
print ===> $rows $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6]
|
||||
if $data[0][4] != ready then
|
||||
goto check_dnode_ready_1
|
||||
endi
|
||||
if $data[1][4] != ready then
|
||||
goto check_dnode_ready_1
|
||||
endi
|
||||
if $data[2][4] != ready then
|
||||
goto check_dnode_ready_1
|
||||
endi
|
||||
if $data[3][4] != ready then
|
||||
goto check_dnode_ready_1
|
||||
endi
|
||||
|
||||
$replica = 1
|
||||
$vgroups = 5
|
||||
|
||||
print ============= create database
|
||||
sql create database db1 replica $replica vgroups $vgroups
|
||||
|
||||
$loop_cnt = 0
|
||||
check_db_ready:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 100 then
|
||||
print ====> db1 not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show databases
|
||||
print ===> rows: $rows
|
||||
print $data(db1)[0] $data(db)[1] $data(db)[2] $data(db)[3] $data(db)[4] $data(db)[5] $data(db)[6] $data(db)[7] $data(db)[8] $data(db)[9] $data(db)[10] $data(db)[11] $data(db)[12]
|
||||
if $rows != 3 then
|
||||
return -1
|
||||
endi
|
||||
if $data(db1)[19] != ready then
|
||||
goto check_db_ready
|
||||
endi
|
||||
|
||||
sql use db1
|
||||
|
||||
$loop_cnt = 0
|
||||
check_vg_ready:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 300 then
|
||||
print ====> vgroups not ready!
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show vgroups
|
||||
print ===> rows: $rows
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][6] $data[0][11] $data[0][12] $data[0][13]
|
||||
if $rows != $vgroups then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data[0][4] == LEADER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][3]
|
||||
elif $data[0][6] == LEADER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][5]
|
||||
elif $data[0][8] == LEADER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][7]
|
||||
else
|
||||
goto check_vg_ready
|
||||
endi
|
||||
|
||||
if $data[1][4] == LEADER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[0][3]
|
||||
elif $data[1][6] == LEADER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[0][5]
|
||||
elif $data[1][8] == LEADER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[0][7]
|
||||
else
|
||||
goto check_vg_ready
|
||||
endi
|
||||
|
||||
if $data[2][4] == LEADER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[0][3]
|
||||
elif $data[2][6] == LEADER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[0][5]
|
||||
elif $data[2][8] == LEADER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[0][7]
|
||||
else
|
||||
goto check_vg_ready
|
||||
endi
|
||||
|
||||
if $data[3][4] == LEADER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[0][3]
|
||||
elif $data[3][6] == LEADER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[0][5]
|
||||
elif $data[3][8] == LEADER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[0][7]
|
||||
else
|
||||
goto check_vg_ready
|
||||
endi
|
||||
|
||||
if $data[4][4] == LEADER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[0][3]
|
||||
elif $data[4][6] == LEADER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[0][5]
|
||||
elif $data[4][8] == LEADER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[0][7]
|
||||
else
|
||||
goto check_vg_ready
|
||||
endi
|
||||
|
||||
vg_ready:
|
||||
print ====> create stable/child table
|
||||
sql create table stb (ts timestamp, c1 int, c2 float, c3 binary(10)) tags (t1 int)
|
||||
|
||||
sql show stables
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
$ctbPrefix = ctb
|
||||
$ntbPrefix = ntb
|
||||
$tbNum = 10
|
||||
$i = 0
|
||||
while $i < $tbNum
|
||||
$ctb = $ctbPrefix . $i
|
||||
sql create table $ctb using stb tags( $i )
|
||||
$ntb = $ntbPrefix . $i
|
||||
sql create table $ntb (ts timestamp, c1 int, c2 float, c3 binary(10))
|
||||
$i = $i + 1
|
||||
endw
|
||||
|
||||
$totalTblNum = $tbNum * 2
|
||||
sleep 1000
|
||||
sql show tables
|
||||
print ====> expect $totalTblNum and infinsert $rows in fact
|
||||
if $rows != $totalTblNum then
|
||||
return -1
|
||||
endi
|
||||
|
||||
start_switch_leader:
|
||||
|
||||
$switch_loop_cnt = 0
|
||||
sql show vgroups
|
||||
$dnodeId = $data[0][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
|
||||
switch_leader_to_offine_loop:
|
||||
|
||||
print $dnodeId
|
||||
print ====> stop $dnodeId
|
||||
system sh/exec.sh -n $dnodeId -s stop -x SIGINT
|
||||
|
||||
|
||||
$loop_cnt = 0
|
||||
check_vg_ready_2:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 201
|
||||
if $loop_cnt == 300 then
|
||||
print ====> vgroups switch fail!!!
|
||||
return -1
|
||||
endi
|
||||
sql show vgroups
|
||||
print ===> rows: $rows
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][6] $data[0][11] $data[0][12] $data[0][13]
|
||||
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6] $data[1][7] $data[1][8] $data[1][9] $data[1][6] $data[1][11] $data[1][12] $data[1][13]
|
||||
print $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6] $data[2][7] $data[2][8] $data[2][9] $data[2][6] $data[2][11] $data[2][12] $data[2][13]
|
||||
print $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6] $data[3][7] $data[3][8] $data[3][9] $data[3][6] $data[3][11] $data[3][12] $data[3][13]
|
||||
print $data[4][0] $data[4][1] $data[4][2] $data[4][3] $data[4][4] $data[4][5] $data[4][6] $data[4][7] $data[4][8] $data[4][9] $data[4][6] $data[4][11] $data[4][12] $data[4][13]
|
||||
if $rows != $vgroups then
|
||||
return -1
|
||||
endi
|
||||
|
||||
|
||||
vg_offline_1:
|
||||
|
||||
print ====> start $dnodeId
|
||||
system sh/exec.sh -n $dnodeId -s start
|
||||
|
||||
$switch_loop_cnt = $switch_loop_cnt + 1
|
||||
print $switch_loop_cnt
|
||||
|
||||
if $switch_loop_cnt == 1 then
|
||||
sql show vgroups
|
||||
$dnodeId = $data[1][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
goto switch_leader_to_offine_loop
|
||||
elif $switch_loop_cnt == 2 then
|
||||
sql show vgroups
|
||||
$dnodeId = $data[2][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
goto switch_leader_to_offine_loop
|
||||
elif $switch_loop_cnt == 3 then
|
||||
sql show vgroups
|
||||
$dnodeId = $data[3][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
goto switch_leader_to_offine_loop
|
||||
elif $switch_loop_cnt == 4 then
|
||||
sql show vgroups
|
||||
$dnodeId = $data[4][3]
|
||||
$dnodeId = dnode . $dnodeId
|
||||
goto switch_leader_to_offine_loop
|
||||
else
|
||||
goto stop_leader_to_offine_loop
|
||||
endi
|
||||
|
||||
stop_leader_to_offine_loop:
|
||||
|
||||
$loop_cnt = 0
|
||||
check_vg_ready1:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
print $loop_cnt
|
||||
sleep 202
|
||||
if $loop_cnt == 300 then
|
||||
print ====> vgroups not ready!
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show vgroups
|
||||
print ===> rows: $rows
|
||||
print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6] $data[0][7] $data[0][8] $data[0][9] $data[0][6] $data[0][11] $data[0][12] $data[0][13]
|
||||
print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6] $data[1][7] $data[1][8] $data[1][9] $data[1][6] $data[1][11] $data[1][12] $data[1][13]
|
||||
print $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6] $data[2][7] $data[2][8] $data[2][9] $data[2][6] $data[2][11] $data[2][12] $data[2][13]
|
||||
print $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6] $data[3][7] $data[3][8] $data[3][9] $data[3][6] $data[3][11] $data[3][12] $data[3][13]
|
||||
print $data[4][0] $data[4][1] $data[4][2] $data[4][3] $data[4][4] $data[4][5] $data[4][6] $data[4][7] $data[4][8] $data[4][9] $data[4][6] $data[4][11] $data[4][12] $data[4][13]
|
||||
if $rows != $vgroups then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data[0][4] == LEADER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][3]
|
||||
elif $data[0][6] == LEADER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][5]
|
||||
elif $data[0][8] == LEADER then
|
||||
print ---- vgroup $data[0][0] leader locate on dnode $data[0][7]
|
||||
else
|
||||
goto check_vg_ready1
|
||||
endi
|
||||
|
||||
if $data[1][4] == LEADER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[1][3]
|
||||
elif $data[1][6] == LEADER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[1][5]
|
||||
elif $data[1][8] == LEADER then
|
||||
print ---- vgroup $data[1][0] leader locate on dnode $data[1][7]
|
||||
else
|
||||
goto check_vg_ready1
|
||||
endi
|
||||
|
||||
if $data[2][4] == LEADER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[2][3]
|
||||
elif $data[2][6] == LEADER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[2][5]
|
||||
elif $data[2][8] == LEADER then
|
||||
print ---- vgroup $data[2][0] leader locate on dnode $data[2][7]
|
||||
else
|
||||
goto check_vg_ready
|
||||
endi
|
||||
|
||||
if $data[3][4] == LEADER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[3][3]
|
||||
elif $data[3][6] == LEADER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[3][5]
|
||||
elif $data[3][8] == LEADER then
|
||||
print ---- vgroup $data[3][0] leader locate on dnode $data[3][7]
|
||||
else
|
||||
goto check_vg_ready1
|
||||
endi
|
||||
|
||||
if $data[4][4] == LEADER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[4][3]
|
||||
elif $data[4][6] == LEADER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[4][5]
|
||||
elif $data[4][8] == LEADER then
|
||||
print ---- vgroup $data[4][0] leader locate on dnode $data[4][7]
|
||||
else
|
||||
goto check_vg_ready1
|
||||
endi
|
||||
|
||||
|
||||
print ====> final test: create stable/child table
|
||||
sql create table stb1 (ts timestamp, c1 int, c2 float, c3 binary(10)) tags (t1 int)
|
||||
|
||||
|
||||
sql show stables
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
$ctbPrefix = ctb1
|
||||
$ntbPrefix = ntb1
|
||||
$tbNum = 10
|
||||
$i = 0
|
||||
while $i < $tbNum
|
||||
$ctb = $ctbPrefix . $i
|
||||
sql create table $ctb using stb1 tags( $i )
|
||||
$ntb = $ntbPrefix . $i
|
||||
sql create table $ntb (ts timestamp, c1 int, c2 float, c3 binary(10))
|
||||
$i = $i + 1
|
||||
endw
|
||||
|
||||
|
||||
sql show stables
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show tables
|
||||
if $rows != 40 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||
|
||||
|
||||
|
||||
system sh/exec.sh -n dnode1 -s start
|
||||
system sh/exec.sh -n dnode2 -s start
|
||||
system sh/exec.sh -n dnode3 -s start
|
||||
system sh/exec.sh -n dnode4 -s start
|
||||
|
||||
|
||||
|
||||
$loop_cnt = 0
|
||||
check_dnode_ready_2:
|
||||
$loop_cnt = $loop_cnt + 1
|
||||
sleep 200
|
||||
if $loop_cnt == 10 then
|
||||
print ====> dnode not ready!
|
||||
return -1
|
||||
endi
|
||||
sql show dnodes
|
||||
print ===> $rows $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] $data[0][5] $data[0][6]
|
||||
print ===> $rows $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] $data[1][5] $data[1][6]
|
||||
print ===> $rows $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[2][4] $data[2][5] $data[2][6]
|
||||
print ===> $rows $data[3][0] $data[3][1] $data[3][2] $data[3][3] $data[3][4] $data[3][5] $data[3][6]
|
||||
if $data[0][0] != 1 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data[0][4] != ready then
|
||||
goto check_dnode_ready_2
|
||||
endi
|
||||
if $data[1][4] != ready then
|
||||
goto check_dnode_ready_2
|
||||
endi
|
||||
if $data[2][4] != ready then
|
||||
goto check_dnode_ready_2
|
||||
endi
|
||||
if $data[3][4] != ready then
|
||||
goto check_dnode_ready_2
|
||||
endi
|
||||
|
||||
sql use db1
|
||||
sql show stables
|
||||
if $rows != 2 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql show tables
|
||||
if $rows != 40 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
||||
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
Loading…
Reference in New Issue