1.下列功能是由 TiKV 或 TiFlash 实现的为?( 选 2 项 )
A. 根据集群中 Region 的信息,发出调度指令
B. 对于 OLAP 和 OLTP 进行业务隔离
C. 将关系型数据转化为 KV 存储进行持久化
D. 将 KV 存储转化为关系型数据返回给客户端
E. 配合 TiDB Server 生成事务的唯一 ID
F. 副本的高可用和一致性
学生答案: B. 对于 OLAP 和 OLTP 进行业务隔离 、 F. 副本的高可用和一致性
2.关于 TiKV 或 TiDB Server,下列说法不正确的是?
A. 数据被持久化在 TiKV 的 RocksDB 引擎中
B. 对于老版本数据的回收(GC),是由 TiDB Server 在 TiKV 上完成的
C. 两阶段提交的锁信息被持久化到 TiDB Server 中
D. Region 可以在多个 TiKV 节点上进行调度,但是需要 PD 节点发出调度指令
正确答案: C. 两阶段提交的锁信息被持久化到 TiDB Server 中
1.下列哪些模块直接与 TiDB 的事务处理有关?( 选 2 项 )
A. KV
B. Parse
C. Schema load
D. Transaction
E. GC
F. start job
正确答案: A. KV 、D. Transaction
2.关于关系型数据与 KV 的转化,下列说法不正确的是?
A. 如果没有定义主键,key 中包含 RowID,Index ID 和 Table ID,都是 int64 类型
B. Table ID 在整个集群内唯一
C. 如果定义了主键,那么将使用主键作为 RowID
D. 不需要为每张表指定主键
正确答案: C. 如果定义了主键,那么将使用主键作为 RowID
Lesson 03:TiKV
1.下列属于 TiKV 相关功能的是?( 选 4 项 )
A. 系统参数和元数据信息的持久化
B. 产生 TSO
C. 分布式事务实现
D. MVCC
E. 生成物理执行计划
F. 表统计信息的持久化
正确答案: A. 系统参数和元数据信息的持久化 、C. 分布式事务实现 、D. MVCC 、F. 表统计信息的持久化
2.关于 TiKV 数据持久化,下列说法不正确的是?
A. RocksDB 有 2 个实例,分别用来持久化 raft log 和 key value 数据
B. RocksDB 中 WAL 用来保证写不丢失
C. 对于删除操作,只需要在原 key value 数据上标记已删除即可
D. RocksDB 中,除了 Level 0 层的数据,其他 Level 都是单一排序持久化的
正确答案: C. 对于删除操作,只需要在原 key value 数据上标记已删除即可
Lesson 04:PD
1.
下列关于 PD(Placement Driver)架构和功能正确的是?
A. 访问 PD 集群中的任何一个节点都可以获得 TSO
B. TiKV 会周期性地向 PD 上报状态
C. PD 会周期性地查询 TiKV 的状态,不需要 TiKV 上报,目的是为了高效
D. PD 的调度功能只能平衡 region 的分布,无法对 leader 进行调度
正确答案: B. TiKV 会周期性地向 PD 上报状态
- 关于 label ,下列说法不正确的是?
A. label 的本质是个调度系统,可以人为控制 region 副本的存放位置
B. label 需要在 PD 和 TiKV 上进行配置
C. isolation-level 要和数据中心(DC)对应,这样可以获得最大的可用性
D. 如果某个 region 的所有副本不可用,有可能造成整个 TiDB 数据库不可用
正确答案: C. isolation-level 要和数据中心(DC)对应,这样可以获得最大的可用性
Lesson 05
1.
下列关于 DML 语句读写说法正确的是?( 选 2 项 )
A. Region Cache 的主要作用是缓存热数据,减少访问 TiKV 的次数
B. 二阶段提交在获取事务开始的 TSO 和提交的 TSO 时,都是由 TiDB Server 完成的
C. schedule 模块采用 latch 来控制当前正在写的数据不被读取
D. 在写操作中,锁信息也会被写入到 RocksDB KV 中
正确答案: B. 二阶段提交在获取事务开始的 TSO 和提交的 TSO 时,都是由 TiDB Server 完成的 、D. 在写操作中,锁信息也会被写入到 RocksDB KV 中
2.
关于 DDL 语句的执行流程,下列说法正确的是?
A. DDL 语句可以在 TiDB 中并行执行
B. 同一时刻,不可以有多条 DDL 语句在等待执行
C. 同一时刻,只有一个 TiDB Server 可以执行 DDL 语句
D. 等待执行的 DDL 语句被持久化在 TiDB Server 的存储中
正确答案: C. 同一时刻,只有一个 TiDB Server 可以执行 DDL 语句
Lesson 06
1.关于 TiDB 数据库中 SCHEMA 的 KV 映射原理,描述正确的有?( 选 2 项 )
A. 聚簇表 KV 中 VALUE 存储的是真实的行数据
B. 创建表时,默认为聚簇表
C. 每一个 Region 按照左闭右开的区间划分数据存储范围 ,如 [a ~ d), [d ~ g)
D. 非聚簇表如果有主键,则 KV 中的 key 会含有主键列
E. 非聚簇表如果在 where 条件中用主键过滤,也会回表
正确答案: C. 每一个 Region 按照左闭右开的区间划分数据存储范围 ,如 [a ~ d), [d ~ g) 、E. 非聚簇表如果在 where 条件中用主键过滤,也会回表
2.关于 TiDB 数据库中 SCHEMA 的设计,不正确的是?
A. AUTO_RANDOM 和 AUTO_INCREMENT 不可以同时出现在同一列中
B. NOW 函数可以作为时间和日期类型的默认值
C. 非聚簇索引可以在建表之后添加或者删除
D. PRE_SPLIT_REGIONS 是列属性,在使用时写在自增列的后面
正确答案: D. PRE_SPLIT_REGIONS 是列属性,在使用时写在自增列的后面
Lesson 07
1.建表语句如下,请问下列哪几个查询会使用到索引 idx_abc ?(请选择 2 项)
CREATE TABLE t (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
a INT NOT NULL,
b INT NOT NULL,
c INT NOT NULL,
d INT NOT NULL,
key idx_abc (a, b, c)
);
A. select * from t where c = 4 and a = 100 and b < 99;
B. select * from t where c = 100 and b = 99;
C. select a, b, c, d from t;
D. select a, b from t;
正确答案: A. select * from t where c = 4 and a = 100 and b < 99; 、D. select a, b from t;
2.下列关于 TiDB 数据库中索引的说法,不正确的是?
A. TiDB 在创建索引时不会阻塞表的数据读写
B. 二级索引的 value 值一般为 NULL
C. CLUSTERED 类型的 PRIMARY KEY 是无法删除的
D. 所有函数都可以用于表达式索引
正确答案: D. 所有函数都可以用于表达式索引
Lesson 08
1.下列属于 TiDB 数据库系统表且在 INFORMATION_SCHEMA 库中的有?(请选择 2 项)
A. TRANSACTION
B. TIDB_HOT_REGIONS
C. DATA_LOCK_WAITS
D. TABLE_PRIV
E. COLUMNS_PRIV
正确答案: B. TIDB_HOT_REGIONS、C. DATA_LOCK_WAITS
2.下列关于 TiDB 数据库 SQL 阻塞查询,不正确的是?
A. DEADLOCKS 表默认存储 10 次死锁信息
B. TIDB_TRX 表的查询需要具有 PROCESS 权限
C. DATA_LOCK_WAITS 只记录已经完结的事务中的阻塞信息 《《===正在执行的,当前的锁信息。
D. DATA_LOCK_WAITS 记录的是悲观锁信息
正确答案: C. DATA_LOCK_WAITS 只记录已经完结的事务中的阻塞信息
Lesson 09
1.下面属于 HTAP 场景特点的是?(请选择 3 项)
A. 在故障恢复方面可以做到 RPO = 0
B. 支持分区特性
C. 支持在线业务高并发
D. 同时支持 OLTP 和 OLAP 业务
E. 能够读取到一致性的数据
正确答案: C. 支持在线业务高并发 、D. 同时支持 OLTP 和 OLAP 业务 、E. 能够读取到一致性的数据
2.关于 MPP 架构,下列说法不正确的是?
A. MPP 架构的中间结果都在内存中
B. MPP 架构可以作用于 TiKV 和 TiFlash 上的数据
C. MPP 架构目前不支持非等值 join
D. MPP 架构可以对聚合、JOIN 等操作加速
正确答案: B. MPP 架构可以作用于 TiKV 和 TiFlash 上的数据
Lesson 10
1.
下面属于 TiFlash 核心特性的是?(请选择 3 项)
A. 采用行存 + 列存的混合存储方式
B. region 支持 raft 投票和选举
C. TiFlash 采用异步复制来保证和 TiKV 一致
D. 在 TiKV 上写入数据成功后,在 TiFlash 上可以一致性读取
E. CBO 基于成本选择在 TiFlash 或者 TiKV 上执行 SQL
学生答案: C. TiFlash 采用异步复制来保证和 TiKV 一致 、 D. 在 TiKV 上写入数据成功后,在 TiFlash 上可以一致性读取 、 E. CBO 基于成本选择在 TiFlash 或者 TiKV 上执行 SQL
正确答案: C. TiFlash 采用异步复制来保证和 TiKV 一致 、D. 在 TiKV 上写入数据成功后,在 TiFlash 上可以一致性读取 、E. CBO 基于成本选择在 TiFlash 或者 TiKV 上执行 SQL
2.
关于 TiFlash 的使用,描述不正确的是?
A. TiFlash 不善于处理高并发,QPS 一般不应过高
B. TiFlash 建议混合部署在服务器上
C. TiFlash 支持全新部署和扩容两种部署方式
D. 部署 TiFlash,要求开启 PD 的 Placement Rules 功能
学生答案: B. TiFlash 建议混合部署在服务器上
正确答案: B. TiFlash 建议混合部署在服务器上
Lesson 11
1.关于事务的四大特性(ACID)说法正确的是?( 选 2 项 )
A. 事务中的所有操作要么都成功要么都失败,才能保证一致性
B. 持久性保证了数据不丢失
C. 隔离性保证事务在开始前和结束后完整性约束没有被破坏
D. 原子性和一致性与应用开发中的易用性和效率问题有关
正确答案: B. 持久性保证了数据不丢失 、D. 原子性和一致性与应用开发中的易用性和效率问题有关
2.下列关于隔离级别说法,不正确的是?
A. 脏读不可能出现在可重复读环境
B. 未提交读可能出现不可重复读
C. 幻读只出现在可重复读场景
D. Serializable read 不支持并发读写
正确答案: C. 幻读只出现在可重复读场景
Lesson 12
1.下列属于 Percolator 事务模型特点的为?( 选 2 项 )
A. 拥有全局时间戳
B. 解决了全球化分布式事务问题
C. 实现了利用单行来保证事务的原子性
D. 目前仅仅支持物理时钟授时
正确答案: A. 拥有全局时间戳 、C. 实现了利用单行来保证事务的原子性
2.下列关于 Percolator 事务执行流程,不正确的是?
A. Client 是两阶段提交的协调者
B. 每个事务都有 start_ts 时间戳,用于记录事务开始时间
C. Prewrite 操作不可以回滚
D. 如果 primary key 已经提交完毕,即使发生了故障,也不会影响原子性
正确答案: C. Prewrite 操作不可以回滚
Lesson 13
1.下列关于 TiDB 数据库事务实现,正确的是?( 选 2 项 )
A. TiDB 数据库乐观锁不需要在 Lock 列族中写入锁信息
B. Write 列族记录的是事务提交信息,或者说版本信息
C. 悲观锁下,我们需要将 prewrite 阶段提到 DML 操作中来做
D. 乐观锁下,事务在 prewrite 阶段检测写写冲突和锁冲突
正确答案: B. Write 列族记录的是事务提交信息,或者说版本信息 、D. 乐观锁下,事务在 prewrite 阶段检测写写冲突和锁冲突
2.下列关于 TiDB 的事务,不正确的是?
A. 写偏斜可以出现悲观锁模式或者乐观锁模式
B. 写偏斜可以出现在可重复读隔离级别或者提交读隔离级别
C. 是否使用 for update 在可重复读隔离级别有可能读到不同的值
D. 悲观锁模式遇到锁冲突时,默认会阻塞
正确答案: B. 写偏斜可以出现在可重复读隔离级别或者提交读隔离级别
Lesson 14
1.下列对于优化器流程的描述,正确的是?( 选 2 项 )
A. 生成执行计划后,如果是点查则直接下推到 SQL 执行器中
B. 物理优化需要结合统计信息
C. 逻辑优化的产物是语法树(AST)
D. 以下为正确顺序:SQL 解析器 -> 逻辑优化 -> 物理优化 -> SQL 执行器
正确答案: B. 物理优化需要结合统计信息 、D. 以下为正确顺序:SQL 解析器 -> 逻辑优化 -> 物理优化 -> SQL 执行器
2.下列优化项不属于逻辑优化的是?
A. 谓词下推
B. 外连接消除
C. 索引选择
D. 聚合消除
E. MAX / MIN 优化
正确答案: C. 索引选择
Lesson 15
1.下面哪些操作可能会引起线上执行计划的改变?( 选 3 项 )
A. 收集了某个表的统计信息
B. 在 SQL 中,将 from T1,T2,T3 改为了 from T2,T3,T1
C. 在 UPDATE 语句中增加了 Hint
D. 将 where 条件中的 a = b and b =5 改写为 a = 5 and b=5
E. 为某列添加索引,但是这列并没有出现在 where 条件中
F. 将 from 后的所有表名改为了大写
正确答案: A. 收集了某个表的统计信息 、C. 在 UPDATE 语句中增加了 Hint 、E. 为某列添加索引,但是这列并没有出现在 where 条件中
2.下列什么信息无法从 EXPLAIN 或者 EXPLAIN ANALYZE 的结果中获得?
A. 使用的索引
B. 算子是在 TiDB Server 还是 在 TiKV 上完成的
C. SQL 语句实际输出的数据行数
D. SQL 语句执行过程中占用的网络带宽
E. 某个算子占用的内存空间大小
正确答案: D. SQL 语句执行过程中占用的网络带宽
Lesson 16
1.下面哪些项目是我们可以在收集表或者索引的统计信息时设置的?( 选 2 项 )
A. 当表本身的读写压力很大时,停止自动收集统计信息
B. 某张表在收集统计信息时候的样本采样数目
C. 是否在收集统计信息时修改正在执行 SQL 的执行计划
D. 列直方图的桶数量上限
E. 当 CPU 负载达到阀值时,停止收集统计信息,减小负载
正确答案: B. 某张表在收集统计信息时候的样本采样数目 、D. 列直方图的桶数量上限
2.在查看 analyze 状态的时候,下面哪个信息是无法获取到的 ?(版本为:TiDB v5.0.0)
A. 本次任务分析的表名
B. 已经分析完毕的行数
C. 当前分析任务是否处于等待状态
D. 已经完成的分析的总耗时
E. 分析的开始时间
正确答案: D. 已经完成的分析的总耗时
Lesson 17
1.下面哪些因素会影响在线索引创建的速度?( 选 2 项 )
A. 索引列是否有读写
B. 表列多少
C.已有索引的个数
D. tidb_ddl_reorg_worker_cnt 参数的大小
正确答案: A. 索引列是否有读写 、D. tidb_ddl_reorg_worker_cnt 参数的大小
2.下面哪个不是TiDB 数据库使用的索引扫描算法 ?
A. Index Range Scan
B. Index Full Scan
C. Point Get
D. Index skip Scan
E. IndexLookup
正确答案: D. Index skip Scan
Lesson 19
1.下列关于 Prepared 语句及 Plan Cache 的说法正确的是?
A. 避免 TiDB 重复解析和生成 SQL 执行计划的开销
B. 需要配合上层应用框架调用 Prepare API
C. 对于 JDBC,建议在连接参数中配置 useServerPrepStmts = true
D. 通过 Query Summary > QPS By Instance 面板中的 StmtPrepare 请求可以判断是否使用 Prepare 语句
正确答案:
A. 避免 TiDB 重复解析和生成 SQL 执行计划的开销 、
B. 需要配合上层应用框架调用 Prepare API、
C. 对于 JDBC,建议在连接参数中配置 useServerPrepStmts = true 、
D. 通过 Query Summary > QPS By Instance 面板中的 StmtPrepare 请求可以判断是否使用 Prepare 语句
2.关于 TiDB Backoff,下列说法错误的是?
A. 常见的 Backoff 类型有 pdRPC、regionMiss、serverBusy、tikvRPC、txnLock、txnLockFast、updateLeader
B. 通过 TiDB Dashboard 下的 KV Errors 可以看到最近出现的 Backoff Type 以及重试时间
C. TiDB Slow log 中记录了慢查询相应的 Backoff Type 以及重试时间
D.如果监控看到 Backoff 出现,说明集群可能存在问题
正确答案: D.如果监控看到 Backoff 出现,说明集群可能存在问题
Lesson 20
1.下列关于空 region 的说法正确的是?( 选 2 项 )
A. 空 region 是指大小为 0 的 region
B. 频繁 drop 或 truncate 表可能导致空 region 过多
C. 空 region 过多会影响正常的调度行为
D. 空 region 会自动 merge 不需要关注
正确答案:
B. 频繁 drop 或 truncate 表可能导致空 region 过多 、
C. 空 region 过多会影响正常的调度行为
2.关于 tikv 节点下线速度慢,下列说法错误的是?
A. store-limit 设置过低
B. region 数量较多,checker 扫描速度过慢
C. 其他 tikv store 可用空间不足
D. 下线 tikv 节点上没有 leader
正确答案: D. 下线 tikv 节点上没有 leader
Lesson 21
1.下列关于TiKV 写入慢的原因错误的是?
A. IO 负载过高
B. CPU 负载过高
C. Unified read pool 线程池过小
D. TiKV 节点间网络延迟高
正确答案: C. Unified read pool 线程池过小
2.关于 TiKV Coprocessor duration 延迟高的原因正确的是?(请选 3 项)
A. 大范围扫描
B. 小表读热点
C. Cop 线程池打满
D. 发生 Write stall
正确答案: A. 大范围扫描 、B. 小表读热点 、C. Cop 线程池打满
Lesson 22:
1.下列关于事务响应时间慢可能的原因有?
A. 锁请求和锁等待
B. TiDB 性能问题
C. 应用性能问题
D. Proxy 或 LB 性能问题
正确答案: A. 锁请求和锁等待 、B. TiDB 性能问题 、C. 应用性能问题 、D. Proxy 或 LB 性能问题
2.关于 TiKV 存在写热点问题的推断正确的是?
A. gRPC CPU 使用不均衡
B. Scheduler worker CPU 使用不均衡
C. Unified read pool CPU 使用不均衡
D. Raftstore CPU 使用不均衡
正确答案: A. gRPC CPU 使用不均衡 、B. Scheduler worker CPU 使用不均衡 、D. Raftstore CPU 使用不均衡
Lesson 23
1.下列关于 DDL 误操作,数据恢复方法描述正确的是?( 请选 2 项 )
A. Recover Table 适用于 Truncate Table 导致的数据误删除恢复
B. Recover Table 仅可用于 Drop Table 导致的数据误删除恢复
C. Flashback Table 适用于 Drop Table 以及 Truncate Table 导致的数据误删除恢复
D. Flashback Table 能够实现对一张表多次进行恢复操作
正确答案: B. Recover Table 仅可用于 Drop Table 导致的数据误删除恢复 、C. Flashback Table 适用于 Drop Table 以及 Truncate Table 导致的数据误删除恢复
2.基于 MVCC 数据恢复描述正确的是?(请选 3 项)
A. 要恢复的数据的时间点(safe point)未被 GC 掉,理论上历史数据均可恢复
B. set tidb_snapshot 的历史数据查询依赖 MVCC ,GC 数据保留策略
C. GC 参数 tidb_gc_life_time 设置的越久,则理论上允许恢复的数据时长越长
D. Recover Table,Flashback Table 仅依赖 MVCC,不依赖 GC 数据保留策略
正确答案:
A. 要恢复的数据的时间点(safe point)未被 GC 掉,理论上历史数据均可恢复 、
B. set tidb_snapshot 的历史数据查询依赖 MVCC ,GC 数据保留策略 、
C. GC 参数 tidb_gc_life_time 设置的越久,则理论上允许恢复的数据时长越长
Lesson 24
1.以下哪些因素,会引起 TiDB Server 内存使用异常?(请选 3 项)
A. 大事务造成内存放大
B. SQL 执行计划错乱造成返回给 TiDB 大量非必要数据
C. GO 的内存回收机制,也可能导致内存占用量呈现异常的情况
D. ADD Index 操作,在 write reorg 阶段也会大量占用内存
正确答案:
A. 大事务造成内存放大
B. SQL 执行计划错乱造成返回给 TiDB 大量非必要数据
C. GO 的内存回收机制,也可能导致内存占用量呈现异常的情况
2.在 TiDB Server 中,调整哪些参数,可以限制单条 SQL 的内存用量?(请选 2 项)
A. mem-quota-query 来设置单条 SQL 语句可以占用的最大内存阈值
B. oom-use-tmp-storage 开启临时磁盘功能
C. rocksdb.defaultcf.block-cache-size 调整 RocksDB defaultcf 的内存占用量
D. rocksdb.writecf.block-cache-size 调整 RocksDB writecf 的内存占用量
正确答案
A. mem-quota-query 来设置单条 SQL 语句可以占用的最大内存阈值
B. oom-use-tmp-storage 开启临时磁盘功能
Lesson 25
1.TiKV Server 进程占用的内存包括以下哪几个部分?(请选3项)
A. Page Cache
B. RocksDB-kv Block Cache
C. SQL 查询的结果集在内存中的数据结构
D. RaftStore channel 以及 Apply channel 中的消息
正确答案: B. RocksDB-kv Block Cache 、C. SQL 查询的结果集在内存中的数据结构、D. RaftStore channel 以及 Apply channel 中的消息
2.遇到 TiKV Server OOM 的情况后,通常从哪些方面进行排查?
A. 检查 storage.block-cache.capacity 参数设置是否过大,一般情况下为服务器内存的 45%
B. 查看 block-cache 的命中是否率低,如果偏低,那么需要确认 page cache 的占用情况
C. 检查是否出现了 gPRC 发送的速度跟不上 Coprocessor 的情况,TiKV-Details --> Coprocessor Overview --> Total Response Size 是否超过网卡的 network outbound 流量
D. 排查下当前集群环境中是否有返回结果集比较大的 SQL,并进行优化
正确答案:
A. 检查 storage.block-cache.capacity 参数设置是否过大,一般情况下为服务器内存的 45%、
C. 检查是否出现了 gPRC 发送的速度跟不上 Coprocessor 的情况,TiKV-Details --> Coprocessor Overview --> Total Response Size 是否超过网卡的 network outbound 流量 、
D. 排查下当前集群环境中是否有返回结果集比较大的 SQL,并进行优化
Lesson 26
1.关于热点,描述正确的是?(请选择 2 项)
A. Region 是按照 hash 进行分片,导致热点非常容易产生
B. 热点类型分为读热点和写热点
C. 行数据的 key 编码规则包括 tableid 以及 rowid ,同一个表的数据会在以表 ID 开头为前缀的一个 Region 中,数据的顺序按照 RowID 的值顺序排列,故容易出现 insert 写热点
D. 出现读热点的 Region,一般情况下也会出现写热点
正确答案:
B. 热点类型分为读热点和写热点 、
C. 行数据的 key 编
2.关于热点的解决方案,描述正确的是?
A. 非 int 以及 bigint 类型的 pk,可以使用 SHARD_ROW_ID_BITS 和 PRE_SPLIT_REGIONS 的方式来打散 insert 写入热点
B. Bigint 类型的 pk,可以使用 AUTO_RANDOM 的方式打散 insert 写入热点
C. 小表频繁访问,造成的读热点,可以尝试使用 Load Base Split 基于 qps 和 流量来进行自动的 split 打散
D. 执行计划不合理引起的非必要全表 / 错误的索引扫描,导致大范围的数据扫描造成的读热点,需要进行 SQL 优化来规避
正确答案:
A. 非 int 以及 bigint 类型的 pk
B. Bigint 类型的 pk,可以使用 AUTO_RANDOM 的方式打散 insert 写入热点 、
C. 小表频繁访问,造成的读热点,可以尝试使用 Load Base Split 基于 qps 和 流量来进行自动的 split 打散 、
D. 执行计划不合理引起的非必要全表 / 错误的索引扫描,导致大范围的数据扫描造成的读热点,需要进行 SQL 优化来规避
Lesson 27
1.关于 PD 调度,描述正确的是?(请选择 3 项)
A. 可以通过调整 leader-weight 和 region-weight,来影响某个 Store 上的 leader 和 region 分布情况
B. 查看调度的信息,主要是通过监控 metrics、pd 日志、pd-ctl 工具
C. 调度只能由 Scheduler 产生
D. 如果 RegionHeartbeat 异常,可能会影响调度的产生和执行
正确答案:
A. 可以通过调整 leader-weight 和 region-weight,来影响某个 Store 上的 leader 和 region 分布情况 、
B. 查看调度的信息,主要是通过监控 metrics、pd 日志、pd-ctl 工具 、
D. 如果 RegionHeartbeat 异常,可能会影响调度的产生和执行
2.各个 Store 打分差异不大,但是 Leader 在各个 Store 中分布不均衡的情况时,应该如何排查及解决?(请选择 3 项)
A. 查看 Grafana PD --> Statistics - hot write / read,判断集群中是否存在热点导致负载不均衡的现象。如果存在则需要根据热点调度相关的信息进一步分析
B. 查看 Grafana PD --> Region health,判断集群中是否存在大量的空 Region 或小 Region,导致不同 Store 的 Leader 数量差别特别大,使 raftstore 负担过重。此时,需要开启 Region Merge 并尽可能加速合并
C. 检查集群中的 Store 软硬件环境是否统一。如果存在差异,如磁盘空间容量不同。那么可以酌情调整 leader-weight 和 region-weight 来控制 Leader / Region 的分布
D. Store limit 控制 operator 的消费的速度,调整 store limit,使 Leader 在各个 TiKV 节点上分布均衡
E. 排查下当前集群环境中是否有返回结果集比较大的 SQL ,并进行优化
ABC
Lesson 28
1.以下说法正确的是
A. Scheduler 线程池,负责检测读写事务冲突检测,如果检测发生冲突会等待,超时后将事务回滚
B. 在 Raftstore 线程池,写请求都会先在 Raftstore 线程 fsync 的方式写入 RocksDB,由于存在 I/O,Raftstore 线程理论上不可能达到 100% 的 CPU
C. UnifyReadPool 负责处理所有底层的读写取请求,是最下面的一层线程池,但是此线程池不建议设置过大,否则容易出现线程频繁切换反而浪费 cpu 的情况
D. Scheduler 线程池本身会进行一些写的操作,减轻 raftstore 的压力
正确答案: B. 在 Raftstore 线程池,写请求都会先在 Raftstore 线程 fsync 的方式写入 RocksDB,由于存在 I/O,Raftstore 线程理论上不可能达到 100% 的 CPU
2.关于 async write 说法正确的是(请选择3项)
A:async write 包括 raft log 的 propose,append 以及 apply 等关键流程节点
B:async write 主要涉及 IO 和 CPU,不涉及网络
C:当 async_write 执行成功或失败之后,会调用 Scheduler 的 release_lock 函数来释放 latch 并且唤醒等待在这些 latch 上的请求继续执行。
D:可以通过 Storage async write duration 来查看异步写所花费的时间
A,C,D
Lesson 29
1.TiDB 中数据读取流程描述正确的是?(请选择合适的选项)
A. SQL 在 TiDB Server 侧完成解析,逻辑优化,物理优化后,生成执行计划等
B. 物理执行计划会根据请求类型分别调用 KV Get API 以及 DistSQL API 经过 TiKV Client 通过 gRPC 发送给 TiKV Server
C. Unified Read Pool 会根据优先级以及执行时长的不同被放到不同的任务队列中
D. KV Get 以及非 KV Get ,都会构造一个 snapshot
a,b,c,d
2.在遇到集群出现读数据慢的情况时,建议查看哪些监控或日志?(请选择 3 项)
A. 通过 TiDB Dashboard 查询 Slow query 菜单 / SQL 语句分析菜单,判断集群中 SQL 的执行计划是否发生过变化
B. TiKV-Details --> Thread CPU --> GC worker CPU 是否被打满
C. 根据 TiDB Dashboard 流量可视化菜单,判断集群中是否有读热点
D. TiKV-Details --> Thread CPU --> Unified read pool CPU 是否被打满
ACD
Lesson 30
1.下面属于计划外系统不可用的是?(请选择 3 项)
A. 出于安全原因紧急对应用进行升级
B. 由于过保修期进行主机更换
C. 操作系统 BUG 被触发
D. DBA 删除历史数据后,应用查询不到当前数据
E. 系统管理员回收权限后,用户无法登录
正确答案: C. 操作系统 BUG 被触发 、D. DBA 删除历史数据后,应用查询不到当前数据 、E. 系统管理员回收权限后,用户无法登录
2.关于 TiDB 数据库的高可用特性,描述不正确的是?
A. PD 的高可用主要靠集成在其内部的 etcd 来完成 leader 选举
B. Raft 的默认副本数为 3,TiKV 为 5 个节点,当有 2 个 TiKV 节点不可用时,不会影响系统的可用性
C. 靠 TiDB server 不能完成自动故障转移
D. 三副本的 TiKV 中当只有一个副本可用时,整个系统不可用
正确答案: B. Raft 的默认副本数为 3,TiKV 为 5 个节点,当有 2 个 TiKV 节点不可用时,不会影响系统的可用性
Lesson 31
1.下列关于各个高可用架构的 RPO 描述正确的有?(请选择 2 项)
ab
A. 同城三中心架构当任意一个数据中心不可用,可以做到 RPO 为 0 的恢复
B. 同城两中心的同步模式当任意一个数据中心不可用,可以做到 RPO 为 0 的恢复
C. 同城两中心的异步模式当任意一个数据中心不可用,可以做到 RPO 为 0 的恢复
D. 两地三中心当任意两个数据中心不可用,可以做到 RPO 为 0 的恢复
E. 异步复制当主集群不可用,可以做到 RPO 为 0 的恢复
2.关于 TiDB 高可用架构说法不正确的是?
B
A. 两地三中心架构的在灾备城市一般无法做到同步复制
B. 同城三中心的事务(写操作)不需要跨数据中心
C. 同城两中心的事务(写操作)在同步模式下需要跨数据中心
D. 同城两中心在异步模式下如果灾备中心不可用,整个系统依然可用