TiDB 學習第 6 天:全量數據同步之 mydumper&loader 工具的使用

一、全量同步Mysql數據

將mysql中的數據全量同步到TiDB中
**說明:**數據全量同步使用TiDB工具mydumper/loader,可以使用 mydumper 從 MySQL 導出數據,然後用 loader 將其導入到 TiDB 數據庫中

爲了快速的遷移數據 (特別是數據量巨大的庫),可以參考以下建議:

  • mydumper 導出數據至少要擁有 SELECT,RELOAD,LOCK TABLES 權限
  • 使用 mydumper 導出來的數據文件儘可能的小,最好不要超過 64M,可以設置參數 -F 64
  • loader的 -t 參數可以根據 tikv 的實例個數以及負載進行評估調整,例如 3個 tikv 的場景,此值可以設爲 3 *(1 ~ n);當 tikv 負載過高,loader 以及 tidb 日誌中出現大量 backoffer.maxSleep 15000ms is exceeded 可以適當調小該值,當 tikv 負載不是太高的時候,可以適當調大該值。

二、下載TiDB工具集

# 下載 tool 壓縮包
wget http://download.pingcap.org/tidb-enterprise-tools-latest-linux-amd64.tar.gz
wget http://download.pingcap.org/tidb-enterprise-tools-latest-linux-amd64.sha256

# 檢查文件完整性,返回 ok 則正確
sha256sum -c tidb-enterprise-tools-latest-linux-amd64.sha256
# 解開壓縮包
tar -xzf tidb-enterprise-tools-latest-linux-amd64.tar.gz
cd tidb-enterprise-tools-latest-linux-amd64

三、啓動mydumper導出數據,這裏需要指定相應參數

在新下載的解壓包中進入到bin目錄下啓動mydumper工具,工具後面跟上相應的參數

例如:./bin/mydumper -h 127.0.0.1 -P 3306 -u root -t 16 -F 64 -B reports -T RMAN_USERGROUPHISTORY --skip-tz-utc -o ./var/test_data

參數解析:
連接需要導出數據的 mysql 數據庫

-B test   需要導出的數據庫名,表明對 test這個數據庫進行導出數據操作
-T RMAN_USERGROUPHISTORY      表明導出數據的表
-t 16     導出數據使用的線程數
-F 64     實際的Table切分成多大的chunk,這裏表明64MB 一個 chunk
--skip-tz-utc 添加這個參數忽略掉 MySQL 與導數據的機器之間時區設置不一致的情況,禁止自動轉換。  

四、將導出的數據用loader工具導入到TiDB中

   ./bin/loader -h 127.0.0.1 -u root -p '1234dfaf' -P 4000 -t 32 -d /var/test_data

參數解析:

 -h 127.0.0.1    連接的主機名
 -u root         用戶名
 -p '1234dfaf' 密碼
 -P 4000      TiDB端口號
 -t 32         線程數
 -d /var/test_data      數據導出路徑

加上路徑後會在這個路徑中生成sql執行腳本,使用以上語句信息就可以自動執行

注意:

  1. 數據導入過程中數據庫和表都是自動創建的,tidb中已經存在的數據庫不能和mysql中數據庫同名,否則導入不成功

  2. 目前 TiDB 支持 UTF8mb4 字符編碼,假設 mydumper 導出數據爲 latin1 字符編碼,需要修改字符編碼爲utf8

  3. 數據同步過程中sql_mode還要相同,否則兩個數據庫sql執行模型不同有的檢測sql有的不檢測,有的嚴格,有的不嚴格數據會導入導出不成功

總結

本文介紹數據全量從 Mysql 同步到 TiDB中,詳細流程請參照官網:)

參考

https://pingcap.com/docs-cn/stable/reference/tools/mydumper/
https://pingcap.com/docs-cn/stable/reference/tools/loader/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章