如何学习PTCP认证

好消息,通过本次免费的活动,我也通过PTCP认证考试,获得了PTCP认证证书,距离上次PTCA获取认证已经快4年了吧,回想起来第一次由oracle转国产分布式数据库的基础知识还是tidb给的,现在虽然没从事tidb相关工作,但是想学习更多国产分布式数据库技术,本次很好的准备,这个是我收罗的PTCP认证的知识点学习,也正是按照这个大纲来学习应考,并且系统学习了下TIDB相关技术知识,分享给大家,希望对大家有帮助。

一、TiDB 集群管理(40%)—— 重中之重

表格

考点 核心内容 易错点
TiUP 部署与运维 tiup cluster deploy / start / stop / scale-out / scale-in / upgrade / patch 命令及参数;拓扑文件 YAML 格式(global、server_configs、tidb_servers 等字段) scale-in 对 TiKV 是下线下线,对 TiDB 只是移除;升级前必须检查 tiup cluster check
滚动升级 升级顺序:PD → TiKV → TiDB → TiFlash;升级过程中 Region Leader 迁移机制;upgrade --offline 与在线升级区别 在线升级期间 QPS 会抖动,因为 Leader 需要迁移
扩容缩容 TiKV 扩容后 Region 自动 rebalance;缩容 TiKV 前需先 tiup cluster scale-in 并等待数据迁移完成(store 状态变为 Tombstone) 缩容 TiKV 时不能直接杀进程,必须通过 TiUP 操作
参数调优 tidb_mem_quota_query(单条 SQL 内存限制)、tidb_server_memory_limit(TiDB 实例内存上限)、TiKV rocksdb / raftdb 参数、coprocessor.region-split-size 参数作用层级:全局 vs 会话级别;修改后是否需重启
Runaway Query v6.x 引入的自动识别与资源管控机制;识别条件(执行时间、内存、扫描行数);处置动作(Kill、Move to Background、Switch to Background) 与手动 KILL 的区别;与 Resource Control 的关系
监控告警 Grafana 关键 Dashboard:Overview、TiDB-Summary、TiKV-Details、PD;核心指标:QPSDurationCoprocessor Cache HitRegion HealthStore LimitLeader Balance 热点问题看 TiKV-Details → Hot Read/Write;慢查询看 TiDB-Summary → Duration
权限与安全 TiDB 用户权限体系与 MySQL 兼容;CREATE USERGRANTROLE;TLS 加密传输配置;审计日志 TiDB 暂不支持部分 MySQL 权限(如 column-level)
会话管理 SHOW PROCESSLISTKILLtidb_snapshot(历史数据读取)、tidb_enable_chunk_rpc KILL 在 TiDB 中可能杀的是连接 ID,与 MySQL 行为一致

二、备份与恢复(20%)

表格

考点 核心内容 易错点
BR 原理 基于 MVCC + SST 文件直接备份 TiKV 数据;支持全量 + 增量;备份到 S3/NFS/本地 BR 直接读 TiKV,不经过 TiDB SQL 层;对集群有性能影响,建议在业务低峰执行
BR 命令 br backup full / db / tablebr restore;关键参数:--ratelimit--compression--checksum --ratelimit 限制速度,防止影响业务
快照备份 基于 tidb_snapshot 或 Dumpling 逻辑备份;适用小数据量、跨版本迁移 快照备份是逻辑导出,BR 是物理备份
恢复场景 全集群恢复、单库恢复、单表恢复、Point-in-Time Recovery (PITR) PITR 需要日志备份(v6.1+),结合 BR 全量 + TiCDC / log backup
备份策略 全量周期 + 增量/日志备份;存储选择(S3 推荐);备份校验 备份后务必做 checksum 校验

三、数据迁移与同步(20%)—— 工具选型是核心陷阱

表格

工具 适用场景 不适用场景 常见故障
TiDB Lightning 全量数据导入(MySQL → TiDB),大数据量(TB 级),支持逻辑/物理导入模式 增量同步、实时同步 checksum 失败(数据不一致)、磁盘空间不足、Region 分裂过多
DM (Data Migration) MySQL → TiDB 的持续增量同步;支持分库分表合并(Sharding) 非 MySQL 数据源、TiDB → MySQL 主从切换后 binlog position 丢失、DDL 兼容问题、自增主键冲突(分库分表场景)
TiCDC TiDB → 下游(MySQL/Kafka/Storage)的实时变更同步;支持 PITR、异地灾备 全量初始化(需配合 Dumpling/Lightning) Changefeed 卡住(GC safepoint 超过)、下游写入延迟、DDL 同步异常
sync-diff-inspector 上下游数据一致性校验 不能用于同步,只能校验 大数据量校验慢;分库分表场景配置复杂

高频陷阱题

  • “MySQL 分库分表合并到 TiDB” → 选 DM

  • “TiDB 实时同步到 Kafka 做数据分析” → 选 TiCDC

  • “TB 级历史数据一次性导入 TiDB” → 选 Lightning(物理模式)

  • “验证迁移后数据是否一致” → 选 sync-diff-inspector


四、高可用与故障处理(20%)

表格

考点 核心内容
Raft 协议 Leader 选举、日志复制、多数派(majority)原则;TiKV 中一个 Region 默认 3 副本(1 Leader + 2 Follower)
PD 调度 Region 调度(balance-region、balance-leader)、热点调度、副本补全、Store Limit 控制;pd-ctl 常用命令
组件故障 TiDB 是无状态节点,故障不影响数据;TiKV 单节点故障靠 Raft 多数派保证可用;PD 奇数节点部署(3/5),Leader 选举
网络分区 少数派分区 → 无法写入但可读取旧数据;多数派分区 → 正常服务;脑裂防护靠 Raft
OOM 排查 看 Grafana TiDB-Summary → Memory Usage;常见原因:大查询、大事务、统计信息加载、连接数过多
热点问题 写热点:自增主键、时间戳前缀索引;读热点:小表全表扫描;解决:SHARD_ROW_ID_BITS、AUTO_RANDOM、分区表、Scatter Region
DDL 机制 TiDB 在线 DDL(async / sync / none 模式);ADMIN SHOW DDL JOBS;DDL Owner 在 TiDB 节点间选举;大表加索引可能慢
事务与 MVCC Percolator 分布式事务模型;乐观锁 vs 悲观锁(默认);tidb_txn_mode;MVCC 版本清理由 GC 负责(tikv_gc_life_time
SQL 执行计划 EXPLAIN / EXPLAIN ANALYZE;关注 cop[tikv] vs root 任务;索引选择、统计信息过期(ANALYZE TABLE

总结的很好。

认真学习,认真学习