12月26日参加OBCP V4 线下笔试考试,考86分顺利通过,谈谈自己的感受。
学习总结
- 基础阶段,根据OBCP 教程的内容熟悉基本操作,记忆一些常用知识点。
- 深入阶段,通过社区考题与实际操作,深入理解obcp 教程
- 在社区上收集一些习题,网上OBCP V3 的习题已经很多,根据习题扩展知识面。
- 答题技巧,判断题需要注意题的用语,比如说必须,只能,就要留意多半是不对的;单选题需要选择最优的;多选题需要选择有把握的
学习过程
个人学习准备了一台虚拟机安装了单机oceanbase 学习环境(12c/20G/120G磁盘),对oceanbase 的基本操作有了一定掌握,比如搭建单机集群环境,创建租户,创建资源单元,资源池等数据库基本操作。 配置网络环境,使用NFS 文件系统使用命令行进行物理备份与恢复(黑屏)操作。obdumper/obloader 等的操作,基本可以在单机环境下实现。如果需要集群的分布式环境,可以在oceanbase官方的在线体验环境OceanBase 在线体验 - OceanBase Demo - 分布式数据库体验进行操作,比如在分布式环境对observer 启动停止操作,查看observer的状态。总之,一句话,结合OBCP 教程内容,多操作,多总结。此阶段,也参加过官方OBCP v4 模拟考试,比如官方模拟题第一题,第一次做的时候,都不熟悉LDC 概念,但大概都能够猜到,同机房>同城>异地。个人第一次考试的时候,大致就是熟悉OBCP教材的基本操作,记忆了一些常用的知识点,一战考试65分。
一战过后,有一段时间进入迷茫期,也不知道如何备战了。直到有人在OBCP钉钉群里丢出如下一道练习题的时候,我才知道obdumper/obloader 有这么多弯弯绕绕与细节在里面,它的知识又自成体系。 比如分析一下这道题,obloader 导入参数是–ddl,–sql 表示导入了数据对象与数据。此处数据对象的参数有–table,–view 。表示需要导入表t1 的对象(表的定义),视图对象t2, 对象一般以对象名称-schema.sql 命名,所以导入了t1-schema.sql ,同时导入数据文件格式为sql, A与B 都是csv结构的数据文件,此处导入参数为–sql,所以不能导入。t2是视图对象,应该导入t2-schema.sql 文件,所以D 也不正确。
/obloader -hip -P2883 -uroot@TenantCluster -p’********’-D dbschema --ddl --sql --table ‘t1’–view ‘t2’ -f ‘/extDir’ 导入下面哪个文件
A. t1.csv
B. t2.csv
C. t1-schema.sql
D. t2.sql
经过分析,就需要将社区,钉钉群出现的考题与OBCP 教程相结合,扩展自己的知识,基本上需要把教材上相关的举例都实际操作一遍。下面来复盘一下obdumper/obloader 的知识体系。1. 深入理解参数的定义,比如导出对象参数–table,–procedure,–view, 需要与–ddl (数据定义语言),–csv,–cut,–sql(数据文件导出格式) 参数一起使用,前者是导出对象,后者 --ddl 代表对象定义语句,针对表的数据,需要使用–sql或–csv 或–cut 参数。2. obcumper 导出时,目标目录有data,log两个目录,导出对象(表,存储过程,函数,序列等等)定义语句一般是以schema.sql 的文件,数据文件导出一般是csv,或sql 文件。3. 导出遇到错误或异常,可以从日志目录中查看日志文件,找到对应报错信息。以下是根据习题,对于教程实例,进行的思维解析过程。
考题:如下导出操作的参数,导出表的定义与数据的选项是
A obdumper – sql --all
B obdumper --ddl --all
C obdumper --ddl --csv -all
D obdumper --all
需要注意文档的小字,比如说锁租户后的效果是当前连接的租户能够正常操作,不能建立新的连接。这种在文档中只有一行文字,如果自己没有实践操作过或者留意这一行文字,考试就比较蒙了。
灵活考题,给定一个sql 语句,找到能够运用相同的参数化 的语句。这个知识点主要是快速参数化,哪些信息不能参数化。
比如如下语句使用的相同化参数语句 select 1 as flag,c2,c3 from t1 where c2=1 order by 1; select 2 as flag,c2,c3 from t1 where c2=1 order by 1;
OBCPV4 部分习题参考.txt (954 字节)
最后,想办法验证,查询sql上面两个语句是不是是相同的参数化语句,需要使用视图gv$ob_sql_audit 查看query_sql 与statement.
个人在考试前,把网上OBCP V3的习题做了一遍。并做了一些拓展,比如分配给租户的可用的内存,V3与V4 大致都是相同的,可以借鉴参考。memory_limit与memory_limit_percentage 决定oceanbase 管理内存,system_memory 参数用于oceanbase数据库管理内存,分配给业务租户的内存就是memory-system_memory或总内存*memory_limit_percentage-system_memory. 比如计算副本的数量。个人参考了相关资料,Oceanbase v3 与Oceanbase v4 关于obproxy 部分,相差不大,可以参考相关考题,进行一些总结与翻阅资料。
答题技巧。考试与实际工作应用还是有差别的,所以还是需要做一定的习题训练。判断题需要注意题的用语,比如说必须,只能,就要留意多半是不对的;单选题需要选择最优的;多选题需要选择有把握的.比如我遇到单选题,选择能够设置全局变量选项是 A set global xxxx= B set xxxx= C alter system set D alter set 我选择的是A。如果是ob oracle C 也可以选择,没有办法,最优的就选A就可以了。 我隐约记得第一次考的时候,是一个多选题。
最后总结:我们所有的努力,都是尽可能一次性通过笔试考试。准备得越充分,考试通过得概率越高。 但也会遇到随机选择试题偏难的情况,或者看错题,要求选择错误的,你看到第一个正确就答题了;或者判断题,正确与错误经常交换顺序,容易选错,最后相差一两分而没有过的情况。这次我考完的时候,我用了一个草稿纸记录了一下,我不确定的答案,都还是有十七个左右,最后检查了一遍,发现没有常识性错误就交卷了。


