ptcp考试总结

课程名称:课程版本(101/201/301)+ 课程名称

301

学习时长:

约两周左右。视频 1.5 倍速过一遍,备份迁移和调优章节二刷,课后实验用 tiup playground 起本地环境基本都跑了一遍。

课程收获:

把 BR、Dumpling、Lightning、DM、TiCDC 这条工具链的边界彻底理顺了,以前只认识名字,现在能按“物理还是逻辑、全量还是增量、进还是出”把场景对上号;调优部分把慢 SQL 排查从碰运气变成了有固定套路的流程。

课程内容:

把 BR、Dumpling、Lightning、DM、TiCDC 这条工具链的边界彻底理顺了,以前只认识名字,现在能按“物理还是逻辑、全量还是增量、进还是出”把场景对上号;调优部分把慢 SQL 排查从碰运气变成了有固定套路的流程。

课程内容:

备份恢复和导入导出:

  • BR,物理快照备份/恢复。各 TiKV 并行扫 KV,快;配合日志备份可做 PITR。

  • Dumpling,逻辑导出。mydumper 系,导 SQL/CSV,量小或给异构库用。

  • Lightning,快速灌入大量数据。local 后端物理导入最快,但导入期间目标表不可写;tidb 后端走 SQL,慢但限制少。

  • DM,MySQL 进 TiDB 的迁移+同步。全量+增量一个任务搞定,分库分表合并路由是招牌。

  • TiCDC,TiDB 到下游的增量同步。订阅 KV 变更流,下游 MySQL/Kafka,准实时。

  1. 集群生命周期管理。tiup cluster 的 deploy/upgrade/scale-out/scale-in 一套命令管到底;升级是滚动的,业务基本无感。

  2. 备份恢复与导入导出。BR 的恢复粒度可以到库和表级。

  3. 性能调优。慢 SQL 三板斧:慢日志、Dashboard、statements_summary 表;EXPLAIN 看预估、EXPLAIN ANALYZE 。

  4. 热点处理。Dashboard 热力图先定位;自增主键写热点换 auto_random,非聚簇主键表用 SHARD_ROW_ID_BITS 配合 PRE SPLIT REGIONS 预切分;读热点靠调度均衡和 follower read 分摊。

  5. 监控与排障。Grafana 看大盘(TiDB/TiKV/PD 三套面板的重点指标)、Dashboard 定位单条 SQL 和事务。

学习过程中遇到的问题或延伸思考:

  • 问题 1:Lightning local 后端导入时要切 import 模式、临时暂停 PD 部分调度,一开始没想明白为什么——原因是直接写 SST 再 ingest,中途 Region 被调度搬走就前功尽弃了。知道“为什么”之后这些参数就不会配错。

  • 问题 2:DM 全量和增量的衔接位点(binlog position/GTID)在任务里怎么保证不丢不重,翻了几遍文档才看明白,这块实验跑一次比看文档十遍有用。

  • 延伸思考 1:迁移上 TiDB 之后如果想留一条回退通道,理论上 DM 进来、TiCDC 回去可以搭双向同步,但两边都写的前提下,冲突处理和环路避免要非常小心,值得先在测试环境验证再跟业务提。

  • 延伸思考 2:auto_random 治写热点效果好,但要改表结构,存量表怎么平滑迁移、改造收益怎么按写入压力评估,不同业务答案不一样,不能无脑上。

学习过程中参考的其他资料