0
0
0
0
博客/.../

平凯数据库敏捷模式 3 节点尝鲜:降本明显,弹性与性能适配多行业需求

 guitarsoft  发表于  2025-10-15

一、前言

1.1 简介

从事数据库行业10多年,接触过oracle,mysql,postgres,tidb,oceanbase,达梦,金仓,gbase,神通,海量......

1.2 目前遇到的数据库挑战

国产化目前遇到的主要难题是海量数据不停应用迁移。

1.3 参加活动的原因

不断的学习,这篇文章也是机缘巧合下试用平凯数据库敏捷模式beta版。

1.4 敏捷模式的体验总结

平凯数据库敏捷模式优势显著。依托 TEM 工具,部署运维极简,分钟级完成集群搭建与扩缩容,降低了使用门槛,小白也能很轻松的部署。高度兼容 MySQL,迁移无需大幅改码,在线 DDL 秒级完成且不影响业务。存储压缩比近 3:1,降本明显,三节点架构保障 RPO=0、RTO<30s 的高可用,弹性与性能适配多行业需求。

1.5 备注

操作系统内核参数调优等部分省略,仅供学习。

1.6 借鉴

文档部分类容借鉴了平凯数据库敏捷模式单机版。

https://tidb.net/blog/eec39a56?_gl=1*5h25u5*_ga*OTA3MTgwNDQ4LjE3MjE5MDkxODI.*_ga_D02DELFW09*czE3NjA0MDMyNDAkbzM1JGcxJHQxNzYwNDAzNzkwJGoyMSRsMC

二、TEM快速部署安装

Step 1:准备机器等相关软硬件配置规划

node131 rocky8.10 8C16G tem

node132 rocky8.10 8C16G tidb + pd + tikv + tiup

node133 rocky8.10 4C8G tidb + pd + tikv + prometheus

node134 rocky8.10 4C8G tidb + pd + tikv + grafana

Step 2:下载 TEM 安装包

TEM 安装包下载(60 天有效):

链接:https://b074i8auiu2.feishu.cn/wiki/T3pIwBDSZiikIWkGccycj5yOnyb

Step 3:部署 TEM

1、node131 解压安装包

tar -xvf tem-amd64.tar

cd tem-package-v3.1.0-linux-amd64/

mkdir -pv /data/{tem-deploy,tem-data}

mkdir -pv /data/{tidb-deploy,tidb-data}

2、配置文件修改

修改config.yaml, metadb_topology.yaml文件:

cat > config.yaml << EOF
global:
  user: "tidb"
  group: "tidb"
  ssh_port: 22
  deploy_dir: "/data/tem-deploy"
  data_dir: "/data/tem-data"
  arch: "amd64"
  log_level: "info"
  enable_tls: false                # 是否开启TLS验证,开启后如果不配置证书密钥,则会生成自签证书和密钥

server_configs: # 这⾥指定 tem 节点的全局配置
  tem_servers:
  # 填写 metadb 配置的套接字,若配置了多个元数据库的地址,应以逗号分隔且确保⽆空格
    db_addresses: "192.168.86.131:4000"     
    db_u: "root"                   # 若由 tem 辅助创建的元数据库,请使⽤ root ⽤户
    db_pwd: ""                     # 若由 tem 辅助创建的元数据库,请使⽤空密码
    db_name: "test"                # 若由 tem 辅助创建的元数据库,请使⽤ test 数据库
    log_filename: "/data/tem-deploy/tem-server-8080/log/tem.log"
    log_tem_level: "info"
    log_max_size: 300
    log_max_days: 0
    log_max_backups: 0
    external_tls_cert: ""         # tem 对外使用的tls证书
    external_tls_key: ""          # tem 对外使用的tls密钥
    internal_tls_ca_cert: ""      # tem 内部节点间双向验证使用的tls证书
    internal_tls_cert: ""         # tem 内部节点间双向验证使用的tls证书
    internal_tls_key: ""          # tem 内部节点间双向验证使用的tls证书

tem_servers:
   - host: "192.168.86.131"       # 请填写 tem 节点的实际地址
     port: 8080
     mirror_repo: true            # 是否开启镜像仓库,多个TEM节点时,有且仅有一个节点开启
EOF

cat > metadb_topology.yaml << EOF
global:
  user: "tidb"
  ssh_port: 22
  deploy_dir: "/data/tidb-deploy"
  data_dir: "/data/tidb-data"
  arch: "amd64"

pd_servers:
  - host: 127.0.0.1

tidb_servers:
  - host: 127.0.0.1
    port: 4000

tikv_servers:
  - host: 127.0.0.1
EOF

3、安装部署并验证

直接执行 sh install. sh 安装脚本:

sudo ./install.sh

http://192.168.86.131:8080/login

用户admin默认密码admin

su - tidb
source /home/tidb/.bash_profile
TIUP_HOME=/data/tem-deploy/.tem tiup tem display tem-servers
------------------------------------------------------------------------------------------------------------------------------
tiup is checking updates for component tem ...
Starting component `tem`: /data/tem-deploy/.tem/components/tem/v3.1.0/tiup-tem display tem-servers
Cluster type:       tem
Cluster name:       tem-servers
Cluster version:    v3.1.0
Deploy user:        tidb
SSH type:           builtin
WebServer URL:
ID                   Role        Host            Ports  OS/Arch       Status  Data Dir                        Deploy Dir
--                   ----        ----            -----  -------       ------  --------                        ----------
192.168.86.131:8080  tem-server  192.168.86.131  8080   linux/x86_64  Up      /data/tem-data/tem-server-8080  /data/tem-deploy/tem-server-8080
Total nodes: 1
------------------------------------------------------------------------------------------------------------------------------


三、平凯数据库敏捷模式

链接:https://b074i8auiu2.feishu.cn/wiki/T3pIwBDSZiikIWkGccycj5yOnyb

Step 1:配置凭证

设置 -> 凭证 -> 主机 -> 添加凭证 为要添加的主机配置ssh的密码凭证

Step 2:下载敏捷模式安装包,进行组件管理

设置 -> 组件管理 -> 添加组件 上传 amd64.zip解压后的tidb-ee-server-v7.1.8-5.2-20250630-linux-amd64.tar.gz 与 tidb-ee-toolkit-v7.1.8-5.2-20250630-linux-amd64.tar.gz

Step 3:配置中控机

主机 集群管理中控机 添加中控机器 192.168.86.132

Step 4:配置集群主机

主机 -> 主机 -> 添加共享主机 192.168.86.132 192.168.86.133 192.168.86.134

Step 5:创建集群

集群 -> 创建集群

Step 6:调整下平凯数据库敏捷模式全局变量(建议)

完成平凯数据库敏捷模式部署后,在 TEM SQL 编辑器或使用 MySQL 客户端连接平凯数据库敏捷模式输入以下命令:

set global tidb_runtime_filter_mode=LOCAL;
set global tidb_opt_enable_mpp_shared_cte_execution=on;
set global tidb_rc_read_check_ts=on;
set global tidb_analyze_skip_column_types="json,blob,mediumblob,longblob,mediumtext,longtext";
set global tidb_enable_collect_execution_info=off;
set global tidb_enable_instance_plan_cache=on;
set global tidb_instance_plan_cache_max_size=2GiB;
set global tidbx_enable_tikv_local_call=on;
set global tidbx_enable_pd_local_call=on;
set global tidb_schema_cache_size=0;

-- 是否持久化到集群:否,仅作用于当前连接的 TiDB 实例
set global tidb_enable_slow_log=off;

集群创建完毕

中控机TIUP

企业微信截图_17604249456318.png

拓扑结构

企业微信截图_1760423853254.png

SQL编辑器

企业微信截图_17604239401938.png

MySQL 兼容性 DM迁移Mysql

# install
tiup dm template > /home/tidb/dmtopology.yaml

# 配置文件
vi /home/tidb/dmtopology.yaml
global:
  user: "tidb"
  ssh_port: 22
  deploy_dir: "/home/tidb/dm-deploy"
  data_dir: "/home/tidb/dm-data"

master_servers:
 - host: 172.16.156.88
 - host: 172.16.156.168
 - host: 172.16.156.230

worker_servers:
 - host: 172.16.156.88
 - host: 172.16.156.168
 - host: 172.16.156.230

monitoring_servers:
 - host: 172.16.157.54

grafana_servers:
 - host: 172.16.157.55

alertmanager_servers:
 - host: 172.16.157.56

# 部署
tiup dm deploy dmtest v6.5.0 ./dmtopology.yaml --user tidb -p

# 启动
tiup dm start dmtest

# 关闭
tiup dm stop dmtest

# 开机自启 禁用启用
tiup dm disable dmtest
tiup dm enable dmtest

# 查看集群
tiup list dm-master
tiup dm display dmtest

# 扩容 缩容
tiup dm scale-out dmtest xxx.yaml -uroot -p
tiup dm scale-in dmtest -N 172.16.156.240:8286


