TIDB安装及MySql数据迁移

TIDB整体架构:

TiDB 集群主要包括三个核心组件:TiDB Server,PD Server 和 TiKV Server。

PD Server:Placement Driver (简称 PD) 是整个集群的管理模块,其主要工作有三个:一是存储集群的元信息(某个 Key 存储在哪个 TiKV 节点);二是对 TiKV 集群进行调度和负载均衡(如数据的迁移、Raft group leader 的迁移等);三是分配全局唯一且递增的事务 ID。

PD 通过 Raft 协议保证数据的安全性。Raft 的 leader server 负责处理所有操作,其余的 PD server 仅用于保证高可用。建议部署奇数个 PD 节点。

TiKV Server:负责存储数据,从外部看 TiKV 是一个分布式的提供事务的 Key-Value 存储引擎。存储数据的基本单位是 Region,每个 Region 负责存储一个 Key Range(从 StartKey 到 EndKey 的左闭右开区间)的数据,每个 TiKV 节点会负责多个 Region。TiKV 使用 Raft 协议做复制,保持数据的一致性和容灾。副本以 Region 为单位进行管理,不同节点上的多个 Region 构成一个 Raft Group,互为副本。数据在多个 TiKV 之间的负载均衡由 PD 调度,这里也是以 Region 为单位进行调度。

TiDB Server: 负责接收 SQL 请求,处理 SQL 相关的逻辑,并通过 PD 找到存储计算所需数据的 TiKV 地址,与 TiKV 交互获取数据,最终返回结果。TiDB Server 是无状态的,其本身并不存储数据,只负责计算,可以无限水平扩展,可以通过负载均衡组件(如LVS、HAProxy 或 F5)对外提供统一的接入地址。

Linux版本要求:

TIDB官方指出:TiDB 在 CentOS 7.3 的环境下进行过大量的测试,同时社区也有很多该操作系统部署的最佳实践,因此,建议使用 CentOS 7.3 以上的 Linux 操作系统来部署 TiDB。

环境依赖:

安装MySQL

TIDB安装步骤:

1、[root@localhost /]$ cd /usr/local/soft/

       [root@localhost soft]$ wget http://download.pingcap.org/tidb-latest-linux-amd64.sha256

       [root@localhost soft]$ wget http://download.pingcap.org/tidb-latest-linux-amd64.sha256

2、检查文件完整性

[root@localhost soft]$ sha256sum -c tidb-latest-linux-amd64.sha256

3、解压文件

[root@localhost soft]# tar -xvf tidb-latest-linux-amd64.tar.gz

4、data、logfile路径

[root@localhost soft]# mkdir -p /data/pd/{data,logs}

[root@localhost soft]# mkdir -p /data/tikv/{data,logs}

[root@localhost logs]# mkdir -p /data/tidb/logs

5、启动pd-server

[root@localhost logs]# /usr/local/tidb/bin/pd-server --data-dir=/data/pd/data --log-file=/data/pd/logs/pd.log &

6、启动tikv

[root@localhost logs]# /usr/local/tidb/bin/tikv-server --pd="127.0.0.1:2379" --data-dir=/data/tikv/data --log-file=/data/tikv/logs/tikv.log &

7、启动tidb

[root@localhost logs]# /usr/local/tidb/bin/tidb-server --store=tikv --path="127.0.0.1:2379" --log-file=/data/tidb/logs/tidb.log &

8、验证:TCP 4000 端口是 TiDB 服务默认端口,验证4000端口是否已被tidb-server 占用

使用MySQL客户端连接测试:

[root@localhost logs]# mysql -uroot -p -h127.0.0.1 -P4000

从Server version中看出已经连接上TIDB,TIDB语法与MySql语法基本一致,简单的验证一下

MySql数据迁移:

mydumper安装:

官方推荐采用mydumper,具体可以参考 https://github.com/maxbube/mydumper。可以使用 mydumper 从 MySQL 导出数据,然后用 loader 将其导入到 TiDB。

mydumper安装:

[root@localhost soft]# yum install glib2-devel mysql-devel zlib-devel pcre-devel openssl-devel cmake make

[root@localhost soft]# wget https://launchpadlibrarian.net/225370879/mydumper-0.9.1.tar.gz

[root@localhost soft]# tar zxvf mydumper-0.9.1.tar.gz

[root@localhost soft]# tar zxvf mydumper-0.9.1.tar.gz

[root@localhost soft]# cd mydumper-0.9.1/

[root@localhost mydumper-0.9.1]# cmake .

[root@localhost mydumper-0.9.1]# make && make install

在安装过程中,在cmake .时候,报了make: *** No targets specified and no makefile,因为缺少相关的依赖,

[root@localhost mydumper-0.9.1]# yum -y install gcc gcc-c++ autoconf automake

[root@localhost mydumper-0.9.1]# yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel (安装依赖zlib、openssl和pcre)

安装完成后生成两个二进制文件mydumper和myloader位于/usr/local/bin目录下:

从 MySQL 导出数据:

[root@localhost bin]# ./mydumper -h 127.0.0.1 -P 3306 -u root -p root -t 16 -F 64 -B tidb -T t_order --skip-tz-utc -o /usr/local/data

我们使用 -B tidb 表明是对 tidb 这个 database 操作,然后用 -T t_order 只导出t_order表。如果有多张表,中间用逗号隔开,例如: t1,t2 表明只导出 t1,t2 两张表。

-t 16 表明使用 16 个线程去导出数据。-F 64 是将实际的 table 切分成多大的 chunk,这里就是 64MB 一个 chunk。

--skip-tz-utc 添加这个参数忽略掉 MySQL 与导数据的机器之间时区设置不一致的情况,禁止自动转换。

查看导出的数据:

向 TiDB 导入数据:

使用 myloader 将之前导出的数据导入到 TiDB:

[root@localhost bin]# ./myloader -h 127.0.0.1 -u root -P 4000 -t 32 -d /usr/local/data/

导入成功之后,我们可以用 MySQL 官方客户端进入 TiDB,查看:

数据导入成功。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,723评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,003评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,512评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,825评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,874评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,841评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,812评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,582评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,033评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,309评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,450评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,158评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,789评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,409评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,609评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,440评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,357评论 2 352

推荐阅读更多精彩内容