TiDB 分布式数据库搭建[通俗易懂]

TiDB 分布式数据库搭建

大家好,又见面了,我是全栈君。

因为公司数据量比较大,一种方法是采用mycat这种数据库中间件的形式。但是感觉不是很方便。后来发现了TiDB打算,可以尝试试用一下。用datax把历史数据转入到TiDB中,然后在TiDB中进行分析。 第一步:现在台式机中的虚拟机中部署起来。 第二步:数据转移 第三部:测试性能,判断是否可用。

官网为TiDB

目前已经在一台服务器上搭建起来一台单机版的TiDB服务器。简单添加了一些数据,发现居然没有原生的mysql快,问了一下高手,说TiDB要需要集群才能发挥优势。 目前是想采用Kettle来同步原来Oracle中的数据到新的数据库中去。但是现在遇到问题就是用jdbc连接会有问题。我相信这个问题会解决的。是在不行可以先同步到mysql,然后我用navicat的工具同步到TiDB。

如果下周有时间的话,我想搭建集群的TiDB数据库,然后再测试一下性能对比。

日均数据量千万级,MySQL、TiDB两种存储方案的落地对比 这篇文章给我信心。

查看了官网,官网有三种部署方法。(Ansible 部署方案),Binary 部署方案 ,Docker 部署方案。目前对我来说最快的部署方案是第二种。但是第一种和第三种也是要学习的。 我先贴一下第二中部署的方式。现在TiDB已经是RC4版本了,距离正式版发布已经不远了。

一个完整的 TiDB 集群包括 PD,TiKV 以及 TiDB。启动顺序依次是 PD,TiKV 以及 TiDB。

阅读本章前,请先确保阅读 部署建议

快速了解和试用 TiDB,推荐使用单节点方式快速部署。

功能性测试 TiDB,推荐使用功能性测试部署。

生产环境使用 TiDB,推荐使用多节点集群模式部署。

目前因为已经搭建了单点方式部署,但是发挥不出优势来。所以想采取功能性测试,等对去年一年的销售进行分析后,如果性能达到要求的话,可以采用多节点集群部署的方式。

系统的话,决定采用Ubuntu。

下载官方 Binary

Linux (CentOS 7+, Ubuntu 14.04+)

下载压缩包

wget http://download.pingcap.org/tidb-latest-linux-amd64.tar.gz wget http://download.pingcap.org/tidb-latest-linux-amd64.sha256

检查文件完整性,返回 ok 则正确

sha256sum -c tidb-latest-linux-amd64.sha256

解开压缩包

tar -xzf tidb-latest-linux-amd64.tar.gz cd tidb-latest-linux-amd64

检查文件完整性,返回 ok 则正确

sha256sum -c tidb-latest-linux-amd64-centos6.sha256

解开压缩包

tar -xzf tidb-latest-linux-amd64-centos6.tar.gz cd tidb-latest-linux-amd64-centos6 单节点方式快速部署


我们可以在单机上面,运行和测试 TiDB 集群,请按如下步骤依次启动 PD,TiKV,TiDB:


启动 PD
./bin/pd-server --data-dir=pd \
                --log-file=pd.log
启动 TiKV
./bin/tikv-server --pd="127.0.0.1:2379" \
                  --data-dir=tikv \
                  --log-file=tikv.log
启动 TiDB
./bin/tidb-server --store=tikv \
                  --path="127.0.0.1:2379" \
                  --log-file=tidb.log
使用官方的 mysql 客户端连接 TiDB
mysql -h 127.0.0.1 -P 4000 -u root -D test
多节点集群模式部署

在生产环境中,我们推荐多节点部署 TiDB 集群,首先请参考部署建议。

这里我们使用六个节点,部署三个 PD,三个 TiKV,以及一个 TiDB,各个节点以及所运行服务信息如下:

Name Host IP Services node1 192.168.199.113 PD1, TiDB node2 192.168.199.114 PD2 node3 192.168.199.115 PD3 node4 192.168.199.116 TiKV1 node5 192.168.199.117 TiKV2 node6 192.168.199.118 TiKV3 请按如下步骤 依次启动 PD 集群,TiKV 集群以及 TiDB:

在 node1,node2,node3 依次启动 PD
./bin/pd-server --name=pd1 \
                --data-dir=pd1 \
                --client-urls="http://192.168.199.113:2379" \
                --peer-urls="http://192.168.199.113:2380" \
                --initial-cluster="pd1=http://192.168.199.113:2380" \
                --log-file=pd.log

./bin/pd-server --name=pd2 \
                --data-dir=pd2 \
                --client-urls="http://192.168.199.114:2379" \
                --peer-urls="http://192.168.199.114:2380" \
                --join="http://192.168.199.113:2379" \
                --log-file=pd.log

./bin/pd-server --name=pd3 \
                --data-dir=pd3 \
                --client-urls="http://192.168.199.115:2379" \
                --peer-urls="http://192.168.199.115:2380" \
                --join="http://192.168.199.113:2379" \
                --log-file=pd.log
在 node4,node5,node6 启动 TiKV
./bin/tikv-server --pd="192.168.199.113:2379,192.168.199.114:2379,192.168.199.115:2379" \
                  --addr="192.168.199.116:20160" \
                  --data-dir=tikv1 \
                  --log-file=tikv.log

./bin/tikv-server --pd="192.168.199.113:2379,192.168.199.114:2379,192.168.199.115:2379" \
                  --addr="192.168.199.117:20160" \
                  --data-dir=tikv2 \
                  --log-file=tikv.log

