[TD-533]
This commit is contained in:
parent
a9464dab7c
commit
4c821664e4
|
@ -258,7 +258,37 @@ void mnodeUpdateVgroup(SVgObj *pVgroup) {
|
||||||
mnodeSendCreateVgroupMsg(pVgroup, NULL);
|
mnodeSendCreateVgroupMsg(pVgroup, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mnodeCheckUnCreatedVgroup(SDnodeObj *pDnode, SVnodeLoad *pVloads, int32_t openVnodes) {}
|
/*
|
||||||
|
Traverse all vgroups on mnode, if there no such vgId on a dnode, so send msg to this dnode for re-creating this vgId/vnode
|
||||||
|
*/
|
||||||
|
void mnodeCheckUnCreatedVgroup(SDnodeObj *pDnode, SVnodeLoad *pVloads, int32_t openVnodes) {
|
||||||
|
SVnodeLoad *pNextV = NULL;
|
||||||
|
|
||||||
|
void *pIter = NULL;
|
||||||
|
while (1) {
|
||||||
|
SVgObj *pVgroup;
|
||||||
|
pIter = mnodeGetNextVgroup(pIter, &pVgroup);
|
||||||
|
if (pVgroup == NULL) break;
|
||||||
|
|
||||||
|
pNextV = pVloads;
|
||||||
|
int32_t i;
|
||||||
|
for (i = 0; i < openVnodes; ++i) {
|
||||||
|
if ((pVgroup->vnodeGid[i].pDnode == pDnode) && (pVgroup->vgId == pNextV->vgId)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
pNextV++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (i == openVnodes) {
|
||||||
|
mnodeSendCreateVgroupMsg(pVgroup, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
mnodeDecVgroupRef(pVgroup);
|
||||||
|
}
|
||||||
|
|
||||||
|
sdbFreeIter(pIter);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
void mnodeUpdateVgroupStatus(SVgObj *pVgroup, SDnodeObj *pDnode, SVnodeLoad *pVload) {
|
void mnodeUpdateVgroupStatus(SVgObj *pVgroup, SDnodeObj *pDnode, SVnodeLoad *pVload) {
|
||||||
bool dnodeExist = false;
|
bool dnodeExist = false;
|
||||||
|
@ -861,4 +891,4 @@ void mnodeSendDropAllDbVgroupsMsg(SDbObj *pDropDb) {
|
||||||
sdbFreeIter(pIter);
|
sdbFreeIter(pIter);
|
||||||
|
|
||||||
mPrint("db:%s, all vgroups:%d drop msg is sent to dnode", pDropDb->name, numOfVgroups);
|
mPrint("db:%s, all vgroups:%d drop msg is sent to dnode", pDropDb->name, numOfVgroups);
|
||||||
}
|
}
|
||||||
|
|
|
@ -337,7 +337,9 @@ cd ../../../debug; make
|
||||||
./test.sh -f unique/arbitrator/dn3_mn1_vnode_corruptFile_offline.sim
|
./test.sh -f unique/arbitrator/dn3_mn1_vnode_corruptFile_offline.sim
|
||||||
./test.sh -f unique/arbitrator/dn3_mn1_vnode_corruptFile_online.sim
|
./test.sh -f unique/arbitrator/dn3_mn1_vnode_corruptFile_online.sim
|
||||||
./test.sh -f unique/arbitrator/dn3_mn1_vnode_noCorruptFile_offline.sim
|
./test.sh -f unique/arbitrator/dn3_mn1_vnode_noCorruptFile_offline.sim
|
||||||
#./test.sh -f unique/arbitrator/dn3_mn1_vnode_delDir.sim
|
./test.sh -f unique/arbitrator/dn3_mn1_vnode_delDir.sim
|
||||||
|
./test.sh -f unique/arbitrator/dn3_mn1_r2_vnode_delDir.sim
|
||||||
|
./test.sh -f unique/arbitrator/dn3_mn1_r3_vnode_delDir.sim
|
||||||
./test.sh -f unique/arbitrator/dn3_mn1_vnode_nomaster.sim
|
./test.sh -f unique/arbitrator/dn3_mn1_vnode_nomaster.sim
|
||||||
./test.sh -f unique/arbitrator/dn3_mn2_killDnode.sim
|
./test.sh -f unique/arbitrator/dn3_mn2_killDnode.sim
|
||||||
./test.sh -f unique/arbitrator/insert_duplicationTs.sim
|
./test.sh -f unique/arbitrator/insert_duplicationTs.sim
|
||||||
|
|
|
@ -0,0 +1,357 @@
|
||||||
|
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 numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode2 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c walLevel -v 2
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode2 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode3 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode4 -c balanceInterval -v 10
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c alternativeRole -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c alternativeRole -v 2
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c maxtablesPerVnode -v 4
|
||||||
|
system sh/cfg.sh -n dnode2 -c maxtablesPerVnode -v 4
|
||||||
|
system sh/cfg.sh -n dnode3 -c maxtablesPerVnode -v 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c maxtablesPerVnode -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode4 -c arbitrator -v $arbitrator
|
||||||
|
|
||||||
|
print ============== step0: start tarbitrator
|
||||||
|
system sh/exec_tarbitrator.sh -s start
|
||||||
|
|
||||||
|
print ============== step1: start dnode1, only deploy mnode
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
sleep 3000
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 2, and create table, insert data
|
||||||
|
system sh/exec.sh -n dnode2 -s start
|
||||||
|
system sh/exec.sh -n dnode3 -s start
|
||||||
|
sql create dnode $hostname2
|
||||||
|
sql create dnode $hostname3
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
$totalTableNum = 10
|
||||||
|
$sleepTimer = 3000
|
||||||
|
|
||||||
|
$db = db
|
||||||
|
sql create database $db replica 2 maxTables $totalTableNum
|
||||||
|
sql use $db
|
||||||
|
|
||||||
|
# create table , insert data
|
||||||
|
$stb = stb
|
||||||
|
sql create table $stb (ts timestamp, c1 int) tags(t1 int)
|
||||||
|
$rowNum = 100
|
||||||
|
$tblNum = $totalTableNum
|
||||||
|
$totalRows = 0
|
||||||
|
$tsStart = 1420041600000
|
||||||
|
|
||||||
|
$i = 0
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x ) ( $ts + 10a , $x ) ( $ts + 11a , $x ) ( $ts + 12a , $x ) ( $ts + 13a , $x ) ( $ts + 14a , $x ) ( $ts + 15a , $x ) ( $ts + 16a , $x ) ( $ts + 17a , $x ) ( $ts + 18a , $x ) ( $ts + 19a , $x ) ( $ts + 20a , $x ) ( $ts + 21a , $x ) ( $ts + 22a , $x ) ( $ts + 23a , $x ) ( $ts + 24a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 35a , $x ) ( $ts + 36a , $x ) ( $ts + 37a , $x ) ( $ts + 38a , $x ) ( $ts + 39a , $x ) ( $ts + 40a , $x ) ( $ts + 41a , $x ) ( $ts + 42a , $x ) ( $ts + 43a , $x ) ( $ts + 44a , $x ) ( $ts + 45a , $x ) ( $ts + 46a , $x ) ( $ts + 47a , $x ) ( $ts + 48a , $x ) ( $ts + 49a , $x ) ( $ts + 50a , $x ) ( $ts + 51a , $x ) ( $ts + 52a , $x ) ( $ts + 53a , $x ) ( $ts + 54a , $x ) ( $ts + 55a , $x ) ( $ts + 56a , $x ) ( $ts + 57a , $x ) ( $ts + 58a , $x ) ( $ts + 59a , $x )
|
||||||
|
$x = $x + 60
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step3: stop dnode3, and remove its vnodeX subdirector
|
||||||
|
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
||||||
|
#sleep $sleepTimer
|
||||||
|
|
||||||
|
$loopCnt = 0
|
||||||
|
wait_dnode3_offline_0:
|
||||||
|
$loopCnt = $loopCnt + 1
|
||||||
|
if $loopCnt == 10 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 3 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode3_offline_0
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
|
||||||
|
if $dnode3Status != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode3_offline_0
|
||||||
|
endi
|
||||||
|
|
||||||
|
$loopCnt = 0
|
||||||
|
wait_dnode3_vgroup_offline:
|
||||||
|
$loopCnt = $loopCnt + 1
|
||||||
|
if $loopCnt == 10 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show vgroups
|
||||||
|
if $rows != 1 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode3_vgroup_offline
|
||||||
|
endi
|
||||||
|
print show vgroups:
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
|
||||||
|
$dnode3Vtatus = $data4_2
|
||||||
|
$dnode2Vtatus = $data7_2
|
||||||
|
|
||||||
|
if $dnode3Vtatus != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode3_vgroup_offline
|
||||||
|
endi
|
||||||
|
if $dnode2Vtatus != master then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode3_vgroup_offline
|
||||||
|
endi
|
||||||
|
|
||||||
|
system rm -rf ../../../sim/dnode3/data
|
||||||
|
#system rm -rf ../../../sim/dnode3/data/vnode/*
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step4: restart dnode3, waiting sync end
|
||||||
|
system sh/exec.sh -n dnode3 -s start
|
||||||
|
#sleep $sleepTimer
|
||||||
|
|
||||||
|
$loopCnt = 0
|
||||||
|
wait_dnode3_reready:
|
||||||
|
$loopCnt = $loopCnt + 1
|
||||||
|
if $loopCnt == 10 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 3 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode3_reready
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
|
||||||
|
if $dnode3Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode3_reready
|
||||||
|
endi
|
||||||
|
|
||||||
|
$loopCnt = 0
|
||||||
|
wait_dnode3_vgroup_slave:
|
||||||
|
$loopCnt = $loopCnt + 1
|
||||||
|
if $loopCnt == 10 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show vgroups
|
||||||
|
if $rows != 1 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode3_vgroup_slave
|
||||||
|
endi
|
||||||
|
print show vgroups:
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
|
||||||
|
$dnode3Vtatus = $data4_2
|
||||||
|
$dnode2Vtatus = $data7_2
|
||||||
|
|
||||||
|
print dnode2Vtatus: $dnode3Vtatus
|
||||||
|
print dnode3Vtatus: $dnode3Vtatus
|
||||||
|
if $dnode3Vtatus != slave then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode3_vgroup_slave
|
||||||
|
endi
|
||||||
|
if $dnode2Vtatus != master then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode3_vgroup_slave
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step5: stop dnode2, and remove its vnode
|
||||||
|
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||||
|
sleep $sleepTimer
|
||||||
|
|
||||||
|
$loopCnt = 0
|
||||||
|
wait_dnode2_offline:
|
||||||
|
$loopCnt = $loopCnt + 1
|
||||||
|
if $loopCnt == 10 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 3 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode2_offline
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
|
||||||
|
if $dnode2Status != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode2_offline
|
||||||
|
endi
|
||||||
|
if $dnode3Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode2_offline
|
||||||
|
endi
|
||||||
|
|
||||||
|
system rm -rf ../../../sim/dnode2/data
|
||||||
|
#system rm -rf ../../../sim/dnode2/data/vnode/*
|
||||||
|
#system rm -rf ../../../sim/dnode3/data/vnode/*
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
|
||||||
|
print ============== step6: restart dnode2, and check rows
|
||||||
|
system sh/exec.sh -n dnode2 -s start
|
||||||
|
#sleep $sleepTimer
|
||||||
|
|
||||||
|
$loopCnt = 0
|
||||||
|
wait_dnode2_reready:
|
||||||
|
$loopCnt = $loopCnt + 1
|
||||||
|
if $loopCnt == 10 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 3 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode2_reready
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
|
||||||
|
if $dnode3Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode2_reready
|
||||||
|
endi
|
||||||
|
if $dnode2Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode2_reready
|
||||||
|
endi
|
||||||
|
|
||||||
|
$loopCnt = 0
|
||||||
|
wait_dnode2_vgroup_slave:
|
||||||
|
$loopCnt = $loopCnt + 1
|
||||||
|
if $loopCnt == 10 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show vgroups
|
||||||
|
if $rows != 1 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode2_vgroup_slave
|
||||||
|
endi
|
||||||
|
print show vgroups:
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
|
||||||
|
$dnode3Vtatus = $data4_2
|
||||||
|
$dnode2Vtatus = $data7_2
|
||||||
|
|
||||||
|
print dnode4Vtatus: $dnode4Vtatus
|
||||||
|
print dnode3Vtatus: $dnode3Vtatus
|
||||||
|
if $dnode3Vtatus != master then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode2_vgroup_slave
|
||||||
|
endi
|
||||||
|
if $dnode2Vtatus != slave then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode2_vgroup_slave
|
||||||
|
endi
|
||||||
|
|
||||||
|
# check using select
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql insert into $tb values ( now , 20000 ) ( now + 1a, 20001 ) ( now + 2a, 20002 )
|
||||||
|
$totalRows = $totalRows + 3
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
|
@ -0,0 +1,357 @@
|
||||||
|
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 numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode2 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c walLevel -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c walLevel -v 2
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode2 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode3 -c balanceInterval -v 10
|
||||||
|
system sh/cfg.sh -n dnode4 -c balanceInterval -v 10
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode2 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode3 -c numOfTotalVnodes -v 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfTotalVnodes -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c alternativeRole -v 1
|
||||||
|
system sh/cfg.sh -n dnode2 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode3 -c alternativeRole -v 2
|
||||||
|
system sh/cfg.sh -n dnode4 -c alternativeRole -v 2
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c maxtablesPerVnode -v 4
|
||||||
|
system sh/cfg.sh -n dnode2 -c maxtablesPerVnode -v 4
|
||||||
|
system sh/cfg.sh -n dnode3 -c maxtablesPerVnode -v 4
|
||||||
|
system sh/cfg.sh -n dnode4 -c maxtablesPerVnode -v 4
|
||||||
|
|
||||||
|
system sh/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode4 -c arbitrator -v $arbitrator
|
||||||
|
|
||||||
|
print ============== step0: start tarbitrator
|
||||||
|
system sh/exec_tarbitrator.sh -s start
|
||||||
|
|
||||||
|
print ============== step1: start dnode1, only deploy mnode
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
sleep 3000
|
||||||
|
sql connect
|
||||||
|
|
||||||
|
print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 3, and create table, insert data
|
||||||
|
system sh/exec.sh -n dnode2 -s start
|
||||||
|
system sh/exec.sh -n dnode3 -s start
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
sql create dnode $hostname2
|
||||||
|
sql create dnode $hostname3
|
||||||
|
sql create dnode $hostname4
|
||||||
|
sleep 3000
|
||||||
|
|
||||||
|
$totalTableNum = 10
|
||||||
|
$sleepTimer = 3000
|
||||||
|
|
||||||
|
$db = db
|
||||||
|
sql create database $db replica 3 maxTables $totalTableNum
|
||||||
|
sql use $db
|
||||||
|
|
||||||
|
# create table , insert data
|
||||||
|
$stb = stb
|
||||||
|
sql create table $stb (ts timestamp, c1 int) tags(t1 int)
|
||||||
|
$rowNum = 100
|
||||||
|
$tblNum = $totalTableNum
|
||||||
|
$totalRows = 0
|
||||||
|
$tsStart = 1420041600000
|
||||||
|
|
||||||
|
$i = 0
|
||||||
|
while $i < $tblNum
|
||||||
|
$tb = tb . $i
|
||||||
|
sql create table $tb using $stb tags( $i )
|
||||||
|
|
||||||
|
$x = 0
|
||||||
|
while $x < $rowNum
|
||||||
|
$ts = $tsStart + $x
|
||||||
|
sql insert into $tb values ( $ts + 0a , $x ) ( $ts + 1a , $x ) ( $ts + 2a , $x ) ( $ts + 3a , $x ) ( $ts + 4a , $x ) ( $ts + 5a , $x ) ( $ts + 6a , $x ) ( $ts + 7a , $x ) ( $ts + 8a , $x ) ( $ts + 9a , $x ) ( $ts + 10a , $x ) ( $ts + 11a , $x ) ( $ts + 12a , $x ) ( $ts + 13a , $x ) ( $ts + 14a , $x ) ( $ts + 15a , $x ) ( $ts + 16a , $x ) ( $ts + 17a , $x ) ( $ts + 18a , $x ) ( $ts + 19a , $x ) ( $ts + 20a , $x ) ( $ts + 21a , $x ) ( $ts + 22a , $x ) ( $ts + 23a , $x ) ( $ts + 24a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 25a , $x ) ( $ts + 26a , $x ) ( $ts + 27a , $x ) ( $ts + 28a , $x ) ( $ts + 29a , $x ) ( $ts + 30a , $x ) ( $ts + 31a , $x ) ( $ts + 32a , $x ) ( $ts + 33a , $x ) ( $ts + 34a , $x ) ( $ts + 35a , $x ) ( $ts + 36a , $x ) ( $ts + 37a , $x ) ( $ts + 38a , $x ) ( $ts + 39a , $x ) ( $ts + 40a , $x ) ( $ts + 41a , $x ) ( $ts + 42a , $x ) ( $ts + 43a , $x ) ( $ts + 44a , $x ) ( $ts + 45a , $x ) ( $ts + 46a , $x ) ( $ts + 47a , $x ) ( $ts + 48a , $x ) ( $ts + 49a , $x ) ( $ts + 50a , $x ) ( $ts + 51a , $x ) ( $ts + 52a , $x ) ( $ts + 53a , $x ) ( $ts + 54a , $x ) ( $ts + 55a , $x ) ( $ts + 56a , $x ) ( $ts + 57a , $x ) ( $ts + 58a , $x ) ( $ts + 59a , $x )
|
||||||
|
$x = $x + 60
|
||||||
|
endw
|
||||||
|
$totalRows = $totalRows + $x
|
||||||
|
print info: inserted $x rows into $tb and totalRows: $totalRows
|
||||||
|
$i = $i + 1
|
||||||
|
endw
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step3: stop dnode4, and remove its vnodeX subdirector
|
||||||
|
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||||
|
sleep $sleepTimer
|
||||||
|
|
||||||
|
$loopCnt = 0
|
||||||
|
wait_dnode4_offline_0:
|
||||||
|
$loopCnt = $loopCnt + 1
|
||||||
|
if $loopCnt == 10 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 4 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_offline_0
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
|
||||||
|
if $dnode4Status != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_offline_0
|
||||||
|
endi
|
||||||
|
|
||||||
|
$loopCnt = 0
|
||||||
|
wait_dnode4_vgroup_offline:
|
||||||
|
$loopCnt = $loopCnt + 1
|
||||||
|
if $loopCnt == 10 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show vgroups
|
||||||
|
if $rows != 1 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
print show vgroups:
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
|
||||||
|
$dnode4Vtatus = $data4_2
|
||||||
|
$dnode3Vtatus = $data7_2
|
||||||
|
|
||||||
|
if $dnode4Vtatus != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
if $dnode3Vtatus != master then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_offline
|
||||||
|
endi
|
||||||
|
|
||||||
|
system rm -rf ../../../sim/dnode4/data
|
||||||
|
#system rm -rf ../../../sim/dnode4/data/vnode/*
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step4: restart dnode4, waiting sync end
|
||||||
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
#sleep $sleepTimer
|
||||||
|
|
||||||
|
$loopCnt = 0
|
||||||
|
wait_dnode4_reready:
|
||||||
|
$loopCnt = $loopCnt + 1
|
||||||
|
if $loopCnt == 10 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 4 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_reready
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
|
||||||
|
if $dnode4Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_reready
|
||||||
|
endi
|
||||||
|
|
||||||
|
$loopCnt = 0
|
||||||
|
wait_dnode4_vgroup_slave:
|
||||||
|
$loopCnt = $loopCnt + 1
|
||||||
|
if $loopCnt == 10 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show vgroups
|
||||||
|
if $rows != 1 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_slave
|
||||||
|
endi
|
||||||
|
print show vgroups:
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
|
||||||
|
$dnode4Vtatus = $data4_2
|
||||||
|
$dnode3Vtatus = $data7_2
|
||||||
|
|
||||||
|
print dnode4Vtatus: $dnode4Vtatus
|
||||||
|
print dnode3Vtatus: $dnode3Vtatus
|
||||||
|
if $dnode4Vtatus != slave then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_slave
|
||||||
|
endi
|
||||||
|
if $dnode3Vtatus != master then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_slave
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
print ============== step5: stop dnode3/dnode2, and remove its vnode
|
||||||
|
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||||
|
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
||||||
|
sleep $sleepTimer
|
||||||
|
|
||||||
|
$loopCnt = 0
|
||||||
|
wait_dnode23_offline:
|
||||||
|
$loopCnt = $loopCnt + 1
|
||||||
|
if $loopCnt == 10 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 4 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode23_offline
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
|
||||||
|
if $dnode2Status != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode23_offline
|
||||||
|
endi
|
||||||
|
if $dnode3Status != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode23_offline
|
||||||
|
endi
|
||||||
|
if $dnode4Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode23_offline
|
||||||
|
endi
|
||||||
|
|
||||||
|
system rm -rf ../../../sim/dnode2/data
|
||||||
|
system rm -rf ../../../sim/dnode3/data
|
||||||
|
#system rm -rf ../../../sim/dnode2/data/vnode/*
|
||||||
|
#system rm -rf ../../../sim/dnode3/data/vnode/*
|
||||||
|
|
||||||
|
print ============== step6: restart dnode2/dnode3, and check rows
|
||||||
|
system sh/exec.sh -n dnode2 -s start
|
||||||
|
system sh/exec.sh -n dnode3 -s start
|
||||||
|
sleep $sleepTimer
|
||||||
|
|
||||||
|
$loopCnt = 0
|
||||||
|
wait_dnode23_reready:
|
||||||
|
$loopCnt = $loopCnt + 1
|
||||||
|
if $loopCnt == 10 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 4 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode23_reready
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
|
||||||
|
if $dnode2Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode23_reready
|
||||||
|
endi
|
||||||
|
if $dnode3Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode23_reready
|
||||||
|
endi
|
||||||
|
if $dnode4Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode23_reready
|
||||||
|
endi
|
||||||
|
|
||||||
|
$loopCnt = 0
|
||||||
|
wait_dnode4_vgroup_master:
|
||||||
|
$loopCnt = $loopCnt + 1
|
||||||
|
if $loopCnt == 10 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show vgroups
|
||||||
|
if $rows != 1 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_master
|
||||||
|
endi
|
||||||
|
print show vgroups:
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
|
||||||
|
$dnode4Vtatus = $data4_2
|
||||||
|
$dnode3Vtatus = $data7_2
|
||||||
|
|
||||||
|
print dnode4Vtatus: $dnode4Vtatus
|
||||||
|
print dnode3Vtatus: $dnode3Vtatus
|
||||||
|
if $dnode4Vtatus != master then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_master
|
||||||
|
endi
|
||||||
|
if $dnode3Vtatus != slave then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode4_vgroup_master
|
||||||
|
endi
|
||||||
|
|
||||||
|
# check using select
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql insert into $tb values ( now , 20000 ) ( now + 1a, 20001 ) ( now + 2a, 20002 )
|
||||||
|
$totalRows = $totalRows + 3
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
|
@ -7,6 +7,7 @@ system sh/deploy.sh -n dnode4 -i 4
|
||||||
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
system sh/cfg.sh -n dnode1 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
system sh/cfg.sh -n dnode2 -c numOfMnodes -v 1
|
||||||
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
system sh/cfg.sh -n dnode3 -c numOfMnodes -v 1
|
||||||
|
system sh/cfg.sh -n dnode4 -c numOfMnodes -v 1
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c walLevel -v 2
|
system sh/cfg.sh -n dnode1 -c walLevel -v 2
|
||||||
system sh/cfg.sh -n dnode2 -c walLevel -v 2
|
system sh/cfg.sh -n dnode2 -c walLevel -v 2
|
||||||
|
@ -32,11 +33,11 @@ system sh/cfg.sh -n dnode1 -c maxtablesPerVnode -v 4
|
||||||
system sh/cfg.sh -n dnode2 -c maxtablesPerVnode -v 4
|
system sh/cfg.sh -n dnode2 -c maxtablesPerVnode -v 4
|
||||||
system sh/cfg.sh -n dnode3 -c maxtablesPerVnode -v 4
|
system sh/cfg.sh -n dnode3 -c maxtablesPerVnode -v 4
|
||||||
system sh/cfg.sh -n dnode4 -c maxtablesPerVnode -v 4
|
system sh/cfg.sh -n dnode4 -c maxtablesPerVnode -v 4
|
||||||
system sh/cfg.sh -n dnode5 -c maxtablesPerVnode -v 4
|
|
||||||
|
|
||||||
system sh/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
|
system sh/cfg.sh -n dnode1 -c arbitrator -v $arbitrator
|
||||||
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
|
system sh/cfg.sh -n dnode2 -c arbitrator -v $arbitrator
|
||||||
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator
|
system sh/cfg.sh -n dnode3 -c arbitrator -v $arbitrator
|
||||||
|
system sh/cfg.sh -n dnode4 -c arbitrator -v $arbitrator
|
||||||
|
|
||||||
print ============== step0: start tarbitrator
|
print ============== step0: start tarbitrator
|
||||||
system sh/exec_tarbitrator.sh -s start
|
system sh/exec_tarbitrator.sh -s start
|
||||||
|
@ -46,7 +47,7 @@ system sh/exec.sh -n dnode1 -s start
|
||||||
sleep 3000
|
sleep 3000
|
||||||
sql connect
|
sql connect
|
||||||
|
|
||||||
print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 2, and create table, insert data
|
print ============== step2: start dnode2/dnode3/dnode4 and add into cluster , then create database with replica 3, and create table, insert data
|
||||||
system sh/exec.sh -n dnode2 -s start
|
system sh/exec.sh -n dnode2 -s start
|
||||||
system sh/exec.sh -n dnode3 -s start
|
system sh/exec.sh -n dnode3 -s start
|
||||||
system sh/exec.sh -n dnode4 -s start
|
system sh/exec.sh -n dnode4 -s start
|
||||||
|
@ -96,7 +97,14 @@ endi
|
||||||
print ============== step3: stop dnode4, and remove its vnodeX subdirector
|
print ============== step3: stop dnode4, and remove its vnodeX subdirector
|
||||||
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
system sh/exec.sh -n dnode4 -s stop -x SIGINT
|
||||||
sleep $sleepTimer
|
sleep $sleepTimer
|
||||||
|
|
||||||
|
$loopCnt = 0
|
||||||
wait_dnode4_offline_0:
|
wait_dnode4_offline_0:
|
||||||
|
$loopCnt = $loopCnt + 1
|
||||||
|
if $loopCnt == 10 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
sql show dnodes
|
sql show dnodes
|
||||||
if $rows != 4 then
|
if $rows != 4 then
|
||||||
sleep 2000
|
sleep 2000
|
||||||
|
@ -105,21 +113,25 @@ endi
|
||||||
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
#print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
$dnode1Status = $data4_1
|
||||||
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
|
||||||
#$dnode1Status = $data4_1
|
|
||||||
$dnode2Status = $data4_2
|
$dnode2Status = $data4_2
|
||||||
$dnode3Status = $data4_3
|
$dnode3Status = $data4_3
|
||||||
$dnode4Status = $data4_4
|
$dnode4Status = $data4_4
|
||||||
#$dnode5Status = $data4_5
|
|
||||||
|
|
||||||
if $dnode4Status != offline then
|
if $dnode4Status != offline then
|
||||||
sleep 2000
|
sleep 2000
|
||||||
goto wait_dnode4_offline_0
|
goto wait_dnode4_offline_0
|
||||||
endi
|
endi
|
||||||
|
|
||||||
|
|
||||||
|
$loopCnt = 0
|
||||||
wait_dnode4_vgroup_offline:
|
wait_dnode4_vgroup_offline:
|
||||||
|
$loopCnt = $loopCnt + 1
|
||||||
|
if $loopCnt == 10 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
sql show vgroups
|
sql show vgroups
|
||||||
if $rows != 1 then
|
if $rows != 1 then
|
||||||
sleep 2000
|
sleep 2000
|
||||||
|
@ -141,14 +153,19 @@ if $dnode3Vtatus != master then
|
||||||
goto wait_dnode4_vgroup_offline
|
goto wait_dnode4_vgroup_offline
|
||||||
endi
|
endi
|
||||||
|
|
||||||
|
|
||||||
system rm -rf ../../../sim/dnode4/data/vnode/*
|
system rm -rf ../../../sim/dnode4/data/vnode/*
|
||||||
sleep 1000
|
|
||||||
|
|
||||||
print ============== step4: restart dnode4, waiting sync end
|
print ============== step4: restart dnode4, waiting sync end
|
||||||
system sh/exec.sh -n dnode4 -s start
|
system sh/exec.sh -n dnode4 -s start
|
||||||
sleep $sleepTimer
|
sleep $sleepTimer
|
||||||
|
|
||||||
|
$loopCnt = 0
|
||||||
wait_dnode4_reready:
|
wait_dnode4_reready:
|
||||||
|
$loopCnt = $loopCnt + 1
|
||||||
|
if $loopCnt == 10 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
sql show dnodes
|
sql show dnodes
|
||||||
if $rows != 4 then
|
if $rows != 4 then
|
||||||
sleep 2000
|
sleep 2000
|
||||||
|
@ -157,21 +174,24 @@ endi
|
||||||
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
#print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
$dnode1Status = $data4_1
|
||||||
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
|
||||||
#$dnode1Status = $data4_1
|
|
||||||
$dnode2Status = $data4_2
|
$dnode2Status = $data4_2
|
||||||
$dnode3Status = $data4_3
|
$dnode3Status = $data4_3
|
||||||
$dnode4Status = $data4_4
|
$dnode4Status = $data4_4
|
||||||
#$dnode5Status = $data4_5
|
|
||||||
|
|
||||||
if $dnode4Status != ready then
|
if $dnode4Status != ready then
|
||||||
sleep 2000
|
sleep 2000
|
||||||
goto wait_dnode4_reready
|
goto wait_dnode4_reready
|
||||||
endi
|
endi
|
||||||
|
|
||||||
|
$loopCnt = 0
|
||||||
wait_dnode4_vgroup_slave:
|
wait_dnode4_vgroup_slave:
|
||||||
|
$loopCnt = $loopCnt + 1
|
||||||
|
if $loopCnt == 10 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
sql show vgroups
|
sql show vgroups
|
||||||
if $rows != 1 then
|
if $rows != 1 then
|
||||||
sleep 2000
|
sleep 2000
|
||||||
|
@ -195,47 +215,87 @@ if $dnode3Vtatus != master then
|
||||||
goto wait_dnode4_vgroup_slave
|
goto wait_dnode4_vgroup_slave
|
||||||
endi
|
endi
|
||||||
|
|
||||||
print ============== step5: stop dnode3/dnode2, and check rows
|
print ============== step5: stop dnode3, and remove its vnodeX subdirector
|
||||||
system sh/exec.sh -n dnode2 -s stop
|
system sh/exec.sh -n dnode3 -s stop -x SIGINT
|
||||||
system sh/exec.sh -n dnode3 -s stop
|
|
||||||
sleep $sleepTimer
|
sleep $sleepTimer
|
||||||
|
|
||||||
wait_dnode23_offline:
|
$loopCnt = 0
|
||||||
|
wait_dnode3_offline:
|
||||||
|
$loopCnt = $loopCnt + 1
|
||||||
|
if $loopCnt == 10 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
sql show dnodes
|
sql show dnodes
|
||||||
if $rows != 4 then
|
if $rows != 4 then
|
||||||
sleep 2000
|
sleep 2000
|
||||||
goto wait_dnode23_offline
|
goto wait_dnode3_offline
|
||||||
endi
|
endi
|
||||||
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
#print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5
|
$dnode1Status = $data4_1
|
||||||
#print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6
|
|
||||||
#$dnode1Status = $data4_1
|
|
||||||
$dnode2Status = $data4_2
|
$dnode2Status = $data4_2
|
||||||
$dnode3Status = $data4_3
|
$dnode3Status = $data4_3
|
||||||
$dnode4Status = $data4_4
|
$dnode4Status = $data4_4
|
||||||
#$dnode5Status = $data4_5
|
|
||||||
|
|
||||||
if $dnode2Status != offline then
|
if $dnode2Status != ready then
|
||||||
sleep 2000
|
sleep 2000
|
||||||
goto wait_dnode23_offline
|
goto wait_dnode3_offline
|
||||||
endi
|
endi
|
||||||
if $dnode3Status != offline then
|
if $dnode3Status != offline then
|
||||||
sleep 2000
|
sleep 2000
|
||||||
goto wait_dnode23_offline
|
goto wait_dnode3_offline
|
||||||
endi
|
endi
|
||||||
if $dnode4Status != ready then
|
if $dnode4Status != ready then
|
||||||
sleep 2000
|
sleep 2000
|
||||||
goto wait_dnode23_offline
|
goto wait_dnode3_offline
|
||||||
|
endi
|
||||||
|
|
||||||
|
system rm -rf ../../../sim/dnode3/data/vnode/*
|
||||||
|
|
||||||
|
print ============== step6: restart dnode3, and check rows
|
||||||
|
system sh/exec.sh -n dnode3 -s start
|
||||||
|
sleep $sleepTimer
|
||||||
|
|
||||||
|
$loopCnt = 0
|
||||||
|
wait_dnode3_reready:
|
||||||
|
$loopCnt = $loopCnt + 1
|
||||||
|
if $loopCnt == 10 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 4 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode3_reready
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
|
||||||
|
if $dnode3Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode3_reready
|
||||||
|
endi
|
||||||
|
|
||||||
|
$loopCnt = 0
|
||||||
|
wait_dnode3_vgroup_slave:
|
||||||
|
$loopCnt = $loopCnt + 1
|
||||||
|
if $loopCnt == 10 then
|
||||||
|
return -1
|
||||||
endi
|
endi
|
||||||
|
|
||||||
wait_dnode4_vgroup_master:
|
|
||||||
sql show vgroups
|
sql show vgroups
|
||||||
if $rows != 1 then
|
if $rows != 1 then
|
||||||
sleep 2000
|
sleep 2000
|
||||||
goto wait_dnode4_vgroup_master
|
goto wait_dnode3_vgroup_slave
|
||||||
endi
|
endi
|
||||||
print show vgroups:
|
print show vgroups:
|
||||||
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
|
||||||
|
@ -248,11 +308,11 @@ print dnode4Vtatus: $dnode4Vtatus
|
||||||
print dnode3Vtatus: $dnode3Vtatus
|
print dnode3Vtatus: $dnode3Vtatus
|
||||||
if $dnode4Vtatus != master then
|
if $dnode4Vtatus != master then
|
||||||
sleep 2000
|
sleep 2000
|
||||||
goto wait_dnode4_vgroup_master
|
goto wait_dnode3_vgroup_slave
|
||||||
endi
|
endi
|
||||||
if $dnode3Vtatus != offline then
|
if $dnode3Vtatus != slave then
|
||||||
sleep 2000
|
sleep 2000
|
||||||
goto wait_dnode4_vgroup_master
|
goto wait_dnode3_vgroup_slave
|
||||||
endi
|
endi
|
||||||
|
|
||||||
# check using select
|
# check using select
|
||||||
|
@ -271,3 +331,128 @@ if $data00 != $totalRows then
|
||||||
return -1
|
return -1
|
||||||
endi
|
endi
|
||||||
|
|
||||||
|
print ============== step7: stop dnode2, and remove its vnodeX subdirector
|
||||||
|
system sh/exec.sh -n dnode2 -s stop -x SIGINT
|
||||||
|
sleep $sleepTimer
|
||||||
|
|
||||||
|
$loopCnt = 0
|
||||||
|
wait_dnode2_offline:
|
||||||
|
$loopCnt = $loopCnt + 1
|
||||||
|
if $loopCnt == 10 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 4 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode2_offline
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
|
||||||
|
if $dnode2Status != offline then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode2_offline
|
||||||
|
endi
|
||||||
|
if $dnode3Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode2_offline
|
||||||
|
endi
|
||||||
|
if $dnode4Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode2_offline
|
||||||
|
endi
|
||||||
|
|
||||||
|
system rm -rf ../../../sim/dnode2/data/vnode/*
|
||||||
|
|
||||||
|
print ============== step8: restart dnode2, and check rows
|
||||||
|
system sh/exec.sh -n dnode2 -s start
|
||||||
|
sleep $sleepTimer
|
||||||
|
|
||||||
|
$loopCnt = 0
|
||||||
|
wait_dnode2_reready:
|
||||||
|
$loopCnt = $loopCnt + 1
|
||||||
|
if $loopCnt == 10 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show dnodes
|
||||||
|
if $rows != 4 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode2_reready
|
||||||
|
endi
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3
|
||||||
|
print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4
|
||||||
|
$dnode1Status = $data4_1
|
||||||
|
$dnode2Status = $data4_2
|
||||||
|
$dnode3Status = $data4_3
|
||||||
|
$dnode4Status = $data4_4
|
||||||
|
|
||||||
|
if $dnode2Status != ready then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode2_reready
|
||||||
|
endi
|
||||||
|
|
||||||
|
$loopCnt = 0
|
||||||
|
wait_dnode2_vgroup_slave:
|
||||||
|
$loopCnt = $loopCnt + 1
|
||||||
|
if $loopCnt == 10 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql show vgroups
|
||||||
|
if $rows != 1 then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode2_vgroup_slave
|
||||||
|
endi
|
||||||
|
print show vgroups:
|
||||||
|
print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1
|
||||||
|
print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2
|
||||||
|
print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3
|
||||||
|
$dnode4Vtatus = $data4_2
|
||||||
|
$dnode3Vtatus = $data7_2
|
||||||
|
|
||||||
|
print dnode4Vtatus: $dnode4Vtatus
|
||||||
|
print dnode3Vtatus: $dnode3Vtatus
|
||||||
|
if $dnode4Vtatus != master then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode2_vgroup_slave
|
||||||
|
endi
|
||||||
|
if $dnode3Vtatus != slave then
|
||||||
|
sleep 2000
|
||||||
|
goto wait_dnode2_vgroup_slave
|
||||||
|
endi
|
||||||
|
|
||||||
|
# check using select
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql insert into $tb values ( now , 20000 ) ( now + 1a, 20001 ) ( now + 2a, 20002 )
|
||||||
|
$totalRows = $totalRows + 3
|
||||||
|
|
||||||
|
sql select count(*) from $stb
|
||||||
|
print data00 $data00
|
||||||
|
if $data00 != $totalRows then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,9 @@ run unique/arbitrator/dn3_mn1_vnode_change.sim
|
||||||
run unique/arbitrator/dn3_mn1_vnode_corruptFile_offline.sim
|
run unique/arbitrator/dn3_mn1_vnode_corruptFile_offline.sim
|
||||||
run unique/arbitrator/dn3_mn1_vnode_corruptFile_online.sim
|
run unique/arbitrator/dn3_mn1_vnode_corruptFile_online.sim
|
||||||
run unique/arbitrator/dn3_mn1_vnode_noCorruptFile_offline.sim
|
run unique/arbitrator/dn3_mn1_vnode_noCorruptFile_offline.sim
|
||||||
####run unique/arbitrator/dn3_mn1_vnode_delDir.sim # unsupport
|
run unique/arbitrator/dn3_mn1_vnode_delDir.sim
|
||||||
|
run unique/arbitrator/dn3_mn1_r2_vnode_delDir.sim
|
||||||
|
run unique/arbitrator/dn3_mn1_r3_vnode_delDir.sim
|
||||||
run unique/arbitrator/dn3_mn1_vnode_nomaster.sim
|
run unique/arbitrator/dn3_mn1_vnode_nomaster.sim
|
||||||
run unique/arbitrator/dn3_mn2_killDnode.sim
|
run unique/arbitrator/dn3_mn2_killDnode.sim
|
||||||
run unique/arbitrator/insert_duplicationTs.sim
|
run unique/arbitrator/insert_duplicationTs.sim
|
||||||
|
@ -34,4 +36,4 @@ run unique/arbitrator/sync_replica2_dropTable.sim
|
||||||
run unique/arbitrator/sync_replica3_alterTable_add.sim
|
run unique/arbitrator/sync_replica3_alterTable_add.sim
|
||||||
run unique/arbitrator/sync_replica3_alterTable_drop.sim
|
run unique/arbitrator/sync_replica3_alterTable_drop.sim
|
||||||
run unique/arbitrator/sync_replica3_dropDb.sim
|
run unique/arbitrator/sync_replica3_dropDb.sim
|
||||||
run unique/arbitrator/sync_replica3_dropTable.sim
|
run unique/arbitrator/sync_replica3_dropTable.sim
|
||||||
|
|
Loading…
Reference in New Issue