github.com/pingcap/tiflow@v0.0.0-20240520035814-5bf52d54e205/dm/tests/foreign_key/run.sh (about) 1 #!/bin/bash 2 3 set -eu 4 5 cur=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) 6 source $cur/../_utils/test_prepare 7 WORK_DIR=$TEST_DIR/$TEST_NAME 8 9 function run() { 10 run_sql_tidb "set @@global.foreign_key_checks=1;" 11 run_sql_file $cur/data/db1.prepare.sql $MYSQL_HOST1 $MYSQL_PORT1 $MYSQL_PASSWORD1 12 # start DM worker and master 13 run_dm_master $WORK_DIR/master $MASTER_PORT $cur/conf/dm-master.toml 14 check_rpc_alive $cur/../bin/check_master_online 127.0.0.1:$MASTER_PORT 15 run_dm_worker $WORK_DIR/worker1 $WORKER1_PORT $cur/conf/dm-worker1.toml 16 check_rpc_alive $cur/../bin/check_worker_online 127.0.0.1:$WORKER1_PORT 17 18 # operate mysql config to worker 19 cp $cur/conf/source1.yaml $WORK_DIR/source1.yaml 20 sed -i "/relay-binlog-name/i\relay-dir: $WORK_DIR/worker1/relay_log" $WORK_DIR/source1.yaml 21 dmctl_operate_source create $WORK_DIR/source1.yaml $SOURCE_ID1 22 23 run_dm_ctl $WORK_DIR "127.0.0.1:$MASTER_PORT" \ 24 "start-task $cur/conf/dm-task.yaml --remove-meta" 25 run_dm_ctl_with_retry $WORK_DIR "127.0.0.1:$MASTER_PORT" \ 26 "query-status test" \ 27 "\"relayCatchUpMaster\": true" 1 28 29 # use sync_diff_inspector to check full dump loader 30 check_sync_diff $WORK_DIR $cur/conf/diff_config.toml 31 32 run_sql_file $cur/data/db1.increment.sql $MYSQL_HOST1 $MYSQL_PORT1 $MYSQL_PASSWORD1 33 34 run_dm_ctl_with_retry $WORK_DIR "127.0.0.1:$MASTER_PORT" \ 35 "query-status test" \ 36 "\"result\": true" 2 \ 37 "\"unit\": \"Sync\"" 1 \ 38 "\"stage\": \"Running\"" 2 39 40 # check upstream and downstream data are inconsistent 41 run_sql_source1 "select count(1) from foreign_key.t2" 42 check_contains "count(1): 4" 43 run_sql_tidb_with_retry "select count(2) from foreign_key.t2" "count(2): 5" 44 } 45 46 cleanup_data foreign_key 47 # also cleanup dm processes in case of last run failed 48 cleanup_process $* 49 run $* 50 cleanup_process $* 51 52 echo "[$(date)] <<<<<< test case $TEST_NAME success! >>>>>>"