./bin/tikv-server --pd="192.168.199.113:2379,192.168.199.114:2379,192.168.199.115:2379" \
                  --addr="192.168.199.118:20160" \
                  --data-dir=tikv3 \
                  --log-file=tikv.log
在 node1 启动 TiDB
./bin/tidb-server --store=tikv \
                  --path="192.168.199.113:2379,192.168.199.114:2379,192.168.199.115:2379" \
                  --log-file=tidb.log
使用官方 mysql 客户端连接 TiDB
mysql -h 192.168.199.113 -P 4000 -u root -D test

####注意: 在生产环境中启动 TiKV 时,建议使用 –config 参数指定配置文件路径。

如果使用 nohup 在生产环境中启动集群,需要将启动命令放到一个脚本文件里面执行,否则会出现因为 Shell 退出导致 nohup 启动的进程也收到异常信号退出的问题,具体参考进程异常退出。 功能性测试部署

####这是目前想采取的模式

如果只是对 TiDB 进行测试,并且机器数量有限,我们可以只启动一台 PD 测试 整个集群。

这里我们使用四个节点,部署一个 PD,三个 TiKV,以及一个 TiDB,各个节点以及所运行服务信息如下:

Name Host IP Services node1 192.168.199.113 PD1, TiDB node2 192.168.199.114 TiKV1 node3 192.168.199.115 TiKV2 node4 192.168.199.116 TiKV3 请按如下步骤 依次启动 PD 集群,TiKV 集群以及 TiDB:

在 node1 启动 PD
./bin/pd-server --name=pd1 \
                --data-dir=pd1 \
                --client-urls="http://192.168.199.113:2379" \
                --peer-urls="http://192.168.199.113:2380" \
                --initial-cluster="pd1=http://192.168.199.113:2380" \
                --log-file=pd.log
在 node2,node3,node4 启动 TiKV
./bin/tikv-server --pd="192.168.199.113:2379" \
                  --addr="192.168.199.114:20160" \
                  --data-dir=tikv1 \
                  --log-file=tikv.log

./bin/tikv-server --pd="192.168.199.113:2379" \
                  --addr="192.168.199.115:20160" \
                  --data-dir=tikv2 \
                  --log-file=tikv.log

./bin/tikv-server --pd="192.168.199.113:2379" \
                  --addr="192.168.199.116:20160" \
                  --data-dir=tikv3 \
                  --log-file=tikv.log
在 node1 启动 TiDB
./bin/tidb-server --store=tikv \
                  --path="192.168.199.113:2379" \
                  --log-file=tidb.log
使用官方 mysql 客户端连接 TiDB
mysql -h 192.168.199.113 -P 4000 -u root -D test

如果这个方案成功了的话,对于原本存放在oracle中的冷数据,也可以分析起来了。

大家也可以参考下面的文章 PingCAP布道Percona Live 2017 展示TiDB强悍性能 TiDB 的正确使用姿势 [是时候选择NewSQL数据库了(http://blog.csdn.net/erlib/article/details/53420606)

转载于:https://my.oschina.net/miaojiangmin/blog/1498647

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/108286.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • forkjoin并发分页查数据_java fork join

    forkjoin并发分页查数据_java fork join分治,顾名思义,即分而治之,是一种解决复杂问题的思维方法和模式;具体来讲,指的是把一个复杂的问题分解成多个相似的子问题,然后再把子问题分解成更小的子问题,直到子问题简单到可以直接求解。Java并发包里提供了一种叫做Fork/Join的并行计算框架,就是用来支持分治这种任务模型的。如何用Fork/Join并行计算框架计算斐波那契数列f(n)=f(n-1)+f(n-…

  • 布隆过滤器的原理,使用场景和注意事项有哪些_布隆过滤器的基本工作原理

    布隆过滤器的原理,使用场景和注意事项有哪些_布隆过滤器的基本工作原理目录什么是布隆过滤器实现原理为啥不用HashMap的问题布隆过滤器数据结构支持删除么如何选择哈希函数个数和布隆过滤器长度最佳实践Redis大Value拆分参考资料什么是布隆过滤器本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilisticdatastructure),特点是高效地插入和查询,可以用来告诉你“某样东西一定不存在或者可能存在”。相比于传统的List、Set、Map等数据结构,它更高效、占用空间更少,但是缺点是其返回的结果是概率性的,而不是确切的。实现

  • android onresume时view,android – 当对话框出现时不调用OnResume[通俗易懂]

    android onresume时view,android – 当对话框出现时不调用OnResume[通俗易懂]Anactivitycanfrequentlytransitioninandoutoftheforeground—forexample,onPause()iscalledwhenthedevicegoestosleeporwhenadialogappears.我有一个带按钮的活动.当我点击按钮时会出现一个对话框.我期望在对话框出现时调用onPause方…

  • Android快速转战Kotlin教程「建议收藏」

    Android快速转战Kotlin教程「建议收藏」前言kotlin是啥?这里就不用多说了,想必看这篇文章的童鞋肯定是有所了解的。那么这篇文章你可以收获什么?答:本文主要通过本人如何从java转战到kotlin并应用在实际项目中的个人经历,给大家提供一些学习思路、学习方法以及一些学习资料和个人总结。前提:你的项目(包含个人项目)即将开始用到kotlin(没有项目作为依托你会缺少十足的动力,而且缺少应用场景乘热打铁那也…

  • 安装搭建Python2.* 和3.* 环境详细步骤

    安装搭建Python2.* 和3.* 环境详细步骤Python是跨平台的,它可以运行在Windows、Mac和各种Linux/Unix系统上。安装Python首先进入"Python官方网站",将Python下载下来。wi

  • linux 命令

    linux 命令

    2020年11月19日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号