oneReplica1VgElect.sim 5.8 KB
Newer Older
P
plum-lihui 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13
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

14
sql connect
P
plum-lihui 已提交
15 16 17 18
sql create dnode $hostname port 7200
sql create dnode $hostname port 7300
sql create dnode $hostname port 7400

S
Shengliang Guan 已提交
19 20 21 22 23 24 25 26
$x = 0
step1:
	$x = $x + 1
	sleep 1000
	if $x == 10 then
	  print ====> dnode not ready!
		return -1
	endi
P
plum-lihui 已提交
27
sql show dnodes
S
Shengliang Guan 已提交
28 29 30 31 32 33 34 35 36
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
if $rows != 4 then
  return -1
endi
if $data(1)[4] != ready then
  goto step1
P
plum-lihui 已提交
37
endi
S
Shengliang Guan 已提交
38 39
if $data(2)[4] != ready then
  goto step1
P
plum-lihui 已提交
40
endi
S
Shengliang Guan 已提交
41 42
if $data(3)[4] != ready then
  goto step1
P
plum-lihui 已提交
43
endi
S
Shengliang Guan 已提交
44 45
if $data(4)[4] != ready then
  goto step1
P
plum-lihui 已提交
46 47 48 49 50 51
endi

$vgroups = 1
$replica = 1

print ============= create database
52
sql create database db1 replica $replica vgroups $vgroups
P
plum-lihui 已提交
53 54 55 56 57

$loop_cnt = 0
check_db_ready:
$loop_cnt = $loop_cnt + 1
sleep 200
58 59
if $loop_cnt == 100 then
  print ====> db1 not ready!
P
plum-lihui 已提交
60 61 62 63
	return -1
endi
sql show databases
print ===> rows: $rows
64
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 已提交
65 66 67 68
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
69
if $data(db1)[15] != ready then
P
plum-lihui 已提交
70 71 72
  goto check_db_ready
endi

73
sql use db1
P
plum-lihui 已提交
74 75 76 77 78

$loop_cnt = 0
check_vg_ready:
$loop_cnt = $loop_cnt + 1
sleep 200
79
if $loop_cnt == 300 then
P
plum-lihui 已提交
80 81 82 83 84
  print ====> vgroups not ready!
	return -1
endi
sql show vgroups
print ===> rows: $rows
85
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 已提交
86 87 88
if $rows != $vgroups then
  return -1
endi
89
if $data[0][4] == leader then
P
plum-lihui 已提交
90
   print ---- vgroup $data[0][0] leader locate on dnode $data[0][3] 
91
   goto vg_ready
92
elif $data[0][6] == leader then
P
plum-lihui 已提交
93
   print ---- vgroup $data[0][0] leader locate on dnode $data[0][5] 
94
   goto vg_ready
95
elif $data[0][8] == leader then
P
plum-lihui 已提交
96
   print ---- vgroup $data[0][0] leader locate on dnode $data[0][7] 
97 98 99
   goto vg_ready
else
   goto check_vg_ready
P
plum-lihui 已提交
100 101
endi

102 103 104
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 已提交
105 106 107 108 109 110

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

111

P
plum-lihui 已提交
112 113 114 115 116 117 118 119 120 121 122 123 124
$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
125
sleep 1000
P
plum-lihui 已提交
126
sql show tables
127
print ====> expect $totalTblNum and infinsert $rows  in fact 
P
plum-lihui 已提交
128 129 130 131
if $rows != $totalTblNum then 
  return -1
endi

132
start_switch_leader:
P
plum-lihui 已提交
133

134 135
$switch_loop_cnt = 0
switch_leader_to_offine_loop:
P
plum-lihui 已提交
136 137 138

print ====> finde vnode of leader, and stop the dnode where the vnode is located, and query stb/ntb count(*)
sql show vgroups
139
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]
140
if $data[0][4] == leader then
P
plum-lihui 已提交
141
  $dnodeId = $data[0][3]
142
elif $data[0][6] == leader then
P
plum-lihui 已提交
143
  $dnodeId = $data[0][5]
144
elif $data[0][8] == leader then
P
plum-lihui 已提交
145 146 147 148 149 150 151 152 153
  $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
154 155
#print ====> start $dnodeId
#system sh/exec.sh -n $dnodeId -s start
P
plum-lihui 已提交
156 157 158 159 160

$loop_cnt = 0
check_vg_ready_2:
$loop_cnt = $loop_cnt + 1
sleep 200
161
if $loop_cnt == 300 then
P
plum-lihui 已提交
162 163 164 165 166
  print ====> vgroups switch fail!!!
	return -1
endi
sql show vgroups
print ===> rows: $rows
167
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 已提交
168 169 170 171
if $rows != $vgroups then
  return -1
endi

172
if $data[0][4] == offline then
173 174
  print ---- vgroup $dnodeId leader switch to offline
  goto vg_offline_1
175
elif $data[0][6] == offline then
176 177
  print ---- vgroup $dnodeId leader switch to offline
  goto vg_offline_1
178
elif $data[0][8] == offline then
179 180 181 182 183
  print ---- vgroup $dnodeId leader switch to offline
  goto vg_offline_1
else 
  goto check_vg_ready_2
endi   
P
plum-lihui 已提交
184

185
vg_offline_1:
P
plum-lihui 已提交
186

187 188
print ====> start $dnodeId
system sh/exec.sh -n $dnodeId -s start
P
plum-lihui 已提交
189

190 191 192
$loop_cnt1= 0
check_vg1_ready:
$loop_cnt1 = $loop_cnt1 + 1
P
plum-lihui 已提交
193
sleep 200
194 195
if $loop_cnt1 == 300 then
  print ====> vgroups not ready!
P
plum-lihui 已提交
196 197 198 199
	return -1
endi
sql show vgroups
print ===> rows: $rows
200
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 已提交
201 202 203
if $rows != $vgroups then
  return -1
endi
204
if $data[0][4] == leader then
205 206
   print ---- vgroup $data[0][0] leader locate on dnode $data[0][3] 
   goto countinu_loop
207
elif $data[0][6] == leader then
208 209
   print ---- vgroup $data[0][0] leader locate on dnode $data[0][5] 
   goto countinu_loop
210
elif $data[0][8] == leader then
211 212 213 214
   print ---- vgroup $data[0][0] leader locate on dnode $data[0][7] 
   goto countinu_loop
else
   goto check_vg1_ready
P
plum-lihui 已提交
215 216
endi

217
countinu_loop:
P
plum-lihui 已提交
218

219 220 221 222
$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 已提交
223 224
endi

225
stop_leader_to_offine_loop:
P
plum-lihui 已提交
226 227 228 229 230

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