redistribute_vgroup_replica3_v1_leader.sim 6.8 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
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
#system sh/exec.sh -n dnode5 -s start
sql connect
sql create user u1 pass 'taosdata'

print =============== step1 create dnode2
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:
S
Shengliang Guan 已提交
24
	$x = $x + 1
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
	sleep 1000
	if $x == 10 then
	  print ====> dnode not ready!
		return -1
	endi
sql show 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 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] != ready then
#  goto step1
#endi

print =============== step2: create db
sql create database d1 vgroups 1 replica 3

S
Shengliang Guan 已提交
58 59 60
# dnode not exist
sql_error redistribute vgroup 3 dnode 6 dnode 3 dnode 4 
# vgroup not exist
61 62 63 64 65 66 67 68 69 70 71 72 73
sql_error redistribute vgroup 3 dnode 5 dnode 3 dnode 4 
# un changed
sql_error redistribute vgroup 2 dnode 2 dnode 3 dnode 4
# no enought vnodes
sql_error redistribute vgroup 2 dnode 1 dnode 3 dnode 4 
# offline vnodes
sql_error redistribute vgroup 2 dnode 5 dnode 3 dnode 4 
# Invalid replica
sql_error redistribute vgroup 2 dnode 5 
sql_error redistribute vgroup 2 dnode 5 dnode 3 
sql_error redistribute vgroup 2 dnode 2 dnode 3 
sql_error redistribute vgroup 2 dnode 2 dnode 2 
sql_error redistribute vgroup 3 dnode 2 dnode 2 
S
Shengliang Guan 已提交
74
sql_error redistribute vgroup 2 dnode 2 dnode 2 dnode 3 
75 76 77 78

system sh/exec.sh -n dnode5 -s start
$x = 0
step2:
S
Shengliang Guan 已提交
79
	$x = $x + 1
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
	sleep 1000
	if $x == 10 then
	  print ====> dnode not ready!
		return -1
	endi
sql show 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 step2
endi
if $data(2)[4] != ready then
  goto step2
endi
if $data(3)[4] != ready then
  goto step2
endi
if $data(4)[4] != ready then
  goto step2
endi
if $data(5)[4] != ready then
  goto step2
endi

110
print =============== step31: move follower
111 112 113 114 115 116 117
$leaderExist = 0
$leaderVnode = 0
$follower1 = 0
$follower2 = 0

$x = 0
step3:
S
Shengliang Guan 已提交
118
	$x = $x + 1
119
	sleep 1000
S
Shengliang Guan 已提交
120
	if $x == 60 then
121 122 123 124
	  print ====> db not ready!
		return -1
	endi
sql show d1.vgroups
125
print ===> $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
126 127 128
if $rows != 1 then
  return -1
endi
129
if $data(2)[4] == leader then
130 131 132 133 134
  $leaderExist = 1
  $leaderVnode = 4
  $follower1 = 2
  $follower2 = 3
endi
135
if $data(2)[6] == leader then
136 137 138 139 140
  $leaderExist = 1
  $leaderVnode = 3
  $follower1 = 2
  $follower2 = 4
endi
141
if $data(2)[8] == leader then
142 143 144 145 146 147 148 149 150
  $leaderExist = 1
  $leaderVnode = 2
  $follower1 = 3
  $follower2 = 4
endi
if  $leaderExist != 1 then
  goto step3
endi

151 152 153 154
print leader $leaderVnode
print follower1 $follower1
print follower2 $follower2

S
Shengliang Guan 已提交
155 156 157 158 159 160 161 162
sql use d1
sql create table d1.st (ts timestamp, i int) tags (j int)
sql create table d1.c1 using st tags(1)
sql show d1.tables
if $rows != 1 then
  return -1
endi

S
Shengliang Guan 已提交
163 164 165 166 167 168
print =============== step32: move leader
print redistribute vgroup 2 dnode $follower1 dnode $follower2 dnode 5 
sql redistribute vgroup 2 dnode $follower1 dnode $follower2 dnode 5 
sql show d1.vgroups
print ===> $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09

S
Shengliang Guan 已提交
169 170 171 172 173
sql show d1.tables
if $rows != 1 then
  return -1
endi

S
Shengliang Guan 已提交
174
print =============== step33: move follower2
175 176
print redistribute vgroup 2 dnode $leaderVnode dnode $follower1 dnode 5 
sql redistribute vgroup 2 dnode $leaderVnode dnode $follower1 dnode 5 
S
Shengliang Guan 已提交
177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201
sql show d1.vgroups
print ===> $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09

sql show d1.tables
if $rows != 1 then
  return -1
endi

print =============== step34: move follower1
print redistribute vgroup 2 dnode $follower2 dnode 5 dnode $leaderVnode
sql redistribute vgroup 2 dnode $follower2 dnode 5 dnode $leaderVnode
sql show d1.vgroups
print ===> $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09

sql show d1.tables
if $rows != 1 then
  return -1
endi

print =============== step35: move 5
print redistribute vgroup 2 dnode $leaderVnode dnode $follower1 dnode $follower2
sql redistribute vgroup 2 dnode $leaderVnode dnode $follower1 dnode $follower2
sql show d1.vgroups
print ===> $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09

S
Shengliang Guan 已提交
202 203 204 205
sql show d1.tables
if $rows != 1 then
  return -1
endi
206

S
Shengliang Guan 已提交
207 208 209 210 211 212
print =============== step36: move follower1
print redistribute vgroup 2 dnode $follower1 dnode $follower2 dnode 5 
sql redistribute vgroup 2 dnode $follower1 dnode $follower2 dnode 5 
sql show d1.vgroups
print ===> $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09

S
Shengliang Guan 已提交
213 214 215 216
sql show d1.tables
if $rows != 1 then
  return -1
endi
217

S
Shengliang Guan 已提交
218 219 220 221 222 223
print =============== step37: move follower2
print redistribute vgroup 2 dnode $leaderVnode dnode $follower1 dnode 5 
sql redistribute vgroup 2 dnode $leaderVnode dnode $follower1 dnode 5 
sql show d1.vgroups
print ===> $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09

S
Shengliang Guan 已提交
224 225 226 227
sql show d1.tables
if $rows != 1 then
  return -1
endi
228

S
Shengliang Guan 已提交
229 230 231 232 233
print =============== step38: move leader
print redistribute vgroup 2 dnode $follower1 dnode 5 dnode $follower2
sql redistribute vgroup 2 dnode $follower1 dnode 5 dnode $follower2
sql show d1.vgroups
print ===> $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
234

S
Shengliang Guan 已提交
235 236 237 238
sql show d1.tables
if $rows != 1 then
  return -1
endi
239

S
Shengliang Guan 已提交
240 241 242 243 244
print =============== step39: move 5
print redistribute vgroup 2 dnode $leaderVnode dnode $follower2 dnode $follower1
sql redistribute vgroup 2 dnode $leaderVnode dnode $follower2 dnode $follower1
sql show d1.vgroups
print ===> $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
245

S
Shengliang Guan 已提交
246 247 248 249
sql show d1.tables
if $rows != 1 then
  return -1
endi
250 251 252 253 254 255

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
system sh/exec.sh -n dnode5 -s stop -x SIGINT