TiDB 简单集群部署拓扑文件

TiDB集群部署

都2024了还在为分库分表烦恼吗😘,用分布式数据库TiDB、OceanBase、华为 GaussDB,你就使劲往里存数据。
早下班、少脱发、脱单! 🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻

服务器环境

以下配置单表2亿数据无压力,集群节点越多性能越强
部署目标集群结构:

TiDB 3个节点
TiKV 3个节点
PD 3个节点
CDC 3个节点
TiFlash 1个节点
TiProxy 1个节点

  • 服务器-1 (193.0.18.174)
    CPU核心:24 核
    内存:128 GB
    磁盘:1 TB
    系统:openEuler 22.03 LTS
  • 服务器-2 (193.0.18.144)
    CPU核心:16 核
    内存:32 GB
    磁盘:1 TB
    系统:openEuler 22.03 LTS
  • 服务器-3 (193.0.18.144)
    CPU核心:16 核
    内存:32 GB
    磁盘:1 TB
    系统:openEuler 22.03 LTS

部署拓扑

# # Global variables are applied to all deployments and used as the default value of
# # the deployments if a specific deployment value is missing.
global:
 user: "root"
 ssh_port: 22
 deploy_dir: "/data/tidb-deploy"
 data_dir: "/data/tidb-data"
 log_dir: "/data/tidb-log"

# # Monitored variables are applied to all the machines.
monitored:
 node_exporter_port: 9100
 blackbox_exporter_port: 9115

server_configs:
 tidb:
   instance.tidb_slow_log_threshold: 300
 tikv:
   readpool.storage.use-unified-pool: false
   readpool.coprocessor.use-unified-pool: true
 pd:
   replication.enable-placement-rules: true
   replication.location-labels: ["host"]
 tiflash:
   logger.level: "info"

pd_servers:
 - host: 193.0.18.174
   client_port: 23326
   deploy_dir: "/data/tidb-deploy/pd-23326"
   data_dir: "/data/tidb-data/pd-23326"
   log_dir: "/data/tidb-deploy/pd-23326/log"
 - host: 193.0.18.144
   client_port: 23326
   deploy_dir: "/data/tidb-deploy/pd-23326"
   data_dir: "/data/tidb-data/pd-23326"
   log_dir: "/data/tidb-deploy/pd-23326/log"
 - host: 193.0.18.145
   client_port: 23326
   deploy_dir: "/data/tidb-deploy/pd-23326"
   data_dir: "/data/tidb-data/pd-23326"
   log_dir: "/data/tidb-deploy/pd-23326/log"      

tidb_servers:
 - host: 193.0.18.174
   port: 4000
   status_port: 10080
   deploy_dir: "/data/tidb-deploy/tidb-4000"
   log_dir: "/data/tidb-deploy/tidb-4000/log"

 - host: 193.0.18.144
   port: 4000
   status_port: 10080
   deploy_dir: "/data/tidb-deploy/tidb-4000"
   log_dir: "/data/tidb-deploy/tidb-4000/log"

 - host: 193.0.18.145
   port: 4000
   status_port: 10080
   deploy_dir: "/data/tidb-deploy/tidb-4000"
   log_dir: "/data/tidb-deploy/tidb-4000/log"

tikv_servers:
 - host: 193.0.18.174
   port: 20160
   status_port: 20180
   deploy_dir: "/data/tidb-20160-deploy/tikv-20160"
   data_dir: "/data/tidb-20160-data/tikv-20160"
   log_dir: "/data/tidb-20160-deploy/tikv-20160/log"
   config:
     server.labels: { host: "logic-host-1" }

 - host: 193.0.18.144
   port: 20161
   status_port: 20181
   deploy_dir: "/data/tidb-20161-deploy/tikv-20161"
   data_dir: "/data/tidb-20161-data/tikv-20161"
   log_dir: "/data/tidb-20161-deploy/tikv-20161/log"
   config:
     server.labels: { host: "logic-host-2" }

 - host: 193.0.18.145
   port: 20162
   status_port: 20182
   deploy_dir: "/data/tidb-20162-deploy/tikv-20162"
   data_dir: "/data/tidb-20162-data/tikv-20162"
   log_dir: "/data/tidb-20162-deploy/tikv-20162/log"
   config:
     server.labels: { host: "logic-host-3" }

