前言:本文仅作学习交流使用,对应《TiDB 数据库管理(303)》
补充:本文章仅用于个人学习,未经PingCAP书面许可,任何单位或个人不得将文档内容用于商业目的,或对本文章进行转载、编辑、发布、出售。
课堂测试汇总
Lesson 01: TiDB Cluster 部署
1.下列关于TiUP的说法正确的是?(选2项)
A. TiUP 是从 TiDB 6.0 引入的包管理器(4.0时候引入)
B. TiDB、PD 和 TiKV 等组件都可以由 TiUP 管理【正确】
C. TiUP 在执行时,命令< command 〉和组件<component >不可以同时出现(如TiDB Cluster display)
D. TiUP 不但可以负责 TiDB 的部署还可以负责 TiDB Cluster 的管理【正确】
2.下列关于 TiDB Cluster 启动顺序正确的是?
A. PD、TiKV、TiDB、TiFlash【正确】
B. PD、TikV、TiFlash、TiDB
C.TiKV、TiFlash、TiDB、PD
D. 目标表不一定为空表
Lesson 02: TiDB 的连接管理
1.下面哪些客户端工具是可以连接 TiDB 的?( 选 3 项 )
A. sqlplus (Oracle的)
B. mycli【正确,mysql的客户端】
C. navicat for mysql【正确】
D. phpAdmin【正确】
E. MongoDB Compass
F. rediscl (redis的协议)
Lesson 03: TiDB 的配置
1.下面关于 TiDB 系统参数的说法,正确的有哪些?( 选 3 项 )
A. 系统参数有作用域之分【选择,SESSION 级别、GLOBAL 级别】
B. 系统参数持久化在 KV 中关于 TiDB 、 TiKV 和 PD 的参数(持久化在KV中只有系统参数,且关于TiDB)
C. 系统参数可以通过 MySQL 客户端进行修改【选择】
D. SESSION 级别的系统参数修改后需要重新连接才会生效(SESSION 级别的系统参数修改后马上生效)
E. GLOBAL 级别的系统参数,修改后对于当前会话无效【选择】
2.下面关于 TiDB 集群配置参数的说法,正确的是?
A. TiKV 节点集群配置参数修改后,需要重启节点才会生效【选择】
B. 集群配置参数有作用域范围(系统参数有作用域之分,分为SESSION 级别、GLOBAL 级别】)
C. 可以用MySQL 客户端修改集群配置参数(MySQL客户端,可修改系统参数)
D. 集群配置参数持久化在 TiDB 、TiKV 和 PD 的配置⽂件中,还有一部分持久化在 KV 存储中(持久化在KV中只有系统参数,且关于TiDB)
E. 以上都不对
Lesson 04: 用户管理与安全
1.下面关于角色和用户账户的说法正确的是?
A. 角色和用户账户都是由名称和主机名组成,并都可以登录数据库(角色登录不了登录数据库)
B. 创建角色时候如果不指定主机名,则默认是 localhost(默认是%)
C. 创建用户时,如果主机名为%,则没有任何意义(创建用户时,如果主机名为%。则任意客户端所在的ip地址都可以,任何人都可以,只要用户对就可以)
D. 角色没有密码【选择】
Lesson 05: 监控 TiDB
1.关于 TiDB 的监控,正确的是?
A. Prometheus + Grafana + Dashboard 内置于 PD 组件中,提供监控与报警服务(Dashboard 内置于 PD 组件,而Prometheus 、Grafana 、监控与报警是单独的服务程序)
B. TiDB 的报警处理,需要额外安装第三方插件
C. TiDB 的报警项⼀般分为:紧急、严重和警告三个级别【选择】
D. 以上都不对
Lesson 06: TiDB 集群管理
1.对于扩容和缩容 TiDB/TiKV/PD/TiFlash 的操作基本是一致的?
对(TiFlash比TiDB/TiKV/PD 多了两步)
错【选择】
2.命令 tiup cluster clean ${cluster-name} --log 用于清理集群数据,保留日志信息?
对(tiup cluster clean ${cluster-name} --log 用于清理集群日志;tiup cluster clean ${cluster-name} --o 用于清理集群数据和日志、tiup cluster clean ${cluster-name} --dat 用于清理集群数据)
错【选择】
Lesson 07: 升级 TiDB Cluster
1.请写出使用 TiUP 工具进行 TiDB 数据库集群版本升级正确的顺序。
1. 升级 TiDB Cluster 2. 升级 TiUP 3. 检查集群监控状态
4. 升级 TiUP Cluster 5. 升级 TiDB Server 6. 升级 TiKV Server
2 --> 4--> 3--> 1--> 3【选择】
3 --> 1--> 2--> 4--> 3
2 --> 1--> 3--> 4--> 3
3 --> 1--> 2--> 1--> 3
2.下列关于升级 TiDB 集群错误的是?
升级 TiDB 集群如果 evict leader 等待时间过长,可以通过 --force 参数来解决
升级 TiDB 集群,可以停止集群,升级集群,最后启动集群
升级 TiDB 集群,必须停机【选择,升级 TiDB 集群,可以停机】
升级 TiDB 集群不支持回退
Lesson 08: 备份恢复策略
1.下列关于热备份的说法正确的是?( 选 2 项 )
A. 热备份要求数据库处于只读状态(热备份要求数据库处于读写状态)
B. 热备份不会锁定任何用户的读写操作【选择,热备份不锁表、最多有一些行锁】
C. 相对于冷备份,热备份的速度会更快(热备份:物理备份就是拷贝数据文件、逻辑备份要转换为SQL)
D. TiDB 生态工具中,BR 的备份功能属于热备份【选择,BR 的备份功能属于热备份,且物理备份】
2.关于逻辑备份与物理备份,下列说法正确的是?
A. 逻辑备份和物理备份都可以应用于异构数据库间的数据迁移(物理备份就是拷贝数据文件,不支持异构数据库)
B. 逻辑备份相对于物理备份适合大量数据的备份(逻辑备份要转换为SQL,转换慢。物理备份适合大量数据)
C. BR ⼯具和操作系统拷贝都属于物理备份【选择】
D. 逻辑备份的效率往往高于物理备份(物理备份的效率往往高于逻辑备份)
Lesson 09: 数据导出工具 Dumpling
1.下列哪些场景不适用 Dumpling 工具导出?( 选 2 项 )
A. 增量备份【选择】
B. 将数据导出到 MySQL 数据库(可以用csv导出来)
C. 数据量较大场景,要求热备【选择】
D. 只导出 2 张百万级别的表(Dumpling处理百万数据没问题)
2.下列关于 Dumpling ⼯具保证⼀致性,正确的是?
A. consistency 参数表示为待导出的表上锁(consistency=lock 表示为待导出的表上读锁)
B. none 表示使用默认选项保证⼀致性(none 表示不要⼀致性)
C. auto 选项对于 TiDB 数据库会使用和 MySQL 数据库⼀样保证⼀致性的方式(auto 选项对于 TiDB 数据库选择 snapshot 而 MySQL 数据库选择flash )
D. snapshot 会获取指定时间戳的⼀致性快照并导出【选择】
Lesson 10: 使用 TiDB Lightning 导入数据
1.下列关于 TiDB Lightning 工具正确的是?(选3项)
A. Logical lmport Mode 方式支持全部 TiDB 版本【选择】
B. TiDB Lightning 的断点续传功能可以将断点存储在其他数据库中【选择】
C. TiDB Lightning 可以只导入某个 schema 的数据【选择】
D. TiDB Lightning 在导入过程中需要手动将 TiKV 集群切换为“导入模式”(自动将 TiKV 集群切换为“导入模式” )
E. TiDB Lightning 支持 BR 工具备份文件的导入(TiDB Lightning 支持CSV文件,还支持 Dumpling 导出的SQL文件。BR 工具只支持 BR工具导出备份文件的导入)
2.下列关于 TiDB Lightning 并行导入的说法正确的是?
A. 必须使用 Physical lmport Mode 模式(建议使用)
B. 不支持断点续传(支持断点续传)
C. TiDB Lightning 实例数量不是越多越好【选择,小于10个】
D. 目标表不一定为空表(目标表一定为空表)
Lesson 11: 使用 BR 进行备份恢复
1.下列关于 BR 的说法不正确的是?(选3项)
A. BR 工具属于逻辑备份【选择,BR 工具属于热备份,且物理备份】
B. BR 工具在恢复时,需要数据库设置为只读状态,否则可能会出现数据不一致情况【选择,BR 工具在恢复时,支持数据库热备】
C. BR 工具的备份在恢复时,可以同时使用 TiCDC 同步到下游 TiDB 或者 MySQL 数据库【选择,主从复制的架构,如果用BR 工具只恢复了主库,但是从库的是过不去的】
D. 当备份数据量较大,不可停库同时又要求备份效率的时候,BR 工具比 Dumpling 和操作系统拷贝更有优势(操作系统拷贝属于冷备,需要停库)
2.下列哪种备份方式是 BR 工具支持的?
A. 热备份,物理备份【选择】
B. 冷备份,物理备份
C. 热备份,逻辑备份
D. 冷备份,逻辑备份
Lesson 12: 使用 sync-diff-inspector 校验数据
1.下面关于 sync-diff-inspector 相关内容,正确的是?(选2项)
A. sync-diff-inspector 一开始会逐行比对源端和目标端的数据(sync-diff-inspector 一开始会比chunk)
B. 两端的表必须有相同主键,否则报错
C. 支持源端分表分库目标并表的验证【选择】
D. 验证时会读取表的统计信息【选择,分chunk就是都统计信息】
2.如果设置了 schema-pattern="test1", table-pattern = "t_1", target-schema="test2", target-table = "t_2",而如果 source 中还有表 test2.t_2,请问下面说法正确的是?
A. sync-diff-inspector报错退出
B. 源端(上游)的 test1.t_1 与目标端(下游)中的表 test2.t_2 进行一致性校验
C. 源端(上游)的 test2.t_2 与目标端(下游)中的表 test2.t_2 进行一致性校验
D. 源端(上游)的 test1.t_1 和 test2.t_2 与目标端(下游)中的表 test2.t_2 进行一致性校验【选择,如果sharding打开,认为test1.t_1和 test2.t_2 认为是源端分表分库到目标表就会合并,按照分片的规则复制,则D选项满足】
Lesson 13: 使用 TiDB Data Migration(DM)同步数据
1.下列关于 TiDB Data Migration (DM) 工具正确的是?(选2项)
A. 当 DM-worker 节点数超过上游 MySQL/MariaDB 节点数时,超出上游节点数的相关 DM-worker 节点默认将处于空闲状态【选择,一个DM-worker只能对应一个源头】
B .DM 工具不能进行异构表的迁移(异构表若是包含关系也可以,即列数不一样)
C. DM 只能做全量迁移,不支持增量迁移
D. DM 只支持 TiDB 部分兼容的 MySQL 支持的 DDL 语法【选择,DM会跳过这些语句】
2.下列关于 DM 的过滤配置,正确的是?(选3项)
A. Block & Allow Table Lists 用于过滤对于某些数据库或者表的所有操作【选择】
B. Binlog event filter 用于过滤对于某些数据库或者表的所有操作(Binlog event filter 用于过滤源数据库中特定表的特定类型操作)
C. Table routings 是将源数据库的表迁移到下游指定表的路由功能【选择】
D. Block & Allow Table Lists 用于过滤源数据库中特定表的特定类型操作(Binlog event filter 用于过滤源数据库中特定表的特定类型操作)
E. Binlog event filter 用于过滤源数据库中特定表的特定类型操作【选择】
Lesson 14: 使用 TiCDC 同步数据
1.下列关于 TiCDC 说法正确的是?(选3项)
A. TiCDC 在源数据库中(上游数据库中)读取的是 TikV change log【选择】
B. TiCDC 在源数据库中(上游数据库中)也可以读取 Binlog(TiCDC不可以读取Binlog)
C.TiCDC 的目标数据库(下游数据库)可以是 TiDB 或者 MySQL 也可以输出到 Kafka【选择】
D. TiCDC 对于没有主键但有非空唯一索引的表是可以同步的【选择】
E. TiCDC 集群中 capture 组件必须大于一个(capture组件可以只有一个,但没有高可用性)
2.下列关于 TiCDC 的同步任务,正确的是?(选2项)
A. changefeed-id 必须手工指定(changefeed-id 会自动指定)
B. start-ts 默认为当前时间【选择】
C. 更新同步任务可以在线操作(先把任务暂停pause,再update,再resume)
D. 一套 TiCDC 集群可以开启多个任务【选择,只要create changefeed就可以】
Lesson 15: 使用 TiDB Binlog 同步数据
1.下列关于 TiDB 的 binlog 格式,正确的是?(选2项)
A. 是按照事务的开始时间有序记录的(是按照事务的提交时间有序记录的)
B. 未提交的事务一定不会出现在 binlog 中【选择,binlog只记录提交的事务】
C. 与 MySQL 数据库 binlog 的 Mixed 格式类似(与MySQL数据库binlog 的 VOW 格式类似)
D. TiDB 的 binlog 默认是开启的(默认关闭)
E. TiDB 的 binlog 中会记录提交的时间戳【选择】
2.下列关于TiDB Binlog 工具正确的是?(选3项)
A. Pump 组件负责存储自己接收的 Binlog ,而且还要完成排序【选择】
B. Drainer 组件不需要对事务进行排序(多个Pump组件排序完,还需要Drainer组件归并排序)
C. TiDB Binlog 是异步复制【选择,binlog是事务提交后才产生的。顺序:主库提交完->产生binlog->传到下游再应用,所以是异步复制】
D. TiDB Binlog 在 TiDB 5.0 中有某些功能无法兼容【选择,使用tiCDC 进行兼容】
E. TiDB Binlog 只能同步数据到 TiDB 数据库(mysql协议兼容的数据库都可用TiDB Binlog)
Lesson 16: TiDB 数据库高可用概述
1.下面属于计划外系统不可用的是?(请选择 3 项)
A. 出于安全原因紧急对应用进行升级
B. 由于过保修期进行主机更换
C. 操作系统 BUG 被触发【选择】
D. DBA 删除历史数据后,应用查询不到当前数据【选择】
E. 系统管理员回收权限后,用户无法登录【选择】
2.关于 TiDB 数据库的高可用特性,描述不正确的是?
A. PD 的高可用主要靠集成在其内部的 etcd 来完成 leader 选举
B. Raft 的默认副本数为 3,TiKV 为 5 个节点,当有 2 个 TiKV 节点不可用时,不会影响系统的可用性【选择,raft group 中只能允许挂掉一个。三副本得两个副本可用,才可用】
C. 靠 TiDB server 不能完成自动故障转移(需要借助业务改造)
D. 三副本的 TiKV 中当只有一个副本可用时,整个系统不可用(三副本得两个副本可用,才可用)
Lesson 17: TiDB 数据库常用高可用架构
1.下列关于各个高可用架构的 RPO 描述正确的有?(请选择 2 项)
A. 同城三中心架构当任意一个数据中心不可用,可以做到 RPO 为 0 的恢复【选择】
B. 同城两中心的同步模式当任意一个数据中心不可用,可以做到 RPO 为 0 的恢复【选择】
C. 同城两中心的异步模式当任意一个数据中心不可用,可以做到 RPO 为 0 的恢复(灾备中心和主中心,不保证是同步)
D. 两地三中心当任意两个数据中心不可用,可以做到 RPO 为 0 的恢复(若两个主中心出问题,灾备中心处于异步复制,则不保证是同步,RPO不一定为零)
E. 异步复制当主集群不可用,可以做到 RPO 为 0 的恢复(异步复制,不保证RPO为零)
2.关于 TiDB 高可用架构说法不正确的是?
A. 两地三中心架构的在灾备城市一般无法做到同步复制
B. 同城三中心的事务(写操作)不需要跨数据中心【选择,因为同城三中心的表region需要分配在三个中心,所以肯定要跨数据中心写数据】
C. 同城两中心的事务(写操作)在同步模式下需要跨数据中心
D. 同城两中心在异步模式下如果灾备中心不可用,整个系统依然可用
后记
bye!