TIDB集群搭建

外题

为啥这么久了没怎么更新

  1. 开发了几个运维工具,后续会更新相关文章以及上线github
  2. 测试并上线TIDB,主要是将mysql转向TIDB,坑点也是不少啊

会有不少的TIDB相关文章上线

设计(必看)

采用:3台做为主要的TIDB集群(高配,为啥不组件分机器,原因:费钱、暂时不需要),一台做为监控以及TICDC,部分临时机作为DM同步数据用,配置就不明说了,体验过才知道-.-

坑点之一:注意TIDB比较依赖配置,建议基础配置(作为测试或少量线上迁移)为:4个cpu起步(8个最好),32G起步(少于32G,GC回收不及时,集群会不定时挂B重启,如果数据量少以及使用率低,请当我放屁),SSD磁盘(建议非SSD磁盘就不要上TIDB了)

部署:采用TIUP

版本:5.4.1(后续会升级到6.1.0)

建议:TIDB相关的组件,就算是工具,也要跟TIDB的版本尽量保持一致

推荐文档(书箱):https://book.tidb.io/session1/chapter1/tidb-architecture.html

部署集群

采用TIUP部署很简单,看看官网文档都可以学会

TIUP安装

curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
tiup --version # 如果安装后执行,没有这个命令,请退出终端重新进

相关文档:https://book.tidb.io/session2/chapter1/tiup-intro.html

cluster安装

tiup install cluster

部署

命令格式

tiup cluster deploy 名称 版本 部署的.yaml文件

.yaml文件

global:
 user: "tidb" # 用户名
 ssh_port: 22 # 端口
 deploy_dir: "/usr/local/tidb" # 系统包统一存放放路径
 data_dir: "/data/tidb" # 数据统一存放路径
 arch: "amd64" # CPU架构

## 注意以下是官网文档,相关的配置
# # - TiDB: https://pingcap.com/docs/stable/reference/configuration/tidb-server/configuration-file/
# # - TiKV: https://pingcap.com/docs/stable/reference/configuration/tikv-server/configuration-file/
# # - PD: https://pingcap.com/docs/stable/reference/configuration/pd-server/configuration-file/
server_configs:
  tidb:
    performance.server-memory-quota: 137438953472 #最大内存用量
    token-limit: 100 #可以同时执行请求的会话数
    mem-quota-query: 536870912 #单个 SQL 语句可用的最大内存(512M)默认是1G
    oom-use-tmp-storage: true # 控制当单个 SQL 语句超过指定的内存配额时是否为某些运算符启用临时存储
    tmp-storage-path: "/data/tidb/tipd_tmp/" #指定当单个 SQL 语句超过指定的内存配额时,某些运算符的临时存储路径(重点)
    max-server-connections: 1000 #TiDB 允许的最大并发客户端连接数。它用于控制资源
    log.slow-threshold: 1000 # 慢日志时间毫秒
  tikv:
    readpool.storage.use-unified-pool: false #存储线程池 是否使用统一的读取线程池
    readpool.coprocessor.use-unified-pool: true #协处理器线程池相关 是否使用统一的读取线程池
    server.grpc-concurrency: 2 #gRPC 工作线程的数量
  pd:
    schedule.leader-schedule-limit: 4
    schedule.region-schedule-limit: 2048
    schedule.replica-schedule-limit: 64

pd_servers:
 - host: 172.18.3.40
   name: pd-1
   deploy_dir: "/usr/local/tidb/pd_servers" # 指定存放路径(最后目录可以不用建,会自动建)
   data_dir: "/data/tidb/pd_servers" # 指定存放路径(最后目录可以不用建,会自动建)
 - host: 172.18.3.41
   name: pd-2
   deploy_dir: "/usr/local/tidb/pd_servers"
   data_dir: "/data/tidb/pd_servers"
 - host: 172.18.3.42
   name: pd-3
   deploy_dir: "/usr/local/tidb/pd_servers"
   data_dir: "/data/tidb/pd_servers"

