延續前一篇建立完資料來源之後,接著試著把MySQL的test.tidb_test資料轉移到TiDB。
首先新增testdm-task.yaml建立資料搬遷任務,命名任務為testdm。
如果遇到DB名稱大小寫問題,需加上case-sensitive: true。
設定要寫入的TiDB基本資料,ip,port,user,password等。
另外設定黑白名單block-allow-list,裡頭詳細定義要搬遷的來源db名稱與table名稱,可同時定義多個db。
name: testdm
case-sensitive: true #DB名稱大小寫要相符
task-mode: all #先進行全量full sync,完成後會改為increment sync
target-database:
host: "10.102.1.92" #TiDB相關設定
port: 4000
user: "root"
password: ""
mysql-instances:
- source-id: "mysql-replica-01"
block-allow-list: "block-rule1"
block-allow-list:
block-rule1:
do-dbs: ["test"]
do-tables:
- db-name: "test" #需要轉移的database名稱。
tbl-name: "tidb_test" #需要轉移的table名稱。
用check-task指令檢查一下設定是否有問題,正確的話會顯示check pass!!!
tiup dmctl --master-addr='127.0.0.1:8261' check-task ./testdm-task.yaml
接著用start-task指令執行
tiup dmctl --master-addr='127.0.0.1:8261' start-task ./testdm-task.yaml
接著來試試看有沒有同步,首先在MySQL與TiDB執行select tidb_test,兩邊的資料同樣有三筆。
接著在MySQL寫入一筆新資料,可以看到TiDB也同樣生成了這筆資料,資料轉移成功!