oneReplica1VgElect.sim 6.7 KB
Newer Older
P
plum-lihui 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
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

34
sql connect
P
plum-lihui 已提交
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
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

$vgroups = 1
$replica = 1

print ============= create database
69
sql create database db1 replica $replica vgroups $vgroups
P
plum-lihui 已提交
70 71 72 73 74

$loop_cnt = 0
check_db_ready:
$loop_cnt = $loop_cnt + 1
sleep 200
75 76
if $loop_cnt == 100 then
  print ====> db1 not ready!
P
plum-lihui 已提交
77 78 79 80
	return -1
endi
sql show databases
print ===> rows: $rows
81
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]
P
plum-lihui 已提交
82 83 84 85
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
86
if $data(db1)[19] != ready then
P
plum-lihui 已提交
87 88 89
  goto check_db_ready
endi

90
sql use db1
P
plum-lihui 已提交
91 92 93 94 95

$loop_cnt = 0
check_vg_ready:
$loop_cnt = $loop_cnt + 1
sleep 200
96
if $loop_cnt == 300 then
P
plum-lihui 已提交
97 98 99 100 101
  print ====> vgroups not ready!
	return -1
endi
sql show vgroups
print ===> rows: $rows
102
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]
P
plum-lihui 已提交
103 104 105 106 107
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] 
108 109
   goto vg_ready
elif $data[0][6] == LEADER then
P
plum-lihui 已提交
110
   print ---- vgroup $data[0][0] leader locate on dnode $data[0][5] 
111 112
   goto vg_ready
elif $data[0][8] == LEADER then
P
plum-lihui 已提交
113
   print ---- vgroup $data[0][0] leader locate on dnode $data[0][7] 
114 115 116
   goto vg_ready
else
   goto check_vg_ready
P
plum-lihui 已提交
117 118
endi

119 120 121
vg_ready:
print ====>  create stable/child table
sql create table stb (ts timestamp, c1 int, c2 float, c3 binary(10)) tags (t1 int)
P
plum-lihui 已提交
122 123 124 125 126 127

sql show stables
if $rows != 1 then 
  return -1
endi

128

P
plum-lihui 已提交
129 130 131 132 133 134 135 136 137 138 139 140 141
$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
142
sleep 1000
P
plum-lihui 已提交
143
sql show tables
144
print ====> expect $totalTblNum and infinsert $rows  in fact 
P
plum-lihui 已提交
145 146 147 148
if $rows != $totalTblNum then 
  return -1
endi

149
start_switch_leader:
P
plum-lihui 已提交
150

151 152
$switch_loop_cnt = 0
switch_leader_to_offine_loop:
P
plum-lihui 已提交
153 154 155

print ====> finde vnode of leader, and stop the dnode where the vnode is located, and query stb/ntb count(*)
sql show vgroups
156
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]
P
plum-lihui 已提交
157 158 159 160 161 162 163 164 165 166 167 168 169 170
if $data[0][4] == LEADER then
  $dnodeId = $data[0][3]
elif $data[0][6] == LEADER then
  $dnodeId = $data[0][5]
elif $data[0][8] == LEADER then
  $dnodeId = $data[0][7]
else 
   print ====> no leader vnode!!!
  return -1 
endi

$dnodeId = dnode . $dnodeId
print ====> stop $dnodeId
system sh/exec.sh -n $dnodeId -s stop -x SIGINT
171 172
#print ====> start $dnodeId
#system sh/exec.sh -n $dnodeId -s start
P
plum-lihui 已提交
173 174 175 176 177

$loop_cnt = 0
check_vg_ready_2:
$loop_cnt = $loop_cnt + 1
sleep 200
178
if $loop_cnt == 300 then
P
plum-lihui 已提交
179 180 181 182 183
  print ====> vgroups switch fail!!!
	return -1
endi
sql show vgroups
print ===> rows: $rows
184
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]
P
plum-lihui 已提交
185 186 187 188
if $rows != $vgroups then
  return -1
endi

189 190 191 192 193 194 195 196 197 198 199 200
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   
P
plum-lihui 已提交
201

202
vg_offline_1:
P
plum-lihui 已提交
203

204 205
print ====> start $dnodeId
system sh/exec.sh -n $dnodeId -s start
P
plum-lihui 已提交
206

207 208 209
$loop_cnt1= 0
check_vg1_ready:
$loop_cnt1 = $loop_cnt1 + 1
P
plum-lihui 已提交
210
sleep 200
211 212
if $loop_cnt1 == 300 then
  print ====> vgroups not ready!
P
plum-lihui 已提交
213 214 215 216
	return -1
endi
sql show vgroups
print ===> rows: $rows
217
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]
P
plum-lihui 已提交
218 219 220 221
if $rows != $vgroups then
  return -1
endi
if $data[0][4] == LEADER then
222 223 224 225 226 227 228 229 230 231
   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
P
plum-lihui 已提交
232 233
endi

234
countinu_loop:
P
plum-lihui 已提交
235

236 237 238 239
$switch_loop_cnt = $switch_loop_cnt + 1
print  $switch_loop_cnt
if $switch_loop_cnt < 4 then
  goto switch_leader_to_offine_loop
P
plum-lihui 已提交
240 241
endi

242
stop_leader_to_offine_loop:
P
plum-lihui 已提交
243 244 245 246 247

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