1.TiDB 是啥?
TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、兼容 MySQL 5.7 协议和 MySQL 生态等重要特性。目标是为用户提供一站式 OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 解决方案。TiDB 适合高可用、强一致要求较高、数据规模较大等各种应用场景。
值得注意的是,PingCAP这家公司是一家中国公司,所以TiDB属于纯国产数据库,早期TiDB采用Golang语言进行开发,后面又增加了Rust技术栈。作为一款开源分布式关系型数据库,TiDB并不是基于某个开源数据库的源代码魔改的,而是一行行代码码出来的,这是最值得尊敬的地方,能发展到现在,常年霸榜国产数据库第一,着实不容易。
2.PCTA又是啥?
PCTA,全称为PingCAP Certified TiDB Associate,即PingCAP 认证 TiDB 数据库专员,是 PingCAP 对于数据库从业者安装部署及日常运维分布式关系型数据库能力的认证,要求数据库从业者熟练掌握 TiDB 架构原理、安装部署、周边工具等基础知识。证书的样子如下:
3.我为什么要考PCTA?
首先,众所周知,做技术的太卷了🤦♂️,不学不行啊;做开发的天天逼着学新语言新语法,Vue2刚熟悉了,Vue3又来了😭;做数据的就得没完没了的熟悉各个技术栈,从SMP到MPP,再到Hadoop,一刻都不能停歇🍵。
其次呢,也是原动力,作为一名架构师👨🏫,不得不对各种数据库做深入的了解,以在企业项目选型过程中尽量少犯错误🙅♂️,当前已经不是一套Oracle打天下的时代了;有的集成商推荐PostgreSQL,有的集成商推荐MySQL,有的推荐TiDB、openGauss、GBase,如果咱不了解,很容易就被忽悠了。
所所所所所所所以~,还是用考试倒逼学习吧,各位,PCTA免费,快上车吧。
考试报名链接:https://learn.pingcap.com/learner/study-center/exam (再次声明:不推广,选择性点击,不喜勿喷!)
4.合理利用资源,备考1天当晚通过考试
无论有没有数据库从业经验,拿出1个整天的时间来进行课程学习和复习,肯定能顺利通过考试,大家一定要有信心!!!
4.1 可利用的资源
- 301 TiDB 系统管理基础课程 - 大家一定要从头到位认真看完,可以使用最高1.75倍速,否则看不完,中间的一些实验课程可以跳看,抓住老师分享的知识点即可。
- TiDB 官方手册 - 手册最好快速过一遍,标注要点,如果有时间可以回看第二遍,速看手册可以下载PDF版本,这样最有效。
4.2 备考要点汇总
首先大家一定要好好备考,好好看视频301,考过的几率至少50%,如果官方手册看的好,抓住要点,考过的几率在90%以上,考试可以重复进行两次,取最高分,保持好的心态,通过稳的一批!!
考试共分为60道题(共60分),30道单选题,30道多选题,各占一分,总分36分及格。网上没有现成的题库,大家不要想着投机取巧了。下面把考试的一些要点分享给大家,可以参考:
- 分布式关系型数据库设计的六大目标:横向扩展、强一致性(实现RPO=0 RTO若干小)及高可用性、标准SQL与事务模型、云原生、HTAP、生态兼容性
- 硬件、尤其是网络的发展推动了计算与存储分离架构
- TiDB是高度分层的架构:TiKV单节点选择了基于LSM-tree的RocksDB引擎,底层使用kv存储结构,没有使用btree,而是采用lsmtree的索引结构(log structured merge trees)
- 采用Raft复制协议,TiKV采用range分片算法
- TiKV通过在key后面加版本好version的方式来实现MVCC,采用了procelutar事务模型实现了分布式事务
- TiDB没有分表的概念,所有的表结构只存储一份
- TiDB架构:一个包含了计算、存储、调度的高度分层的架构,最细粒度为region
- 行列数据同步:TiFlash以Raft Learner方式接入Multi-Raft组,使用异步方式传输数据,对TiKV产生非常小的负担;当数据同步到TiFlash时,会被从行格式解析为列格式
- TiDB提供基于Prometheus+Grafana和Dashboard两种监控方式,Prometheus方式可以提供告警,Dashboard方式不能提供报警
- TiUP为集群管理工具:可以在一台中控机上统一管理整个TiDB集群,如果集群之间没有提前做好SSH互信,那么使用TiUP时需要指定密码
- TiDB所有组件对硬件要求都较高:只有TiDB Server和监控节点可以使用SAS盘,其他节点均建议采用SSD盘,只有监控节点的网络可以采用千兆网,其他节点均建议采用万兆网
- 操作系统支持:CentOS/Redhat 7.3及以上,Ubuntu 16.04及以上
- TiDB安装要求关闭SWAP,因为TiDB希望数据尽量缓存在内存中
- TiDB启动顺序:PD → TiKV → TiDB → TiFlash,关闭顺序正好相反
- PD数量最少3个(决策要求),TiKV数量最少3个(默认3副本),TiDB测试环境可以1个
- TiDB可以通过增加TiDB Server节点提高并发处理能力,TiDB Server是无状态的
- TiDB不支持MySQL的外键、函数、存储过程、触发器功能
- 系统配置参数要点:一部分存储在TiDB的kv存储中,这些参数不包含TiKV和PD的参数,参数有作用域,部分可以不重启生效,可以通过MySQL客户端进行修改
- 集群配置参数要点:全部都存储在TiDB Server、TiKV和PD的配置文件中,必须重启才生效,没有作用域之说,必须通过TiUP edit-config和TiUP reload进行修改
- TiDB的所有组件都有三种文件:配置文件、日志文件、程序二进制文件
- TiKV节点有数据文件,为真实的客户数据;PD节点也有数据文件,为KV的元数据文件
- TiFlash是4.0版本引入的新特性
- 集群重命名必须重启监控,否则监控中的名字会产生混乱
- 温备份技术用的很少,数据量大要求不停机可以采用BR备份,数据量小要求不停机可以采用Dumpling备份,数据量大可以停机可以采用物理拷贝,要恢复到MySQL或其他数据库可以采用Dumpling备份
- TiDB Binlog在5.0版本上有些功能不支持,性能也一般般;5.0版本推荐使用TiCDC
5.写在最后
至此为止,有关TiDB PCTA考试心得的分享结束,欢迎大家留言交流。如果大家已经完成了PCTA,那么可以着手准备PCTP啦:rose: