OBCP考试经验分享

1、考试大纲

OBCP考试经验分享_第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 sqlauditobservervplan_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 是立即生效还是,需要重连才生效?

更多数据库分享可关注公众号:
OBCP考试经验分享_第2张图片

你可能感兴趣的:(oceanbase,oceanbase,obcp)