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 role -v 1 system sh/cfg.sh -n dnode2 -c role -v 2 system sh/cfg.sh -n dnode3 -c role -v 2 system sh/cfg.sh -n dnode4 -c role -v 2 $totalTableNum = 10 system sh/cfg.sh -n dnode1 -c maxtablesPerVnode -v $totalTableNum system sh/cfg.sh -n dnode2 -c maxtablesPerVnode -v $totalTableNum system sh/cfg.sh -n dnode3 -c maxtablesPerVnode -v $totalTableNum system sh/cfg.sh -n dnode4 -c maxtablesPerVnode -v $totalTableNum system sh/cfg.sh -n dnode1 -c maxVgroupsPerDb -v 1 system sh/cfg.sh -n dnode2 -c maxVgroupsPerDb -v 1 system sh/cfg.sh -n dnode3 -c maxVgroupsPerDb -v 1 system sh/cfg.sh -n dnode4 -c maxVgroupsPerDb -v 1 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 and add into cluster , then create database with replica 1, and create table, insert data system sh/exec.sh -n dnode2 -s start sql create dnode $hostname2 sleep 3000 $sleepTimer = 10000 $db = db sql create database $db replica 1 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 sleep 1000 print data00 $data00 if $data00 != $totalRows then return -1 endi print ============== step2-1: stop dnode2 for falling disc, then restart dnode2, and check rows system sh/exec.sh -n dnode2 -s stop -x SIGINT sleep $sleepTimer $loopCnt = 0 wait_dnode2_offline_0: $loopCnt = $loopCnt + 1 if $loopCnt == 10 then return -1 endi sql show dnodes if $rows != 2 then sleep 2000 goto wait_dnode2_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 #print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5 #print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6 #$dnode1Status = $data4_1 $dnode2Status = $data4_2 #$dnode3Status = $data4_3 #$dnode4Status = $data4_4 #$dnode5Status = $data4_5 if $dnode2Status != offline then sleep 2000 goto wait_dnode2_offline_0 endi 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 != 2 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 #print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5 #print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6 #$dnode1Status = $data4_1 $dnode2Status = $data4_2 #$dnode3Status = $data4_3 #$dnode4Status = $data4_4 #$dnode5Status = $data4_5 if $dnode2Status != ready then sleep 2000 goto wait_dnode2_reready endi sql select count(*) from $stb sleep 1000 print data00 $data00 if $data00 != $totalRows then return -1 endi print ============== step3: start dnode3 and add into cluster , then alter replica from 1 to 2, and waiting sync system sh/exec.sh -n dnode3 -s start sql create dnode $hostname3 sleep 3000 sql alter database $db replica 2 sleep $sleepTimer $loopCnt = 0 wait_dnode3_ready: $loopCnt = $loopCnt + 1 if $loopCnt == 10 then return -1 endi sql show dnodes if $rows != 3 then sleep 2000 goto wait_dnode3_ready 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 #print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5 #print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6 #$dnode1Status = $data4_1 $dnode2Status = $data4_2 $dnode3Status = $data4_3 #$dnode4Status = $data4_4 #$dnode5Status = $data4_5 if $dnode2Status != ready then sleep 2000 goto wait_dnode3_ready endi if $dnode3Status != ready then sleep 2000 goto wait_dnode3_ready endi sleep $sleepTimer # check using select sql select count(*) from $stb print data00 $data00 if $data00 != $totalRows then return -1 endi print ============== step4: stop dnode2 for checking if sync ok system sh/exec.sh -n dnode2 -s stop 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 #print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5 #print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6 #$dnode1Status = $data4_1 $dnode2Status = $data4_2 $dnode3Status = $data4_3 #$dnode4Status = $data4_4 #$dnode5Status = $data4_5 if $dnode2Status != offline then sleep 2000 goto wait_dnode2_offline endi if $dnode3Status != ready then sleep 2000 goto wait_dnode2_offline endi sleep $sleepTimer # waitting for move master vnode of dnode2 to dnode3 # check using select sql select count(*) from $stb print data00 $data00 if $data00 != $totalRows then return -1 endi print ============== step5: restart dnode2 system sh/exec.sh -n dnode2 -s start sleep 3000 $loopCnt = 0 wait_dnode2_ready: $loopCnt = $loopCnt + 1 if $loopCnt == 10 then return -1 endi sql show dnodes if $rows != 3 then sleep 2000 goto wait_dnode2_ready 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 #print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5 #print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6 #$dnode1Status = $data4_1 $dnode2Status = $data4_2 $dnode3Status = $data4_3 #$dnode4Status = $data4_4 #$dnode5Status = $data4_5 if $dnode2Status != ready then sleep 2000 goto wait_dnode2_ready endi sleep $sleepTimer # check using select sql select count(*) from $stb print data00 $data00 if $data00 != $totalRows then return -1 endi print ============== step6: start dnode4 and add into cluster , then alter replica from 2 to 3, and waiting sync system sh/exec.sh -n dnode4 -s start sql create dnode $hostname4 sleep 3000 sql alter database $db replica 3 sleep $sleepTimer $loopCnt = 0 wait_dnode4_ready: $loopCnt = $loopCnt + 1 if $loopCnt == 10 then return -1 endi sql show dnodes if $rows != 4 then sleep 2000 goto wait_dnode4_ready 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 #print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5 #print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6 #$dnode1Status = $data4_1 #$dnode2Status = $data4_2 $dnode3Status = $data4_3 $dnode4Status = $data4_4 #$dnode5Status = $data4_5 if $dnode4Status != ready then sleep 2000 goto wait_dnode4_ready endi sleep $sleepTimer # check using select sql select count(*) from $stb print data00 $data00 if $data00 != $totalRows then return -1 endi print ============== step7: alter replica from 3 to 2, and waiting sync sql alter database $db replica 2 sleep $sleepTimer $loopCnt = 0 wait_vgroups_replic_to_2: $loopCnt = $loopCnt + 1 if $loopCnt == 10 then return -1 endi sql show vgroups print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 $data9_1 $data10_1 print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 $data9_2 $data10_2 print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 $data9_3 $data10_3 print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4 $data5_4 $data6_4 $data7_4 $data8_4 $data9_4 $data10_4 #print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5 #print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6 $thirdDnode_2 = $data10_1 $thirdDnode_3 = $data10_2 $thirdDnode_4 = $data10_3 $thirdDnode_5 = $data10_4 if $thirdDnode_2 != null then sleep 2000 goto wait_vgroups_replic_to_2 endi if $thirdDnode_3 != null then sleep 2000 goto wait_vgroups_replic_to_2 endi if $thirdDnode_4 != null then sleep 2000 goto wait_vgroups_replic_to_2 endi if $thirdDnode_5 != null then sleep 2000 goto wait_vgroups_replic_to_2 endi sleep $sleepTimer #waiting del one replica data # check using select sql select count(*) from $stb print data00 $data00 if $data00 != $totalRows then return -1 endi print ============== step8: alter replica from 2 to 1, and waiting sync sql alter database $db replica 1 sleep $sleepTimer $loopCnt = 0 wait_vgroups_replic_to_1: $loopCnt = $loopCnt + 1 if $loopCnt == 10 then return -1 endi sql show vgroups print $data0_1 $data1_1 $data2_1 $data3_1 $data4_1 $data5_1 $data6_1 $data7_1 $data8_1 print $data0_2 $data1_2 $data2_2 $data3_2 $data4_2 $data5_2 $data6_2 $data7_2 $data8_2 print $data0_3 $data1_3 $data2_3 $data3_3 $data4_3 $data5_3 $data6_3 $data7_3 $data8_3 print $data0_4 $data1_4 $data2_4 $data3_4 $data4_4 $data5_4 $data6_4 $data7_4 $data8_4 #print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5 #print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6 $sencodDnode_2 = $data7_1 $sencodDnode_3 = $data7_2 $sencodDnode_4 = $data7_3 $sencodDnode_5 = $data7_4 if $sencodDnode_2 != null then sleep 2000 goto wait_vgroups_replic_to_1 endi if $sencodDnode_3 != null then sleep 2000 goto wait_vgroups_replic_to_1 endi if $sencodDnode_4 != null then sleep 2000 goto wait_vgroups_replic_to_1 endi if $sencodDnode_5 != null then sleep 2000 goto wait_vgroups_replic_to_1 endi $loopCnt = 0 all_dnodes_ready: $loopCnt = $loopCnt + 1 if $loopCnt == 10 then return -1 endi sql show dnodes if $rows != 4 then sleep 2000 goto all_dnodes_ready 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 #print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5 #print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6 $dnode1Status = $data4_1 $dnode2Status = $data4_2 $dnode3Status = $data4_3 $dnode4Status = $data4_4 #$dnode5Status = $data4_5 if $dnode1Status != ready then sleep 2000 goto all_dnodes_ready endi if $dnode2Status != ready then sleep 2000 goto all_dnodes_ready endi if $dnode3Status != ready then sleep 2000 goto all_dnodes_ready endi if $dnode4Status != ready then sleep 2000 goto all_dnodes_ready endi sleep $sleepTimer #waiting del one replica data # check using select sql select count(*) from $stb print data00 $data00 if $data00 != $totalRows then return -1 endi print ============== step9: drop dnode2/dnode3 sql drop dnode $hostname2 sql drop dnode $hostname3 sleep $sleepTimer $loopCnt = 0 wait_dnode23_dropped: $loopCnt = $loopCnt + 1 if $loopCnt == 10 then return -1 endi sql show dnodes if $rows != 2 then sleep 2000 goto wait_dnode23_dropped 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 #print $data0_5 $data1_5 $data2_5 $data3_5 $data4_5 #print $data0_6 $data1_6 $data2_6 $data3_6 $data4_6 $dnode1Status = $data4_1 $dnode2Status = $data4_2 $dnode3Status = $data4_3 $dnode4Status = $data4_4 if $dnode2Status != null then sleep 2000 goto wait_dnode23_dropped endi if $dnode3Status != null then sleep 2000 goto wait_dnode23_dropped endi if $dnode4Status != ready then return -1 endi sleep $sleepTimer #waiting move vnode from dnode3/dnode3 to dnode4 # check using select sql select count(*) from $stb print data00 $data00 if $data00 != $totalRows then return -1 endi