暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

OBCP考试经验分享

Joyce漫谈DB 2021-04-19
1509

1、考试大纲


2、考试范围

官方文档

教材

视频

obcp模拟试题(2题左右)

实验手册


3、考试总结

备份恢复占比很少,1道题左右

分布式事务,2道题左右(参与者、协调者)

分布式架构,4道题左右(租户、资源池、unit创建扩容)

Sql引擎,5道题左右(查询改写,执行计划)

Sql调优,8道题左右(分区表,hint,sql监控)

Obproxy,8道题左右(启动模式,LDC,弱一致性读,参数配置)

存储引擎,10道题左右(内存结构,转储合并冻结)

故障运维,10道题左右(用户权限,日志,黑屏运维,慢sql,系统视图,回收站,闪回)


4、具体分析

备份恢复:

恢复的最小力度:租户级


分布式事务:

参与者或者协调者down机

全部参与者发送prepare ok,客户端会commit


Sql引擎:

不能使用常量的场景:between and 应该可以使用常量,被物化的参数精度数字(round(4))和作为格式串的字符串常量(to_date(’’,‘yyyy-mm-dd’))不行

gv$plan_cache_plan_stat查看执行计划的 租户id srv_ip srv_port plan_id

业务数据模型设计原则:尽量避免跨机分布式事务

索引的作用

是不是所有sql都会进plan cache, 哪些不能(超过20m的等)


Sql调优:

ob分区表的优点

range column分区和range分区区别

hash分区和key分区区别 int

可以加分区–range分区

分区键与唯一索引、与主键的关系

改变连接顺序和连接方式的hint(leading和use_nl)

outline不生效的原因(-c没加,hint有错误,sql_id有变化)

create index idx_ab on test (a,b);explain select * from test where a=2 and b=‘2’;explain select * from test where b=‘2’ and a=1;索引是否都能生效

create table t1 (c1 int primary key, c2 int) partition by key() partitions 5 KEY分区分区键不写任何column,表示key分区的列是主键

dml语句 多选: A.merge,B.update,C.select D.delete


Obproxy:

弱一致性读的idc顺序

obproxy的启动模式,路由影响的因素:LDC配置,Observer 状态,租户的Zone 类型( 读写型 vs 只读型),路由精准度

Obproxy的参数修改:sys租户alter proxyconfig;普通租户:set @变量名=‘xx’

location cache 包含哪些路由信息 多选:A.系统租户sys租户信息,B.database 信息C.表/分区信息 D.普通租户信息

trace_log_slow_query_watermark是系统参数还是变量,默认值

obproxy连接ob集群的正确格式:sys@oracle_test#obdemo:20210127,sys@oracle_test#obdemo,sys@oracle_test

observer 默认端口号,obproxy默认端口号

obproxy 查看ldc命令:show proxyinfo idc;

obproxy 查看当前连接数命令行: show processlist?

obproxy和observer连接方式: 长连接?连接池?


存储引擎:

普通租户的memstore到上限,怎么判断是要转储还是合并

clog达到95% ob集群就无法继续提供服务(clog_disk_usage_limit_percentage)

内存占用最多的模块:KVcache和memstore

memtable中主要存在的行–insert行-update行-delete行

同一个分区的不同副本在物理大小上是否相同

zone_merge_concurrency生效

合并的三种方式:触发合并 定时合并和手动合并

根据一定策略一次合并zone—智能轮转合并

转储可以控制的级别:partition、server和租户,如果不指定:对所有observer的所有partition转储(集群级)

查询合并状态的表:__all_zone


分布式架构:

create resource pool test unit = ‘config_mysql_test_restore_zone2_S1_aam’,unit= ‘oracle_unit_config’, unit_num=1;

create resource pool test unit = ‘oracle_unit_config’,unit= ‘config_mysql_test_restore_zone2_S1_aam’, unit_num=1;

这个是取得是靠近unit_num的配置

create resource pool test unit = ‘config_mysql_test_restore_zone2_S1_aam’,unit= ‘oracle_unit_config’, unit_num=2;

只对zone1扩容,可以操作的语句,unit=2不行,可以修改unit的资源配置

unit ,resource pool ,租户占用的资源等相关的表

什么情况下需要开启负载均衡 扩容?partition选主?

分区自动选主相关参数:enable_auto_leader_switch,enable_rebalance

修改资源池报错:alter tenant resource pool 报错 resource unit not empty is not allowed ?什么意思

删除某个资源池的命令行drop resource_pool pool_name


故障运维:

用户的权限问题 table、 database 、和全局层级(一个普通用户没有租户权限)

替换observer节点

observer节点下电运维

唯一定位sql执行的是trace_id

下面哪些是事务日志:clog ilog

enable_syslog_recycle和max_syslog_file_count清理系统日志

OceanBase容忍的集群内时钟偏差为100ms

查看idc和region的表:__all_zone

对于等待事件和统计事件相关字段,时间类型单位如无特殊说明是微秒

分区移动的过程:先复制到另一台机器 ;分区服务从旧的机器切换到新的机器 ;再删除旧机器上的分区

observer慢sql的默认值,obproxy慢sql的默认值;怎么查看慢sql(gv s q l a u d i t 、 o b s e r v e r 的 日 志 ?) , 选 俩 , 但 v sql_audit、observer的日志?),选俩,但v sql

a

 udit、observer的日志?),选俩,但vplan_cache_plan_stat这个里面也有

闪回查询是同时支持oracle(基于scn和timestamp两种维度)和mysql租户 (基于snapshot)

undo_retention有效值的定义, 以及undo_retention为0时默认的历史版本是上一次合并时的版本

plan_cache_stat和sqlaudit表关于sql_id维度问题,哪张表是基于sql_id维度聚合?

slow log的时间阈值设置过小会引起哪些问题?

大量慢查询可能会引起什么问题:高并发?集群无法访问?等

truncate 表会进入回收站吗:eable_truncate_flashback默认是false,需要设为true,oracle回收站默认是打开的,mysql默认关闭

oracle类型租户默认的管理员用户是sys还是root,mysql类型租户默认的管理员用户是sys还是root?

set global 是立即生效还是,需要重连才生效?

5、ob官网报名

https://www.oceanbase.com/training/detail?level=OBCP



文章转载自Joyce漫谈DB,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论