redistribute_vgroup_replica3_v1_leader.sim 4.9 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:
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 58 59 60 61 62 63 64 65 66 67 68 69 70 71
	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

# Invalid vgroup
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 
72
sql_error redistribute vgroup 2 dnode 2 dnode 2 dnode 3 
73 74 75 76

system sh/exec.sh -n dnode5 -s start
$x = 0
step2:
77
	$x = $x + 1
78 79 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
	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

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

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

149 150 151 152
print leader $leaderVnode
print follower1 $follower1
print follower2 $follower2

153 154 155 156 157 158 159 160
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

161 162 163
print =============== step32: move follower2
print redistribute vgroup 2 dnode $leaderVnode dnode $follower2 dnode 5 
sql redistribute vgroup 2 dnode $leaderVnode dnode $follower2 dnode 5 
164 165 166 167 168
sql show d1.tables
if $rows != 1 then
  return -1
endi

169 170 171
print =============== step33: move follower1
print redistribute vgroup 2 dnode $leaderVnode dnode $follower1 dnode 5 
sql redistribute vgroup 2 dnode $leaderVnode dnode $follower1 dnode 5 
172 173 174 175
sql show d1.tables
if $rows != 1 then
  return -1
endi
176 177 178 179

print =============== step34: move follower2
print redistribute vgroup 2 dnode $leaderVnode dnode 5 dnode $follower2
sql redistribute vgroup 2 dnode $leaderVnode dnode 5 dnode $follower2
180 181 182 183
sql show d1.tables
if $rows != 1 then
  return -1
endi
184 185 186 187

print =============== step35: move follower1
print redistribute vgroup 2 dnode $leaderVnode dnode 5 dnode $follower1
sql redistribute vgroup 2 dnode $leaderVnode dnode 5 dnode $follower1
188 189 190 191
sql show d1.tables
if $rows != 1 then
  return -1
endi
192 193 194 195 196 197 198 199 200 201 202

print =============== step4: move leader




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