cdc_servers:
  - host: 193.0.18.174
    port: 8300
    deploy_dir: "/data/tidb-deploy/cdc-8300"
    data_dir: "/data/tidb-data/cdc-8300"
    log_dir: "/data/tidb-deploy/cdc-8300/log"

  - host: 193.0.18.144
    port: 8301
    deploy_dir: "/data/tidb-deploy/cdc-8301"
    data_dir: "/data/tidb-data/cdc-8301"
    log_dir: "/data/tidb-deploy/cdc-8301/log"

  - host: 193.0.18.145
    port: 8302
    deploy_dir: "/data/tidb-deploy/cdc-8302"
    data_dir: "/data/tidb-data/cdc-8302"
    log_dir: "/data/tidb-deploy/cdc-8302/log"

tiflash_servers:
 - host: 193.0.18.174
   data_dir: "/data/tidb-9000-data/tiflash-9000"
   log_dir: "/data/tidb-9000-deploy/tiflash-9000/log"
   deploy_dir: "/data/tidb-9000-deploy/tiflash-9000"

tiproxy_servers:
 - host: 193.0.18.174
   port: 13306

monitoring_servers:
 - host: 193.0.18.174
   ng_port: 12020

grafana_servers:
 - host: 193.0.18.174

### 如何部署 TiDB 集群 #### 使用 TiUP 工具部署 TiDB 集群 TiUP 是一种现代化的工具集合管理器,用于简化 TiDB 的安装和运维过程。以下是基于 TiUP 部署 TiDB 集群的关键步骤: 1. **安装 TiUP 和 Cluster 组件** 安装 TiUP 并初始化环境变量后,可以通过以下命令安装 `tiup-cluster` 组件[^1]: ```bash curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh tiup install cluster ``` 2. **创建集群拓扑文件** 创建一个 JSON 格式的拓扑文件来定义节点角色及其对应的机器地址。例如: ```json { "pd": [ {"host": "192.168.0.1"}, {"host": "192.168.0.2"} ], "tikv": [ {"host": "192.168.0.3"}, {"host": "192.168.0.4"} ], "tidb": [ {"host": "192.168.0.5"}, {"host": "192.168.0.6"} ] } ``` 这里分别指定了 PD(Placement Driver)、TiKV 和 TiDB 节点的角色分布。 3. **初始化并部署集群** 初始化集群配置并通过指定拓扑文件完成部署操作: ```bash tiup cluster deploy tidb-test v6.5.0 /path/to/topology.yaml --user root -p tiup cluster start tidb-test ``` 上述命令会根据版本号 `v6.5.0` 和路径中的拓扑文件 `/path/to/topology.yaml` 来部署名为 `tidb-test` 的集群,并启动它。 4. **验证集群状态** 验证已部署TiDB 集群是否正常工作: ```bash tiup cluster display tidb-test tiup cluster health tidb-test mysql -h 192.168.0.5 -P 4000 -u root ``` --- #### 结合 Kubernetes (KubeSphere) 部署 TiDB 对于云原生场景下的分布式数据库需求,可以利用 KubeSphere 提供的功能快速部署 TiDB 集群[^2]。 1. **启用多集群联邦功能** 如果希望实现跨区域高可用,则可以在 KubeSphere 中开启多集群支持,并将 TiDB 的组件副本分发至不同的物理或逻辑集群上。 2. **使用 Helm Chart 或 Operator 自动化部署** 借助官方提供的 TiDB Operator,在 Kubernetes 环境下能够轻松实现声明式管理和动态扩展能力。具体流程如下: - 添加仓库源; - 编辑 values 文件调整参数设置; - 执行安装指令。 示例代码片段展示如何引入资源清单文件: ```yaml apiVersion: pingcap.com/v1alpha1 kind: TidbCluster metadata: name: basic-tidb-cluster spec: pd: replicas: 3 tikv: replicas: 3 tidb: replicas: 2 ``` 3. **监控与维护** 利用 Prometheus/Grafana 对整个系统的性能指标进行持续跟踪分析;同时借助 Backup & Restore 插件保障数据安全备份恢复机制的有效性。 --- #### 公有云/私有云上的自动化解决方案 为了进一步降低复杂度提升效率,PingCAP 推出了专门针对云端优化的产品——TiDB Cloud[^3] 。用户无需关心底层基础设施细节即可享受到完全托管的服务体验,只需简单几步就能构建起生产级别的 HTAP 数据平台实例。 ```python import pymysql connection = pymysql.connect( host='your-host', port=4000, user='root', password='', database='' ) cursor = connection.cursor() cursor.execute('SHOW DATABASES;') print(cursor.fetchall()) ``` 上述 Python 脚本演示了连接到远程 TiDB Server 后查询现有库列表的过程。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZuuuuYao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值