tidb_servers:
 - host: 172.18.3.40
   deploy_dir: "/usr/local/tidb/tidb_servers"
 - host: 172.18.3.41
   deploy_dir: "/usr/local/tidb/tidb_servers"
 - host: 172.18.3.42
   deploy_dir: "/usr/local/tidb/tidb_servers"

tikv_servers:
 - host: 172.18.3.40
   deploy_dir: "/usr/local/tidb/tikv_servers"
   data_dir: "/data/tidb/tikv_servers"
 - host: 172.18.3.41
   deploy_dir: "/usr/local/tidb/tikv_servers"
   data_dir: "/data/tidb/tikv_servers"
 - host: 172.18.3.42
   deploy_dir: "/usr/local/tidb/tikv_servers"
   data_dir: "/data/tidb/tikv_servers"

tiflash_servers:
 - host: 172.18.3.40
   deploy_dir: "/usr/local/tidb/tiflash_servers"
   data_dir: "/data/tidb/tiflash_servers"
 - host: 172.18.3.41
   deploy_dir: "/usr/local/tidb/tiflash_servers"
   data_dir: "/data/tidb/tiflash_servers"
 - host: 172.18.3.42
   deploy_dir: "/usr/local/tidb/tiflash_servers"
   data_dir: "/data/tidb/tiflash_servers"

grafana_servers:
  - host: 172.18.3.38
    deploy_dir: "/usr/local/tidb/grafana_servers"

monitoring_servers:
  - host: 172.18.3.38
    deploy_dir: "/usr/local/tidb/monitoring_servers"
    data_dir: "/data/tidb/monitoring_servers"

alertmanager_servers:
  - host: 172.18.3.38
    deploy_dir: "/usr/local/tidb/alertmanager_servers"
    data_dir: "/data/tidb/alertmanager_servers"

cdc_servers:
  - host: 172.18.3.38
    gc-ttl: 86400
    data_dir: "/usr/local/tidb/cdc"

安装

tiup cluster deploy tidb-sdk v5.4.1 tidb-sdk.yaml

查看集群列表

tiup cluster list

启动集群

tiup cluster start tidb-sdk

查看集群状态

tiup cluster display tidb-sdk

停止

tiup cluster stop tidb-sdk #停止整个集群
tiup cluster stop tidb-sdk -N 172.18.3.40:4000 # 停止某个组件,需要IP加端口

更新配置

有时候我们会想要动态更新组件的配置,tiup-cluster 为每个集群保存了一份当前的配置,如果想要编辑这份配置,则执行 tiup cluster edit-config <cluster-name>,例如:

tiup cluster edit-config tidb-sdk

然后 tiup-cluster 会使用 vi 打开配置文件供编辑,编辑完之后保存即可。此时的配置并没有应用到集群,如果想要让它生效,还需要执行:

tiup cluster reload tidb-sdk

该操作会将配置发送到目标机器,重启集群,使配置生效。如果只修改了某个组件的配置(比如 TiDB),可以只重启该组件:

tiup cluster reload tidb-sdk -R tidb

其他

tiup cluster --help # 看其他用法

   转载规则


《TIDB集群搭建》 江松泉 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
TIDB的md同步(全量+增量)mysql同步 TIDB的md同步(全量+增量)mysql同步
外题竟然是mysql转TIDB,那么就需要mysql的数据同步到TIDB 通过TIUP进行使用,TIUP如何安装,请看本站的TIDB集群搭建或官方文档 注意:多看官方文档 安装需要二个组件 DM安装 tiup install dm dmct
2022-06-21
下一篇 
主从-从库的表比主库的大,表空间相差过大 主从-从库的表比主库的大,表空间相差过大
背景因为这边公司做数据分析的需求,mysql并不满足数据的速度条件,所有需要先mysql同步到clickhouse,因为同步到clickhouse的压力过大,为了不影响主库,所以采用搭建主从的方式,通过从库进行数据同步,为了保证多个从库同步
2022-02-21
  目录