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/deploy.sh -n dnode5 -i 5 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 sql connect print =============== step1 create dnode2 dnode3 dnode4 dnode 5 sql create dnode $hostname port 7200 sql create dnode $hostname port 7300 sql create dnode $hostname port 7400 sql create dnode $hostname port 7500 $x = 0 step1: $ = $x + 1 sleep 1000 if $x == 10 then print ====> dnode not online! return -1 endi sql select * from information_schema.ins_dnodes print ===> $data00 $data01 $data02 $data03 $data04 $data05 print ===> $data10 $data11 $data12 $data13 $data14 $data15 if $rows != 5 then return -1 endi if $data(1)[4] != ready then goto step1 endi if $data(2)[4] != ready then goto step1 endi if $data(3)[4] != ready then goto step1 endi if $data(4)[4] != ready then goto step1 endi if $data(5)[4] != offline then goto step1 endi print =============== step2 create database sql create database d1 vgroups 1 replica 3 sql use d1 sql create table d1.st0 (ts timestamp, i int) tags (j int) sql create table d1.c0 using st0 tags(0) sql create table d1.c1 using st0 tags(1) sql create table d1.c2 using st0 tags(2) sql create table d1.c3 using st0 tags(3) sql create table d1.c4 using st0 tags(4) sql create table d1.c5 using st0 tags(5) sql create table d1.c6 using st0 tags(6) sql create table d1.c7 using st0 tags(7) sql create table d1.c8 using st0 tags(8) sql create table d1.c9 using st0 tags(9) sql show d1.tables if $rows != 10 then return -1 endi print d1.rows ===> $rows sql select * from information_schema.ins_tables where stable_name = 'st0' and db_name = 'd1' if $rows != 10 then return -1 endi sql create database d2 vgroups 3 replica 1 sql use d2 sql create table d2.st1 (ts timestamp, i int) tags (j int) sql create table d2.c10 using st1 tags(0) sql create table d2.c11 using st1 tags(1) sql create table d2.c12 using st1 tags(2) sql create table d2.c13 using st1 tags(3) sql create table d2.c14 using st1 tags(4) sql create table d2.c15 using st1 tags(5) sql create table d2.c16 using st1 tags(6) sql create table d2.c17 using st1 tags(7) sql create table d2.c18 using st1 tags(8) sql create table d2.c19 using st1 tags(9) sql create table d2.c190 using st1 tags(9) sql show d2.tables if $rows != 11 then return -1 endi sql reset query cache sql select * from information_schema.ins_tables where stable_name = 'st1' and db_name = 'd2' print d2.st1.tables ===> $rows if $rows != 11 then return -1 endi sql create table d2.st2 (ts timestamp, i int) tags (j int) sql create table d2.c20 using st2 tags(0) sql create table d2.c21 using st2 tags(1) sql create table d2.c22 using st2 tags(2) sql create table d2.c23 using st2 tags(3) sql create table d2.c24 using st2 tags(4) sql create table d2.c25 using st2 tags(5) sql create table d2.c26 using st2 tags(6) sql create table d2.c27 using st2 tags(7) sql create table d2.c28 using st2 tags(8) sql create table d2.c29 using st2 tags(9) sql create table d2.c290 using st2 tags(9) sql create table d2.c291 using st2 tags(9) sql show d2.tables if $rows != 23 then return -1 endi sql reset query cache sql select * from information_schema.ins_tables where stable_name = 'st2' and db_name = 'd2' print d2.st2.tables ===> $rows if $rows != 12 then return -1 endi print =============== step3: create qnode snode on dnode 2 sql create qnode on dnode 2 sql create snode on dnode 2 sql select * from information_schema.ins_qnodes if $rows != 1 then return -1 endi sql show snodes if $rows != 1 then return -1 endi print =============== step4: create mnode on dnode 2 sql create mnode on dnode 3 sql create mnode on dnode 2 $x = 0 step4: $x = $x + 1 sleep 1000 if $x == 10 then return -1 endi sql select * from information_schema.ins_mnodes -x step4 print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] print $data[2][0] $data[2][1] $data[2][2] $data[2][3] $data[1][4] #if $data(1)[2] != leader then # goto step4 #endi if $data(2)[2] != follower then goto step4 endi #if $data(3)[2] != follower then # goto step4 #endi print =============== step5: create dnode 5 system sh/exec.sh -n dnode2 -s stop -x SIGINT system sh/exec.sh -n dnode5 -s start $x = 0 step5: $ = $x + 1 sleep 1000 if $x == 10 then print ====> dnode not online! return -1 endi sql select * from information_schema.ins_dnodes print ===> $data00 $data01 $data02 $data03 $data04 $data05 print ===> $data10 $data11 $data12 $data13 $data14 $data15 print ===> $data20 $data21 $data22 $data23 $data24 $data25 print ===> $data30 $data31 $data32 $data33 $data34 $data35 print ===> $data40 $data41 $data42 $data43 $data44 $data45 if $rows != 5 then return -1 endi if $data(1)[4] != ready then goto step5 endi if $data(2)[4] != offline then goto step5 endi if $data(3)[4] != ready then goto step5 endi if $data(4)[4] != ready then goto step5 endi if $data(5)[4] != ready then goto step5 endi print =============== step5: drop dnode 2 sql_error drop dnode 2 sql drop dnode 2 force print select * from information_schema.ins_dnodes; sql select * from information_schema.ins_dnodes; print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] if $rows != 4 then return -1 endi print select * from information_schema.ins_mnodes; sql select * from information_schema.ins_mnodes print $data[0][0] $data[0][1] $data[0][2] $data[0][3] $data[0][4] print $data[1][0] $data[1][1] $data[1][2] $data[1][3] $data[1][4] if $rows != 2 then return -1 endi if $data(1)[2] != leader then return -1 endi sql select * from information_schema.ins_qnodes if $rows != 0 then return -1 endi sql show snodes if $rows != 0 then return -1 endi print =============== step6: check d1 sql reset query cache sql show d1.tables if $rows != 10 then return -1 endi print =============== step7: check d2 sql show d2.tables print ===> d2.tables: $rows remained if $rows > 23 then return -1 endi if $rows <= 0 then return -1 endi print =============== step8: drop stable and recreate it sql select * from information_schema.ins_tables where stable_name = 'st2' and db_name = 'd2' print d2.st2.tables ==> $rows sql drop table d2.st2; sql create table d2.st2 (ts timestamp, i int) tags (j int) sql create table d2.c20 using st2 tags(0) sql create table d2.c21 using st2 tags(1) sql create table d2.c22 using st2 tags(2) sql create table d2.c23 using st2 tags(3) sql create table d2.c24 using st2 tags(4) sql create table d2.c25 using st2 tags(5) sql create table d2.c26 using st2 tags(6) sql create table d2.c27 using st2 tags(7) sql create table d2.c28 using st2 tags(8) sql create table d2.c29 using st2 tags(9) sql create table d2.c30 using st2 tags(9) sql create table d2.c31 using st2 tags(9) sql create table d2.c32 using st2 tags(9) sql select * from information_schema.ins_tables where stable_name = 'st2' and db_name = 'd2' print d2.st2.tables ==> $rows if $rows != 13 then return -1 endi print =============== step9: alter stable return print By modifying the stable, the missing stable information can be reconstructed in the vnode. print However, currently, getting the stable meta from the vnode, and return the table not exist print To handle this, we need to modify the way stable-meta is fetched sql select * from information_schema.ins_tables where stable_name = 'st1' and db_name = 'd2' print d2.st1.tables ==> $rows $remains = $rows sql alter table d2.st1 add column b smallint return sql create table d2.c30 using st tags(0) sql create table d2.c31 using st tags(1) sql create table d2.c32 using st tags(2) sql create table d2.c33 using st tags(3) sql create table d2.c34 using st tags(4) sql create table d2.c35 using st tags(5) sql create table d2.c36 using st tags(6) sql create table d2.c37 using st tags(7) sql create table d2.c38 using st tags(8) sql create table d2.c39 using st tags(9) sql show d2.tables print d2.st1.tables ==> $rows $total = $remains + 10 if $rows != $total then return -1 endi system sh/exec.sh -n dnode1 -s stop -x SIGINT system sh/exec.sh -n dnode2 -s stop -x SIGINT