TiDB全量遷移,從MySql遷移到tidb

2021-10-01 03:53:40 字數 2143 閱讀 8874

mydumper是乙個強大的資料遷移工具,具體可以參考 maxbube/mydumper。你可以使用mydumper從 mysql 匯出資料,然後用 loader 將其匯入到 tidb。

注意:

雖然 tidb 也支援使用 mysql 官方的mysqldump工具來進行資料的遷移工作,但相比於mydumper/loader,效能會慢很多,大量資料的遷移會花費很多時間,這裡我們並不推薦。

結果:匯入時間 11 小時左右,19.4 g/小時

我們使用mydumper從 mysql 匯出資料,如下:

.

/bin/mydumper -h 127.0

.0.1

-p 3306

-u root -t 16

-f 64

-b test -t t1,t2 --skip-tz-utc -o ./var/test

上面,我們使用-b test表明是對test這個 database 操作,然後用-t t1,t2表明只匯出t1t2兩張表。

-t 16表明使用 16 個執行緒去匯出資料。-f 64是將實際的 table 切分成多大的 chunk,這裡就是 64mb 乙個 chunk。

–skip-tz-utc新增這個引數忽略掉 mysql 與導資料的機器之間時區設定不一致的情況,禁止自動轉換。

注意:

在阿里雲等一些需要super privilege的雲上面,mydumper需要加上--no-locks引數,否則會提示沒有許可權操作。

注意:

目前 tidb 支援 utf8mb4 字元編碼,假設 mydumper 匯出資料為 latin1 字元編碼,請使用iconv -f latin1 -t utf-8 $file -o /data/imdbload/$basename命令轉換,$file 為已有檔案,$basename 為轉換後檔案。

注意:

如果 mydumper 使用 -m 引數,會匯出不帶表結構的資料,這時 loader 無法匯入資料。

.

/bin/loader -h 127.0

.0.1

-u root -p 4000

-t 32

-d .

/var/test

show

tables

;

+

----------------+

| tables_in_test |

+----------------+

| t1 |

| t2 |

+----------------+

select

*from t1;

+

----+------+

| id | age |

+----+------+|1

|1||

2|2|

|3|3

|+----+------+

select

*from t2;

+

----+------+

| id | name |

+----+------+|1

| a ||2

| b ||3

| c |

+----+------+

tidb和mysql導資料 TIDB資料遷移

使用 mydumper loader 全量匯出匯入資料 將 mysql 的資料遷移到 tidb,tidb完全相容 mysql 協議和生態,遷移便捷 使用官方提供的遷移工具 wget wget 檢查檔案完整性,返回 ok 則正確 sha256sum c tidb enterprise tools la...

db mysql全量遷移db

機房要裁撤,原有的老業務機的mysql需要遷移到新的.方案1 全量打包拷貝data目錄,發現拷過去各種毛病 方案2 mysqldump邏輯匯出解決問題 新的db剛安裝好.步驟記錄下.備份 mysqldump uroot a b r tmp mysqlbak date f sql 匯入用source ...

Mysql資料遷移到TIDB詳解

我從業16年來,使用了太多的資料庫 rdbms nosql newsql 首先我說一下資料庫的變遷和發展歷史 以 mysql 為例剛開始時,它是乙個單機模式,但是隨著資料庫的資料量的增加及使用者對效能要求的提高,它的儲存容量和效能都遇到了瓶頸。這些需求催生了新的解決方案,那就是 mysql 主從模式...