日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

背景

TiDB 是一個(gè)分布式關(guān)系型數(shù)據(jù)庫,可以無縫對(duì)接 MySQL。考慮到產(chǎn)品數(shù)據(jù)量大的情況下,單機(jī) MySQL 可能無法支撐,而無縫切換到 TiDB 集群也比較方便,所以領(lǐng)導(dǎo)讓我調(diào)研了一天遷移過程。

本文將記錄使用 mydumper 工具導(dǎo)出 MySQL 數(shù)據(jù)庫數(shù)據(jù),并使用 TiDB Lightning 將數(shù)據(jù)遷移到 TiDB 集群的流程。對(duì)比以前部署測(cè)試 MyCat 時(shí)的經(jīng)歷,發(fā)現(xiàn) TiDB 遷移時(shí)不需要配置分庫分表規(guī)則,遷移過程更方便,對(duì)得起“無縫”二字!

第一步,部署 TiDB Lightning

TiDB Lightning 部署包是一個(gè)壓縮文件,解壓后可直接使用,部署流程非常簡(jiǎn)單:

(一)確定 TiDB 版本

用 MySQL 客戶端連接到 TiDB 集群后,執(zhí)行 select version() 語句得到版本號(hào):

MySQL數(shù)據(jù)遷移到TiDB的流程及為何放棄MyCat

 

(二)下載工具包

根據(jù)版本號(hào),確定下載連接:https://download.pingcap.org/tidb-toolkit-{version}-linux-amd64.tar.gz 替換為具體的版本號(hào)后的地址。

下載文件:

wget  https://download.pingcap.org/tidb-toolkit-v4.0.0-linux-amd64.tar.gz

(三)解壓

進(jìn)入部署包所在目錄,解壓:

tar -xzf tidb-toolkit-v4.0.0-linux-amd64.tar.gz

進(jìn)入解壓后的 bin 目錄,查看它提供的工具:

MySQL數(shù)據(jù)遷移到TiDB的流程及為何放棄MyCat

 


mydumper 和 tidb-lightning 就是一對(duì)導(dǎo)出、導(dǎo)入工具,其中 mydumper 跟 MySQL 的 mysqldump 功能是一樣的。

但是據(jù)我測(cè)試導(dǎo)出 3.9G 的數(shù)據(jù)耗時(shí)來看,mydumper 比 mysqldump 快很多。

建議使用 mydumper,原因是用它導(dǎo)出的數(shù)據(jù)時(shí),會(huì)自動(dòng)創(chuàng)建 xxx-schema-create.sql 建庫文件,而且建表和插入 SQL 文件分開,不用額外操作,配套用 tidb-lightning 執(zhí)行導(dǎo)入,不容易出錯(cuò)。

如果用 mysqldumper 則需要注意導(dǎo)出建庫語句,是否需要添加 use database 之類的語句,用 MySQL 的 source 導(dǎo)入時(shí)容易出現(xiàn)的問題,都需要注意。不是配套的工具,這種方式?jīng)]有測(cè)試過。

第二步,導(dǎo)出 MySQL 數(shù)據(jù)

進(jìn)入 bin 目錄,用 mydumper 工具,連接到目標(biāo)數(shù)據(jù)庫上導(dǎo)出,命令如下:

./mydumper -h  IP -P 3306 -u root -p 123456 -t 16 -F 128 -B targetDatabase -o /tidb-data/mydumpersql/

參數(shù)說明:

  1. -B, --database 需要備份的數(shù)據(jù)庫
  2. -t,–threads 備份執(zhí)行的線程數(shù),默認(rèn)4個(gè)線程
  3. -F,–chunk-filesize 行塊分割表的文件大小,單位是MB
  4. -o,–outputdir 備份文件目錄

注意,最后一個(gè) outputdir 的值,后面導(dǎo)入的時(shí)候需要使用。因?yàn)槭褂枚嗑€程,所以就不難理解為何它的效率會(huì)比 mysqldumper 高了。

第三步,導(dǎo)入 TiDB 集群

最后一步,利用 tidb-lightning 工具將第二步導(dǎo)出的數(shù)據(jù),導(dǎo)入到 TiDB 集群中。

官網(wǎng)的操作流程不是很清楚,而且給出的 tidb-lightning 里面有一項(xiàng)配置對(duì) 4.0.0 版本來說會(huì)報(bào)錯(cuò),這里提供糾正后的完整配置。

