github.com/pingcap/tiflow@v0.0.0-20240520035814-5bf52d54e205/dm/tests/tiup/lib.sh (about) 1 #!/bin/bash 2 3 set -eux 4 5 export TEST_DIR=/tmp/dm_test 6 export TEST_NAME="upgrade-via-tiup" 7 8 WORK_DIR=$TEST_DIR/$TEST_NAME 9 mkdir -p $WORK_DIR 10 11 TASK_NAME="upgrade_via_tiup" 12 TASK_PESS_NAME="upgrade_via_tiup_pessimistic" 13 TASK_OPTI_NAME="upgrade_via_tiup_optimistic" 14 15 DB1=Sharding1 16 DB2=sharding2 17 # can't run upgrade test with upper case schema name in optimist mode 18 DB3=opt_sharding1 19 DB4=opt_sharding2 20 DB5=pes_Sharding1 21 DB6=pes_sharding2 22 TBL1=T1 23 TBL2=t2 24 TBL3=T3 25 TBL4=t4 26 TBL5=t5 27 TBL_LOWER1=t1 28 TBL_LOWER3=t3 29 PRE_VER=${PRE_VER:-v1.0.7} 30 31 function exec_sql() { 32 echo $3 | mysql -h $1 -P $2 33 } 34 35 function run_sql_tidb_with_retry() { 36 rc=0 37 for ((k = 1; k < 11; k++)); do 38 # in retry scenario sometimes run_sql_tidb will fail because "table not exist", we should keep retrying so turn 39 # off the error option temporarily. 40 set +e 41 echo $1 | mysql -h tidb -P 4000 >"/tmp/res.txt" 42 set -e 43 if grep -Fq "$2" "/tmp/res.txt"; then 44 rc=1 45 break 46 fi 47 echo "run tidb sql failed $k-th time, retry later" 48 sleep 2 49 done 50 if [[ $rc = 0 ]]; then 51 echo "TEST FAILED: OUTPUT DOES NOT CONTAIN '$2'" 52 echo "____________________________________" 53 cat "/tmp/res.txt" 54 echo "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" 55 exit 1 56 fi 57 } 58 59 function install_sync_diff() { 60 curl https://download.pingcap.org/tidb-enterprise-tools-nightly-linux-amd64.tar.gz | tar xz 61 mkdir -p bin 62 mv tidb-enterprise-tools-nightly-linux-amd64/bin/sync_diff_inspector bin/ 63 } 64 65 function exec_full_stage() { 66 # drop previous data 67 exec_sql mysql1 3306 "DROP DATABASE IF EXISTS $DB1;" 68 exec_sql mariadb2 3306 "DROP DATABASE IF EXISTS $DB2;" 69 exec_sql mysql1 3306 "DROP DATABASE IF EXISTS $DB3;" 70 exec_sql mariadb2 3306 "DROP DATABASE IF EXISTS $DB4;" 71 exec_sql mysql1 3306 "DROP DATABASE IF EXISTS $DB5;" 72 exec_sql mariadb2 3306 "DROP DATABASE IF EXISTS $DB6;" 73 exec_sql tidb 4000 "DROP DATABASE IF EXISTS db_target;" 74 exec_sql tidb 4000 "DROP DATABASE IF EXISTS opt_db_target;" 75 exec_sql tidb 4000 "DROP DATABASE IF EXISTS pes_db_target;" 76 exec_sql tidb 4000 "DROP DATABASE IF EXISTS dm_meta;" 77 78 # # prepare full data 79 exec_sql mysql1 3306 "CREATE DATABASE $DB1;" 80 exec_sql mariadb2 3306 "CREATE DATABASE $DB2;" 81 exec_sql mysql1 3306 "CREATE TABLE $DB1.$TBL1 (c1 INT PRIMARY KEY, c2 TEXT);" 82 exec_sql mysql1 3306 "CREATE TABLE $DB1.$TBL2 (c1 INT PRIMARY KEY, c2 TEXT);" 83 exec_sql mariadb2 3306 "CREATE TABLE $DB2.$TBL2 (c1 INT PRIMARY KEY, c2 TEXT);" 84 exec_sql mariadb2 3306 "CREATE TABLE $DB2.$TBL3 (c1 INT PRIMARY KEY, c2 TEXT);" 85 86 exec_sql mysql1 3306 "INSERT INTO $DB1.$TBL1 (c1, c2) VALUES (1, '1');" 87 exec_sql mysql1 3306 "INSERT INTO $DB1.$TBL2 (c1, c2) VALUES (2, '2');" 88 exec_sql mariadb2 3306 "INSERT INTO $DB2.$TBL2 (c1, c2) VALUES (11, '11');" 89 exec_sql mariadb2 3306 "INSERT INTO $DB2.$TBL3 (c1, c2) VALUES (12, '12');" 90 91 # prepare optimsitic full data 92 exec_sql mysql1 3306 "CREATE DATABASE $DB3 CHARACTER SET UTF8MB4 COLLATE utf8mb4_bin;" 93 exec_sql mariadb2 3306 "CREATE DATABASE $DB4 CHARACTER SET UTF8MB4 COLLATE utf8mb4_bin;" 94 exec_sql mysql1 3306 "CREATE TABLE $DB3.$TBL_LOWER1 (c1 INT PRIMARY KEY, c2 TEXT);" 95 exec_sql mysql1 3306 "CREATE TABLE $DB3.$TBL2 (c1 INT PRIMARY KEY, c2 TEXT);" 96 exec_sql mariadb2 3306 "CREATE TABLE $DB4.$TBL2 (c1 INT PRIMARY KEY, c2 TEXT);" 97 exec_sql mariadb2 3306 "CREATE TABLE $DB4.$TBL_LOWER3 (c1 INT PRIMARY KEY, c2 TEXT);" 98 99 exec_sql mysql1 3306 "INSERT INTO $DB3.$TBL_LOWER1 (c1, c2) VALUES (1, '1');" 100 exec_sql mysql1 3306 "INSERT INTO $DB3.$TBL2 (c1, c2) VALUES (2, '2');" 101 exec_sql mariadb2 3306 "INSERT INTO $DB4.$TBL2 (c1, c2) VALUES (11, '11');" 102 exec_sql mariadb2 3306 "INSERT INTO $DB4.$TBL_LOWER3 (c1, c2) VALUES (12, '12');" 103 104 # prepare pessimistic full data 105 exec_sql mysql1 3306 "CREATE DATABASE $DB5;" 106 exec_sql mariadb2 3306 "CREATE DATABASE $DB6;" 107 exec_sql mysql1 3306 "CREATE TABLE $DB5.$TBL1 (c1 INT PRIMARY KEY, c2 TEXT);" 108 exec_sql mysql1 3306 "CREATE TABLE $DB5.$TBL2 (c1 INT PRIMARY KEY, c2 TEXT);" 109 exec_sql mariadb2 3306 "CREATE TABLE $DB6.$TBL2 (c1 INT PRIMARY KEY, c2 TEXT);" 110 exec_sql mariadb2 3306 "CREATE TABLE $DB6.$TBL3 (c1 INT PRIMARY KEY, c2 TEXT);" 111 112 exec_sql mysql1 3306 "INSERT INTO $DB5.$TBL1 (c1, c2) VALUES (1, '1');" 113 exec_sql mysql1 3306 "INSERT INTO $DB5.$TBL2 (c1, c2) VALUES (2, '2');" 114 exec_sql mariadb2 3306 "INSERT INTO $DB6.$TBL2 (c1, c2) VALUES (11, '11');" 115 exec_sql mariadb2 3306 "INSERT INTO $DB6.$TBL3 (c1, c2) VALUES (12, '12');" 116 } 117 118 function exec_incremental_stage1() { 119 # prepare incremental data 120 exec_sql mysql1 3306 "INSERT INTO $DB1.$TBL1 (c1, c2) VALUES (101, '101');" 121 exec_sql mysql1 3306 "INSERT INTO $DB1.$TBL2 (c1, c2) VALUES (102, '102');" 122 exec_sql mariadb2 3306 "INSERT INTO $DB2.$TBL2 (c1, c2) VALUES (111, '111');" 123 exec_sql mariadb2 3306 "INSERT INTO $DB2.$TBL3 (c1, c2) VALUES (112, '112');" 124 125 # prepare optimistic incremental data 126 exec_sql mysql1 3306 "INSERT INTO $DB3.$TBL_LOWER1 (c1, c2) VALUES (101, '101');" 127 exec_sql mysql1 3306 "INSERT INTO $DB3.$TBL2 (c1, c2) VALUES (102, '102');" 128 # v2.0.0 has bug with create/drop table 129 if [[ "$PRE_VER" != "v2.0.0" ]]; then 130 exec_sql mysql1 3306 "CREATE TABLE $DB3.$TBL5(c1 INT PRIMARY KEY, c2 TEXT);" 131 exec_sql mysql1 3306 "INSERT INTO $DB3.$TBL5 (c1, c2) VALUES (1000, 1000);" 132 fi 133 exec_sql mariadb2 3306 "INSERT INTO $DB4.$TBL2 (c1, c2) VALUES (111, '111');" 134 exec_sql mariadb2 3306 "INSERT INTO $DB4.$TBL_LOWER3 (c1, c2) VALUES (112, '112');" 135 136 if [[ "$PRE_VER" != "v2.0.0" ]]; then 137 exec_sql mariadb2 3306 "CREATE TABLE $DB4.$TBL4(c1 INT PRIMARY KEY, c2 TEXT);" 138 exec_sql mariadb2 3306 "INSERT INTO $DB4.$TBL4 (c1, c2) VALUES (115, '115');" 139 exec_sql mysql1 3306 "DROP TABLE $DB3.$TBL5;" 140 fi 141 142 # optimistic shard ddls 143 exec_sql mysql1 3306 "ALTER TABLE $DB3.$TBL_LOWER1 ADD COLUMN c3 INT;" 144 exec_sql mysql1 3306 "ALTER TABLE $DB3.$TBL2 ADD COLUMN c4 INT;" 145 exec_sql mariadb2 3306 "ALTER TABLE $DB4.$TBL2 ADD COLUMN c3 INT;" 146 exec_sql mariadb2 3306 "ALTER TABLE $DB4.$TBL_LOWER3 ADD COLUMN c4 INT;" 147 148 # prepare optimistic incremental data 149 exec_sql mysql1 3306 "INSERT INTO $DB3.$TBL_LOWER1 (c1, c2, c3) VALUES (103, '103', 103);" 150 exec_sql mysql1 3306 "INSERT INTO $DB3.$TBL2 (c1, c2, c4) VALUES (104, '104', 104);" 151 exec_sql mariadb2 3306 "INSERT INTO $DB4.$TBL2 (c1, c2, c3) VALUES (113, '113', 113);" 152 exec_sql mariadb2 3306 "INSERT INTO $DB4.$TBL_LOWER3 (c1, c2, c4) VALUES (114, '114', 114);" 153 if [[ "$PRE_VER" != "v2.0.0" ]]; then 154 exec_sql mariadb2 3306 "INSERT INTO $DB4.$TBL4 (c1, c2) VALUES (116, '116');" 155 fi 156 157 # prepare pessimistic incremental data 158 exec_sql mysql1 3306 "INSERT INTO $DB5.$TBL1 (c1, c2) VALUES (101, '101');" 159 exec_sql mysql1 3306 "INSERT INTO $DB5.$TBL2 (c1, c2) VALUES (102, '102');" 160 exec_sql mariadb2 3306 "INSERT INTO $DB6.$TBL2 (c1, c2) VALUES (111, '111');" 161 exec_sql mariadb2 3306 "INSERT INTO $DB6.$TBL3 (c1, c2) VALUES (112, '112');" 162 163 # pessimistic shard ddls 164 exec_sql mysql1 3306 "ALTER TABLE $DB5.$TBL1 ADD COLUMN c3 INT;" 165 exec_sql mysql1 3306 "ALTER TABLE $DB5.$TBL2 ADD COLUMN c3 INT;" 166 167 # prepare pessimistic incremental data 168 exec_sql mysql1 3306 "INSERT INTO $DB5.$TBL1 (c1, c2, c3) VALUES (103, '103', 103);" 169 exec_sql mysql1 3306 "INSERT INTO $DB5.$TBL2 (c1, c2, c3) VALUES (104, '104', 104);" 170 exec_sql mariadb2 3306 "INSERT INTO $DB6.$TBL2 (c1, c2) VALUES (113, '113');" 171 exec_sql mariadb2 3306 "INSERT INTO $DB6.$TBL3 (c1, c2) VALUES (114, '114');" 172 } 173 174 function exec_incremental_stage2() { 175 # prepare incremental data 176 exec_sql mysql1 3306 "INSERT INTO $DB1.$TBL1 (c1, c2) VALUES (201, '201');" 177 exec_sql mysql1 3306 "INSERT INTO $DB1.$TBL2 (c1, c2) VALUES (202, '202');" 178 exec_sql mariadb2 3306 "INSERT INTO $DB2.$TBL2 (c1, c2) VALUES (211, '211');" 179 exec_sql mariadb2 3306 "INSERT INTO $DB2.$TBL3 (c1, c2) VALUES (212, '212');" 180 181 # prepare optimistic incremental data 182 exec_sql mysql1 3306 "INSERT INTO $DB3.$TBL_LOWER1 (c1, c2, c3) VALUES (201, '201', 201);" 183 exec_sql mysql1 3306 "INSERT INTO $DB3.$TBL2 (c1, c2, c4) VALUES (202, '202', 202);" 184 exec_sql mariadb2 3306 "INSERT INTO $DB4.$TBL2 (c1, c2, c3) VALUES (211, '211', 211);" 185 exec_sql mariadb2 3306 "INSERT INTO $DB4.$TBL_LOWER3 (c1, c2, c4) VALUES (212, '212', 212);" 186 187 # optimistic shard ddls 188 exec_sql mysql1 3306 "ALTER TABLE $DB3.$TBL_LOWER1 ADD COLUMN c4 INT;" 189 exec_sql mysql1 3306 "ALTER TABLE $DB3.$TBL2 ADD COLUMN c3 INT AFTER c2;" 190 exec_sql mariadb2 3306 "ALTER TABLE $DB4.$TBL2 ADD COLUMN c4 INT;" 191 exec_sql mariadb2 3306 "ALTER TABLE $DB4.$TBL_LOWER3 ADD COLUMN c3 INT AFTER c2;" 192 193 if [[ "$PRE_VER" != "v2.0.0" ]]; then 194 exec_sql mariadb2 3306 "ALTER TABLE $DB4.$TBL4 ADD COLUMN c4 INT;" 195 exec_sql mariadb2 3306 "ALTER TABLE $DB4.$TBL4 ADD COLUMN c3 INT AFTER c2;" 196 fi 197 198 # prepare optimistic incremental data 199 exec_sql mysql1 3306 "INSERT INTO $DB3.$TBL_LOWER1 (c1, c2, c3, c4) VALUES (203, '203', 203, 203);" 200 exec_sql mysql1 3306 "INSERT INTO $DB3.$TBL2 (c1, c2, c3, c4) VALUES (204, '204', 204, 204);" 201 exec_sql mariadb2 3306 "INSERT INTO $DB4.$TBL2 (c1, c2, c3, c4) VALUES (213, '213', 213, 213);" 202 exec_sql mariadb2 3306 "INSERT INTO $DB4.$TBL_LOWER3 (c1, c2, c3, c4) VALUES (214, '214', 214, 214);" 203 if [[ "$PRE_VER" != "v2.0.0" ]]; then 204 exec_sql mariadb2 3306 "INSERT INTO $DB4.$TBL4 (c1, c2, c3, c4) VALUES (215, '215', 215, 215);" 205 fi 206 207 # prepare pessimistic incremental data 208 exec_sql mysql1 3306 "INSERT INTO $DB5.$TBL1 (c1, c2, c3) VALUES (201, '201', 201);" 209 exec_sql mysql1 3306 "INSERT INTO $DB5.$TBL2 (c1, c2, c3) VALUES (202, '202', 202);" 210 exec_sql mariadb2 3306 "INSERT INTO $DB6.$TBL2 (c1, c2) VALUES (211, '211');" 211 exec_sql mariadb2 3306 "INSERT INTO $DB6.$TBL3 (c1, c2) VALUES (212, '212');" 212 213 # pessimistic shard ddls 214 exec_sql mariadb2 3306 "ALTER TABLE $DB6.$TBL2 ADD COLUMN c3 INT;" 215 exec_sql mariadb2 3306 "ALTER TABLE $DB6.$TBL3 ADD COLUMN c3 INT;" 216 217 # prepare pessimistic incremental data 218 exec_sql mysql1 3306 "INSERT INTO $DB5.$TBL1 (c1, c2, c3) VALUES (203, '203', 203);" 219 exec_sql mysql1 3306 "INSERT INTO $DB5.$TBL2 (c1, c2, c3) VALUES (204, '204', 204);" 220 exec_sql mariadb2 3306 "INSERT INTO $DB6.$TBL2 (c1, c2, c3) VALUES (213, '213', 213);" 221 exec_sql mariadb2 3306 "INSERT INTO $DB6.$TBL3 (c1, c2, c3) VALUES (214, '214', 214);" 222 } 223 224 function exec_incremental_stage3() { 225 # prepare incremental data 226 exec_sql mysql1 3306 "INSERT INTO $DB1.$TBL1 (c1, c2) VALUES (301, '301');" 227 exec_sql mysql1 3306 "INSERT INTO $DB1.$TBL2 (c1, c2) VALUES (302, '302');" 228 exec_sql mariadb2 3306 "INSERT INTO $DB2.$TBL2 (c1, c2) VALUES (311, '311');" 229 exec_sql mariadb2 3306 "INSERT INTO $DB2.$TBL3 (c1, c2) VALUES (312, '312');" 230 231 # prepare optimistic incremental data 232 exec_sql mysql1 3306 "INSERT INTO $DB3.$TBL_LOWER1 (c1, c2, c3, c4) VALUES (301, '301', 301, 301);" 233 exec_sql mysql1 3306 "INSERT INTO $DB3.$TBL2 (c1, c2, c3, c4) VALUES (302, '302', 302, 302);" 234 exec_sql mariadb2 3306 "INSERT INTO $DB4.$TBL2 (c1, c2, c3, c4) VALUES (311, '311', 311, 311);" 235 exec_sql mariadb2 3306 "INSERT INTO $DB4.$TBL_LOWER3 (c1, c2, c3, c4) VALUES (312, '312', 312, 312);" 236 if [[ "$PRE_VER" != "v2.0.0" ]]; then 237 exec_sql mariadb2 3306 "INSERT INTO $DB4.$TBL4 (c1, c2, c3, c4) VALUES (313, '313', 313, 313);" 238 fi 239 240 # prepare pessimistic incremental data 241 exec_sql mysql1 3306 "INSERT INTO $DB5.$TBL1 (c1, c2, c3) VALUES (303, '303', 303);" 242 exec_sql mysql1 3306 "INSERT INTO $DB5.$TBL2 (c1, c2, c3) VALUES (304, '304', 304);" 243 exec_sql mariadb2 3306 "INSERT INTO $DB6.$TBL2 (c1, c2, c3) VALUES (313, '313', 313);" 244 exec_sql mariadb2 3306 "INSERT INTO $DB6.$TBL3 (c1, c2, c3) VALUES (314, '314', 314);" 245 } 246 247 function exec_incremental_stage4() { 248 # prepare incremental data 249 exec_sql mysql1 3306 "INSERT INTO $DB1.$TBL1 (c1, c2) VALUES (401, '401');" 250 exec_sql mysql1 3306 "INSERT INTO $DB1.$TBL2 (c1, c2) VALUES (402, '402');" 251 exec_sql mariadb2 3306 "INSERT INTO $DB2.$TBL2 (c1, c2) VALUES (411, '411');" 252 exec_sql mariadb2 3306 "INSERT INTO $DB2.$TBL3 (c1, c2) VALUES (412, '412');" 253 254 # prepare optimistic incremental data 255 exec_sql mysql1 3306 "INSERT INTO $DB3.$TBL_LOWER1 (c1, c2, c3, c4) VALUES (401, '401', 401, 401);" 256 exec_sql mysql1 3306 "INSERT INTO $DB3.$TBL2 (c1, c2, c3, c4) VALUES (402, '402', 402, 402);" 257 exec_sql mariadb2 3306 "INSERT INTO $DB4.$TBL2 (c1, c2, c3, c4) VALUES (411, '411', 411, 411);" 258 exec_sql mariadb2 3306 "INSERT INTO $DB4.$TBL_LOWER3 (c1, c2, c3, c4) VALUES (412, '412', 412, 412);" 259 if [[ "$PRE_VER" != "v2.0.0" ]]; then 260 exec_sql mariadb2 3306 "INSERT INTO $DB4.$TBL4 (c1, c2, c3, c4) VALUES (413, '413', 413, 413);" 261 fi 262 263 # prepare pessimistic incremental data 264 exec_sql mysql1 3306 "INSERT INTO $DB5.$TBL1 (c1, c2, c3) VALUES (403, '403', 403);" 265 exec_sql mysql1 3306 "INSERT INTO $DB5.$TBL2 (c1, c2, c3) VALUES (404, '404', 404);" 266 exec_sql mariadb2 3306 "INSERT INTO $DB6.$TBL2 (c1, c2, c3) VALUES (413, '413', 413);" 267 exec_sql mariadb2 3306 "INSERT INTO $DB6.$TBL3 (c1, c2, c3) VALUES (414, '414', 414);" 268 } 269 270 function patch_nightly_with_tiup_mirror() { 271 # clone packages for upgrade. 272 # FIXME: use nightly version of grafana and prometheus after https://github.com/pingcap/tiup/issues/1334 fixed. 273 tiup --version 274 tiup mirror clone tidb-dm-nightly-linux-amd64 --os=linux --arch=amd64 \ 275 --alertmanager=v0.17.0 --grafana=v5.0.1 --prometheus=v5.0.1 \ 276 --dm-master=$1 --dm-worker=$1 \ 277 --tiup=v$(tiup --version | head -n1 | awk '{print $1}') --dm=v$(tiup --version | head -n1 | awk '{print $1}') 278 279 # change tiup mirror 280 tidb-dm-nightly-linux-amd64/local_install.sh 281 282 # publish nightly version 283 # binary files have already been built and packaged. 284 tiup mirror genkey 285 tiup mirror grant gmhdbjd --name gmhdbjd 286 mv tidb-dm-nightly-linux-amd64/keys/*-pingcap.json ./pingcap.json 287 tiup mirror publish dm-master nightly /tmp/dm-master-nightly-linux-amd64.tar.gz dm-master/dm-master --arch amd64 --os linux --desc="dm-master component of Data Migration Platform" -k pingcap.json 288 tiup mirror publish dm-worker nightly /tmp/dm-worker-nightly-linux-amd64.tar.gz dm-worker/dm-worker --arch amd64 --os linux --desc="dm-worker component of Data Migration Platform" -k pingcap.json 289 tiup mirror publish dmctl nightly /tmp/dmctl-nightly-linux-amd64.tar.gz dmctl/dmctl --arch amd64 --os linux --desc="dmctl component of Data Migration Platform" 290 291 tiup list 292 } 293 294 function run_dmctl_with_retry() { 295 dmctl_log="dmctl.log" 296 for ((k = 0; k < 10; k++)); do 297 tiup dmctl:$1 --master-addr=master1:8261 $2 >$dmctl_log 2>&1 298 all_matched=true 299 for ((i = 3; i < $#; i += 2)); do 300 j=$((i + 1)) 301 value=${!i} 302 expected=${!j} 303 got=$(sed "s/$value/$value\n/g" $dmctl_log | grep -c "$value" || true) 304 if [ "$got" != "$expected" ]; then 305 all_matched=false 306 break 307 fi 308 done 309 310 if $all_matched; then 311 return 0 312 fi 313 314 sleep 2 315 done 316 317 cat $dmctl_log 318 exit 1 319 } 320 321 function ensure_start_relay() { 322 # manually enable relay for source1 after v2.0.2 323 if [[ "$PRE_VER" == "v2.0.0" ]] || [[ "$PRE_VER" == "v2.0.1" ]]; then 324 return 325 fi 326 327 dmctl_log="get-worker.txt" 328 # always use CUR_VER, because we might use tiup mirror in previous steps. 329 tiup dmctl:$CUR_VER --master-addr=master1:8261 operate-source show -s mysql-replica-01 >$dmctl_log 2>&1 330 worker=$(grep "worker" $dmctl_log | awk -F'"' '{ print $4 }') 331 if [[ "$PRE_VER" == "v2.0.2" ]] || [[ "$PRE_VER" == "v2.0.3" ]] || [[ "$PRE_VER" == "v2.0.4" ]] || [[ "$PRE_VER" == "v2.0.5" ]] || [[ "$PRE_VER" == "v2.0.6" ]] || [[ "$PRE_VER" == "v2.0.7" ]]; then 332 run_dmctl_with_retry $CUR_VER "start-relay -s mysql-replica-01 $worker" "\"result\": true" 1 333 else 334 run_dmctl_with_retry $CUR_VER "start-relay -s mysql-replica-01" "\"result\": true" 1 335 fi 336 } 337 338 function restart_relay() { 339 if [[ "$PRE_VER" == "v2.0.0" ]] || [[ "$PRE_VER" == "v2.0.1" ]]; then 340 return 341 fi 342 343 run_dmctl_with_retry $CUR_VER "stop-relay -s mysql-replica-01" "\"result\": true" 1 344 run_dmctl_with_retry $CUR_VER "query-status -s mysql-replica-01" "\"relayStatus\": null" 1 345 run_dmctl_with_retry $CUR_VER "start-relay -s mysql-replica-01" "\"result\": true" 1 346 run_dmctl_with_retry $CUR_VER "query-status -s mysql-replica-01" "relayCatchUpMaster" 1 347 }