外题
为啥这么久了没怎么更新
- 开发了几个运维工具,后续会更新相关文章以及上线github
- 测试并上线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 # 看其他用法