暂无图片
暂无图片
3
暂无图片
暂无图片
暂无图片

玩转oceanbase之OBCP试题考点解析

原创 cqiwen 2022-04-07
7651

前言:

  在写此文之前,我已经通过了OBCP考试认证。个人感觉OBCP的考题较之于OBCA的考题难度大了许多,审核也严格了很多(OBCP需要线下到指定考试地点去考试,考试前需要做身份签定,考试时有摄像头取证和监考人员监考),请大家做好充分的准备后再约考。OBCP每次考试有66道题,据我推断,整个OBCP的题库大概是200-250道题。

  下面我是凭记忆总结的一些我在OBCP考试时遇到过的考点,答案不能保证100%正确,因为官方并没有在考试结束后告知你到底哪道题做错了。如果你手上只有1张考券,那就没有多余的考试机会拿来试错,因此除了掌握以下考点外,还要把官方培训资料好好读几次,最好再通读一遍oceanbase的官方文档。而要想加深记忆,最重要的还是边看资料边做实验,有时候你会发现一些书本上没介绍过,或者平时没太关注的东西,也是会在考试中出现的。

考点1:

  转储参数 minor_freeze_times 的增长依赖的是 Memtable 内存达到设定阈值而触发,而手动运行的转储命令不会进行计数。因此,无论手动转储多少次,都不会记录到 minor_freeze_times中。例如,minor_freeze_times 的值为 3 时,手动执行 3 次 ALTER SYSTEM MINOR FREEZE 后,当 Memtable 内存使用达到阈值后,并不会触发合并。

考点2:

  __all_server_event_history和__all_rootservice_event_history表中记录了哪些内容?

MySQL [oceanbase]> select module,event from __all_server_event_history group by module,event;
+-------------+-------------------------+
| module      | event                   |
+-------------+-------------------------+
| storage     | check_partition_table   |
| freeze      | do minor freeze         |
| freeze      | do minor freeze success |记录自动转储
| storage     | write checkpoint start  |
| daily_merge | report_merge_finished   |记录定时合并
| storage     | write checkpoint finish |
| storage     | add_replica success     |记录分区复制
| storage     | add_replica failed      |
| sql         | execute_cmd             |记录sys租户执行的语句
| ddl         | create_partition        |记录DDL语句
| election    | switch_leader           |记录切主
| election    | batch_switch_leader     |
| storage     | copy local index begin  |
| ddl         | copy_sstable_batch      |
| ddl         | batch_create_partition  |
| gc          | gc_candidates           |
| gc          | clearup_replica         |
+-------------+-------------------------+
17 rows in set (0.165 sec)

__all_rootservice_event_history表记录了集群调度相关信息、转储合并信息等

考点3:

  gv$sql_audit是虚拟表,是内存中一个 FIFO 队列(保存在内存中),功能的开启和数据大小是可以通过OceanBase集群参数控制的(sql_audit_queue_size,sql_audit_memory_limit)。后台任务每隔 1s 会检测是否需要淘汰。

考点4:gvsql_audit与gvplan_cache_plan_stat的区别和联系

  (g)v$sql_audit SQL审计表,记录每一条SQL的来源、执行状态信息。可以用来查看每次请求客户端来源和执行语句的server的信息,执行状态信息,等待事件及执行各阶段耗时。主要字段trace_id,sql_id,plan_id等;

  (g)v$plan_cache_stat : plan_cache的基本状态。记录每个计划缓存的状态,每个计划缓存在该视图中有一条记录;

  (g)v$plan_cache_plan_stat : plan_cache中所有plan的具体状态。记录计划缓存中所有plan 的具体信息及每个计划总的执行统计信息, 每个plan 在该视图中一条记录;查询时需要提供tenant_id, srv_ip, srv_port和plan_id 才能返回结果;

  (g)v$plan_cache_plan_explain : 对于plan cache中plan的基本信息解释(类似explain查出来的记录)

考点5:分区表的类型及特点

  比如hash分区的字段或表达式结果只能是int型,有二级分区时,只有range分区可以直接drop一级分区。
  搞清楚每种分区类型的特点和差异,如range分区和list分区的特点和差异等。
key分区不指定分区列时,默认是以表的主键为分区列。

考点6:EXPLAIN 相关

{EXPLAIN | DESCRIBE | DESC} [explain_type] dml_statement;

explain_type:  <<--考点,搞清楚每种type输出的内容和差异
    BASIC
  | OUTLINE
  | EXTENDED
  | EXTENDED_NOADDR
  | PARTITIONS
  | FORMAT = {TRADITIONAL| JSON}

dml_statement:
    SELECT statement
  | DELETE statement
  | INSERT statement
  | REPLACE statement

obclient> EXPLAIN SELECT * FROM t1,t2 WHERE t1.c2=t2.c2 AND t2.c1 > 4\G
*************************** 1. row ***************************
Query Plan: =======================================
|ID|OPERATOR   |NAME|EST. ROWS|COST   |  <<--考点,记住此处包含的输出列有哪些
---------------------------------------
|0 |HASH JOIN  |    |9801000  |5933109|
|1 | TABLE SCAN|t2  |10000    |6219   |
|2 | TABLE SCAN|t1  |100000   |68478  |
=======================================

Outputs & filters:
-------------------------------------
  0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil),
      equal_conds([t1.c2 = t2.c2]), other_conds(nil)
  1 - output([t2.c2], [t2.c1]), filter(nil),
      access([t2.c2], [t2.c1]), partitions(p0)
  2 - output([t1.c2], [t1.c1]), filter(nil),
      access([t1.c2], [t1.c1]), partitions(p0)

EXPLAIN extended产生附加信息,包括:每个算子的输入列和输出列,访问表的分区信息,当前使用的 filter 信息,如果当前算子使用了索引,显示所使用的索引列及抽取的 query range。

详见官方文档:https://www.oceanbase.com/docs/oceanbase-database/oceanbase-database/V3.2.2/EXPLAIN

我一共凭记忆总结了46个高频考点。完整OBCP考点,请下载附件:
OBCP考试共46个高频考点集锦

后记:

  总结的考点里虽然只列出了46项,但试卷中会出现同一个考点出现多道题来考察的情况。因此,在约考OBCP之前,你最好是把上面的考点弄清楚。另外,由于题库中可能有200-250道题,可能你也会遇到这上面没总结的考点,因此,强烈建议你把官方OBCP的培训PPT多读几遍,如果有不清楚的地方,可以在本地服务器上部署一套observer做下实验,能够加深印象。另外,在你通过OBCA考试后,钉钉群上会有一套OBCP的试题,多做几遍,保证全对,里面会有2-3道原题或相关变相题出现在正式的OBCP试题中。祝大家考试顺利!

最后修改时间:2023-05-05 20:34:40
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论