(一)創(chuàng)建配置文件

在 bin 目錄下創(chuàng)建一個(gè)配置文件 tidb-lightning.toml【文件名稱任意】,并打開:

touch tidb-lightning.toml
vi tidb-lightning.toml

寫入如下配置信息:

[lightning]

# 轉(zhuǎn)換數(shù)據(jù)的并發(fā)數(shù),默認(rèn)為邏輯 CPU 數(shù)量,不需要配置。
# 混合部署的情況下可以配置為邏輯 CPU 的 75% 大小。
# region-concurrency =

# 日志
level = "info"
file = "tidb-lightning.log"

[tikv-importer]
# backend 設(shè)置為 local 模式
backend = "tidb"
# 設(shè)置本地臨時(shí)存儲(chǔ)路徑
# sorted-kv-dir = "/mnt/ssd/sorted-kv-dir"

[mydumper]
# Mydumper 源數(shù)據(jù)目錄。
data-source-dir = "/tidb-data/mydumpersql"

[tidb]
# 目標(biāo)集群的信息。tidb-server 的監(jiān)聽地址,填一個(gè)即可。
host = "192.168.xxx.xxx"
port = 4000
user = "root"
password = "root"
# 表架構(gòu)信息在從 TiDB 的“狀態(tài)端口”獲取。
status-port = 10080
# pd-server 的地址,填一個(gè)即可
# pd-addr = "192.168.xxx.xxx:2379"

說明:

  1. data-source-dir 就是第二步導(dǎo)出時(shí) -o 的參數(shù)值;
  2. host 是 TiDB 集群地址和端口;
  3. sorted-kv-dir 這個(gè)配置不支持,放開后會(huì)報(bào)錯(cuò):unknown configuration options: tikv-importer.sorted-kv-dir。
  4. pd-addr 這個(gè)配置沒啥用,去掉也不影響導(dǎo)入

(二)執(zhí)行導(dǎo)入命令

由于數(shù)據(jù)庫全量導(dǎo)入,操作耗時(shí)較長(zhǎng),官方建議將導(dǎo)入命令封裝成腳本。

先在 bin 目錄下創(chuàng)建一個(gè) loaddata.sh 文件,內(nèi)容如下:

#!/bin/bash
nohup ./tidb-lightning -config ./tidb-lightning.toml > nohup.out &

執(zhí)行腳本,然后查看 TiDB 的集群日志 tidb.log ,查看導(dǎo)入進(jìn)度。

導(dǎo)入完成后,用 MySQL 客戶端連接到 TiDB 集群的一個(gè)主機(jī),查看數(shù)據(jù)。

啟示錄

將 MySQL 數(shù)據(jù)遷移到 TiDB 的過程,直接參考官方文檔進(jìn)行操作就可以了。但是,涉及到 tidb-lightning 工具的那一章節(jié),內(nèi)容跟數(shù)據(jù)遷移章節(jié)有一些看不懂,其中涉及到 tikv-importer,它和 tidb-lightning 的關(guān)系沒有詳細(xì)說明,還有一些配置項(xiàng)會(huì)導(dǎo)致導(dǎo)入報(bào)錯(cuò)。

實(shí)踐證明,只用 tidb-lightning 工具就可以完成數(shù)據(jù)遷入過程。

去年 8 月份調(diào)研過 MyCat 集群,由于它的分片分庫規(guī)則比較復(fù)雜,而目前這個(gè)產(chǎn)品涉及的表比較多,而且很多都是動(dòng)態(tài)創(chuàng)建的,所以只做了技術(shù)調(diào)研,一直沒有技術(shù)落地。

MyCat 和 TiDB 都不會(huì)對(duì)應(yīng)用端代碼產(chǎn)生影響,JDBC 連接只需要修改 IP 和端口就好,幾乎沒有工作量。庫表遷移就不一樣了,TiDB 可以直接遷移。

MyCat 由于 Schema 和表創(chuàng)建涉及到分庫分表策略,需要自己設(shè)計(jì)數(shù)據(jù)分布規(guī)則,當(dāng)初也只是簡(jiǎn)單寫了一個(gè)生成配置的小程序,不敢保證能夠數(shù)據(jù)能夠無縫正確遷移。

分享到:
標(biāo)簽:遷移 數(shù)據(jù) MySQL
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定