考核⽬目標與要求
PCTP(PingCAP Certified TiDB Professional)是 PingCAP 公司認證 TiDB 數據庫專家的縮寫。PCTP 要求具備管理大型分布式關系型數據庫集群的能力。PCTP 需要學習並熟練掌握 TiDB 的深度原理及高級 Feature、性能調優、SQL 優化、Trouble Shooting 等進階內容。要成為 PCTP 必須先獲得 PCTA 認證。
考試范圍(理論考試 +上機實操考試)
PCTP 高級進階篇 - 理論筆試
考試形式和計分規則:
- 指定考試中心集中進行在線考試;
- 考試時長 75 分鍾,共 70 道題;
PCTP 理論考試范圍:
一、TiDB 計算內核體系
- TiDB Server
- TiDB Server 概覽
- TiDB Server 的啟動、停止
- 對 TiDB Server 啟動有影響的啟動參數和它們的作用
- 怎么知道 TiDB 已經啟動成功了?
- 集群里不同 TiDB 有什么區別?怎么找到 DDL/Stats/GC 的 owner?
- 客戶端連接管理
- 幾種常見的連接方式(客戶端/JDBC)/(TCP/Unix Socket)
- SSL 的配置
- 創建連接時,TiDB 都做了哪些工作?
- 權限管理
- Token Limit 的作用
- TCP Keep Alive 的作用
- prepare/execute 使用不同協議時的區別
- 如何關閉連接
- 常用對外端口
- TiDB Parser
- Parser 基本原理
- Parser 相關問題處理
- 什么樣的錯誤是 Parser 報錯?
- Parser 報錯信息怎么解讀?
- TiDB 關系型模型原理
- TiDB 中表的分類
- 物理表
- Information Schema
mysql
database
- 關系型模型到 KV 的映射關系
- Table Partition
- TiDB Table Partition 的原理
- 支持的 partition 類型
- DML 原理
- 數據寫入原理
- 數據讀取原理
- Misc.
- 幾種不同的 Insert 語句語義區別
- Replace 和 Insert on duplicate 的區別
- 何時檢測沖突?Insert 語句的 lazy check
- 怎么改寫語句讓執行更快?
- DDL 原理
- TiDB DDL 概述
- TiDB drop table,truncate table,add column 等操作原理
- TiDB DDL 問題診斷以及工具
- TiDB Add index 操作原理以及調優
二、TiKV 存儲內核體系
- TiKV 整體架構
- 存儲引擎
- RocksDB 介紹及主要特性
- Column family 介紹
- LSM 原理及優缺點
- Compaction 原理
- RocksDB 數據寫入流程
- Key Value 分離 Titan 的設計與實現
- RocksDB 主要參數介紹
- Raft 復制
- Raft 介紹及主要特性
- Raft 各個角色及內部機制
- Raft 在 TiKV 中的使用
- TiKV 自動分片機制(Region)
- Multi - Raft 設計與實現
- Raft 與 Paxos
- TiKV 中的 Raft 讀寫流程
- Coprocessor
- 算子下推
- 執行引擎模型
- Placement Driver 調度內核體系
- ETCD 原理介紹
- TiKV 元信息及管理
- 節點,region
- 元信息上報流程
- PD 調度算法
- 調度策略解析
- Region 遷移過程
- 如果通過打 label 來增加調度策略
- Region Split、Merge
- 如何通過 pd-ctl 管理集群
三、生態工具原理
- MySQL 數據同步到 TiDB 解決方案
- DM 設計原理
- DM 設計原理
- DM 功能介紹
- DM 數據同步處理單元設計原理
- Relay log 實現原理
- Binlog Replication 同步原理
- Sharding DDL的實現與 checkpoint 機制
- 常見錯誤和異常場景
- 常見問題排查手段(不兼容 DDL 處理,借助 checkpoint 定位同步狀態等)
- 同步異常定位和處理方法(sharding DDL 阻塞,relay-log 異常,同步連接中斷等問題
- TiDB 數據輸出訂閱解決方案
- TiDB-Binlog 實現原理
- TiDB binlog 概覽
- Pump 設計和實現
- Drainer 設計和實現
- Binlog 運維
- pump/drainer 下線
- Binlog 日志和監控詳解
- 常見的問題和處理手段
- TiDB 數據物理加載解決方案
- Background
- Why TiDB Lightning was created
- Characteristics of TiDB Lightning
- Import Process
- Import mode
- Core import process (Lightning, Importer)
- Post-process (Checksum, Analyze, Auto-inc ID)
- Deployment
- Hardware requirement
- Configurations
- Extra Features
- Table filter
- Checkpoints
- Monitoring
- Introducing Grafana panels
四、事務
- 數據庫事務概述
- 事務概念介紹
- OCC
- 常見主流數據庫的事務隔離級別及其行為介紹(MySQL、Postgres、CockroachDB)
- TiDB 支持的事務隔離級別及其行為介紹
- MySQL Repeatable Read 與 TiDB 的區別
- 兩階段提交
- 分布式事務原理
- Percolator 的原理
- 簡介
- 寫入過程
- 讀取過程
- TiDB 事務原理
- TiDB 怎么寫入
- TiDB 怎么讀取
- TiDB 如何清理鎖
- TiDB 事務處理
- SQL 事務
- 事務啟動
- 事務中的DML
- 語句提交和回滾
- 事務提交和回滾
- 常見提交錯誤
- 寫沖突處理
- 讀寫沖突處理
- 網絡超時處理
- 事務重試處理
- 事務重試問題和實現
- 重試行為控制
- 重試相關日志和監控
- select for update 處理
- TiDB 和其他數據庫處理區別
- 處理 can not retry select for update
五、系統性能優化
- TiDB Server 性能相關原理
- TiDB 常見系統負載
- 讀、寫后台處理流程及主要性能瓶頸
- 讀熱點及解決思路
- 寫熱點及解決思路
- TiDB Server 性能相關監控
- 主要的性能相關參數
- TiKV 性能相關原理
- 寫入瓶頸分析和優化
- 數據在 TiKV 中的讀取流程及常見瓶頸
- 讀取瓶頸分析和優化及常見瓶頸
- RocksDB 性能優化
- RocksDB 主要的性能相關參數
- 集群系統負載
- 常見 OS 負載處理
- 性能定位 trace
- 常見性能優化 Case study
- Sysbench 壓測演練
- 讀熱點定位和處理演練
- 寫熱點定位和處理演練
- 慢查詢定位和處理演練
- 其他瓶頸定位演練
六、SQL 優化
- 查詢優化器原理
- TiDB Logical Optimization,列舉現有的優化規則
- TiDB Physical Optimization,舉例講解物理優化過程中的 task type, expected row count, data order 等等物理屬性
- TiDB Ranger:Filter 條件如何構造成 Key Ranges
- TiDB Plan Cache for Prepared statements
- TiDB Statistics
- 直方圖和 CM-Sketch 詳細介紹,Selectivity 估算原理
- Analyze Table 語句如何更新直方圖和 CM-Sketch
- Query Feedback 工作原理
- TiDB Execution Engine
- Chunk 和 TiDB 向量化執行引擎原理介紹
- TiDB 的表達式計算:向量化原理+SQL Mode Behaviors
- 表關聯算法
- Hash Join, Merge Join
- Index Join, NestedLoopApply
- 其他算子
- TiDB 的 Aggregate 算法:Hash Aggregate, Stream Aggregate
- TIDB 的 Readers:IndexReader, TableReader, IndexLookupReader
- TiDB Insert/Update/Delete/Replace implementations
- DistSQL 中 Cop 請求如何發送的,CopIterator 如何工作的
- Elastic OLTP&OLAP, Batch Size Control
- SQL 執行計划
- 如果查看執行計划
- 執行計划解讀
- CBO 模型
- 驅動表
- 數據尋址算法
- 索引原理
- 索引使用
- SQL 優化實踐
七、高可用及容災
- 高可用與思考(誤區)
- 基於 Raft 協議高可用(組件特性)
- 基於 Binlog 數據備份同步架構
- 高可用實操
PCTP 高級進階篇 - 上機實操考試
考試形式和計分規則:
- 指定考試中心集中上機考試,指定用機和雲環境
- 考試時長 90 分鍾
- 主要考核針對不同場景進行系統調優、SQL 優化、Trouble Shooting 等操作,強調解決問題的能力
- 考試期間需要將過程命令行及結果截圖復制在指定文檔上;考試期間對操作步驟進行錄屏
考試環境:
- 官方考試用機為 UCloud 雲環境 8-9 台 CPU:2C,內存:4G,磁盤:50G
考試題目舉例:
TiKV 損壞場景恢復
場景:模擬多數 TiKV 損壞場景的 TiDB 集群恢復操作,在一套正常運行的集群下,手動刪除其中兩個 TiKV 部署目錄、kill tikv-server 進程,進行災難恢復
要求:寫下具體操作步驟,並將命令返回的結果截圖