# dmctl
tiup dmctl:v6.5.0 --master-addr=172.16.156.88:8261 

# 密码加密
tiup dmctl --encrypt '密码'

# mysql    server_id a    binlog on    compatibity_56 on





# 从小数据量 MySQL 迁移数据到 TiDB

# 1 创建数据源 唯一命名,不可重复。

vi source_mysql_101_mylims_xxx.yaml
source-id: "mysql_101_mylims_xxx"

# DM-worker 是否使用全局事务标识符 (GTID) 拉取 binlog。使用前提是上游 MySQL 已开启 GTID 模式。若上游存在主从自动切换,则必须使用 GTID 模式。
enable-gtid: true

from:
  host: "172.16.156.101"         # 例如:172.16.156.101
  user: "root"
  password: "密码"             # 支持但不推荐使用明文密码,建议使用 dmctl encrypt 对明文密码进行加密后使用
  port: 3306
  
tiup dmctl --master-addr 172.16.156.88:8261 operate-source create source1.yaml
tiup dmctl --master-addr 172.16.156.88:8261 get-config source source1.yaml
tiup dmctl --master-addr 172.16.156.88:8261 operate-source show


# 2 创建迁移任务
vi task_mysql_101_mylims_xxx.yaml
# 任务名,多个同时运行的任务不能重名。
name: "task_mysql_101_mylims_xxx"
# 任务模式,可设为
# full:只进行全量数据迁移
# incremental: binlog 实时同步
# all: 全量 + binlog 迁移
task-mode: "all"
# 下游 TiDB 配置信息。
target-database:
  host: "172.16.156.168"                   # 例如:172.16.10.83
  port: 4000
  user: "root"
  password: "roottidb"                     # 支持但不推荐使用明文密码,建议使用 dmctl encrypt 对明文密码进行加密后使用

# 当前数据迁移任务需要的全部上游 MySQL 实例配置。
mysql-instances:
-
  # 上游实例或者复制组 ID。
  source-id: "mysql_101_mylims_bjyj"
  # 需要迁移的库名或表名的黑白名单的配置项名称,用于引用全局的黑白名单配置,全局配置见下面的 `block-allow-list` 的配置。
  block-allow-list: "listA"


# 黑白名单全局配置,各实例通过配置项名引用。
block-allow-list:
  listA:                              # 名称
    do-tables:                        # 需要迁移的上游表的白名单。
    - db-name: "mylims_bjyj"          # 需要迁移的表的库名。
      tbl-name: "test_table"          # 需要迁移的表的名称。
	  

# 3 启动任务	  
tiup dmctl --master-addr 172.16.156.88:8261 check-task task_mysql_101_mylims_bjyj.yaml
tiup dmctl --master-addr 172.16.156.88:8261 start-task task_mysql_101_mylims_bjyj.yaml

# 4 查看任务状态
tiup dmctl --master-addr 172.16.156.88:8261 query-status task_mysql_101_mylims_bjyj

# 5 暂停任务
tiup dmctl --master-addr 172.16.156.88:8261 pause-status task_mysql_101_mylims_bjyj

# 6 恢复任务
tiup dmctl --master-addr 172.16.156.88:8261 resume-status task_mysql_101_mylims_bjyj

# 7 停止任务
tiup dmctl --master-addr 172.16.156.88:8261 stop-task task_mysql_101_mylims_bjyj.yaml





经过验证,99.99%都能同步过来。

三、平凯数据库敏捷模式优势 & 体验总结

1. 所在行业哪些场景会建议用敏捷模式

基于试用体验,在主数据与实验室检验检测领域,以下场景适合使用 TiDB 敏捷模式:

  1. 实验室检验检测7X24小时不间断写入的采集系统: 敏捷模式内置的高可用能力是巨大优势。
  2. 主数据模型变更频繁即DDL: 在线 DDL 能极大的提升系统效率。

2. 敏捷模式整体体验总结

平凯数据库敏捷模式优势显著。依托 TEM 工具,部署运维极简,分钟级完成集群搭建与扩缩容。高度兼容 MySQL,迁移无需大幅改码,在线 DDL 秒级完成且不影响业务。存储压缩比近 3:1,降本明显,三节点架构保障 RPO=0、RTO<30s 的高可用,弹性与性能适配多行业需求。

因技术水平有限,以上如有不当之处,请大家指正!感谢!

0
0
0
0

版权声明:本文为 TiDB 社区用户原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接和本声明。

评论
暂无评论