绝密!OceanBase OBCP备考模拟题讲解(3)

「源de爸讲数据库」每天更新OceanBase OBCP题库及全网独家超详细题目解析,祝您早日持证上岸!

现如今,一大批国产数据库随着国产化浪潮,已经逐步被越来越多的人认可。OceanBase便是其中一个优秀代表。

做这个日更专题,是希望能以边练边学的方式,带大家快速入门一套新的数据库产品,养成每日学习的习惯。

我们的目标:轻刷题,享知识!

话不多说,坐稳扶好,我们发车了~

1、某 DBA打算通过回收站功能恢复了一张误删除表,但发现表井不在回收站中,可能的原因有?

A、回收站中的对象已被PURGE命令清理

B、表已被其它的DBA恢复成另一个名称的表

C、该租户是曾被删除,后来又重建回来的

D、该租户的回收站功能没有开启

E、回收站中对象已过期,被系统自动清理

习题解析:

  • 默认回收站为关闭状态,此时对数据库对象或租户进行 DROP 操作时不会进入回收站,回收站中也无法查询到该对象。回收站可分为全局和Session级别进行配置。
  • Purge 操作会删除对象和从属于该对象的对象(租户 => 库 => 表 => 索引)
  • 回收站在原理上说就是一个数据字典表,放置用户删除的数据库对象信息。用户删除的对象被放入回收站后,其实仍然占据着物理空间,除非您手动进行清除(PURGE)或者对象定期被数据库系统删除。

正确答案:A、B、C、D、E

文档出处:

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001050133

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001050134

2、集群中存在4个表:T0(TO有2个分区,P00,P01),T1(T1有2个分区P10,P11),T2(T2有2个分区P20,P21),T3(T3有2个分区 P30,P31)。T0,T1,T2,T3属于同一个表组TGO,那么表组TG0中包含4个分区组?

A、正确

B、错误

习题解析:

  • 在 V3.x 版本中,创建表组时需要即刻定义好分区规则,后续加入的表要求与表组的分区方式完全一致。
  • 4.X版本以后,新增SHARDING配置项,只需配置NONE/PARTITION/ADAPTIVE等不同属性,就可以对进入表组的表分区方式有不同的约束,默认SHARDING=ADAPTIVE(要求加入表组的表其对应的一级分区和二级分区必须与表组中所有表的一级分区和二级分区的分区定义一致,包括分区类型、分区个数、分区值)

表组TG0中包含2个分区组,分布示意图如下:

表名 分区组1(同号分区) 分区组2(同号分区)
T0 分区P00 分区P01
T1 分区P10 分区P11
T2 分区P20 分区P21
T3 分区P30 分区P31

示例:表组内有3个分区表,每个分区表拥有3个分区的情况:

正确答案:B

文档出处:

https://www.oceanbase.com/docs/community-observer-cn-10000000001880391

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001052130

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001057394

3、创建表时,可以使用一些哪些标记?

A、字母

B、数字

C、#

D、_

习题解析:表命名不使用系统保留字和关键字

正确答案:A、B、D

文档出处:

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001050386

4、OceanBase 中支持的2种租户模式为?

A、Oracle

B、SQL Server

C、MySQL

D、PostgreSQL

习题解析:MySQL/Oracle 两种兼容模式下的用户租户

正确答案:A、C

文档出处:

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001049929

5、以下关于OceanBase各类副本,说法错误的是?

A、全能型副本和日志型副本都参与投票

B、全能型副本和日志型副本都有SSTable

C、只读型副本有MemTable和SSTable

D、只读型副本包含完整的日志

习题解析:

  • 全能型副本:有事务日志(RedoLog)、MemTable和SSTable 等全部完整的数据和功能。
  • 日志型副本:有日志的副本,没有MemTable和SSTable,可以参与投票并对外提供日志服务。
  • 只读型副本:有MemTable和SSTable,也有完整的日志但不属于paxos组,不参与投票,作为一个观察者实时追赶paxos成员的日志,并在本地回放。

正确答案:B

文档出处:

https://open.oceanbase.com/course/detail/6292 (第四章PPT第四页)

6、、能够加速转储的参数?

A、freeze_trigger_percentage

B、minor_freeze_times

C、major_compact_trigger

D、minor_merge_concurrency

习题解析:

  • 加速转储的手段:
    • 1、调低 freeze_trigger_percentage(用于设置触发全局冻结的租户使用内存的阈值百分比。);
    • 2、手动执行 alter system minor freeze 触发;
    • 3、调高 minor_merge_concurrency(转储时的并发线程数,从 V4.0.0版本开始弃用)
  • 加快合并的手段:
    • 1、调低 major_compact_trigger;
    • 2、手动执行 alter system major freeze 触发;
    • 3、调高 minor_freeze_times(用于设置多少次转储触发一次全局合并,该配置项与 major_compact_trigger 配置项具有相同功能,从 V4.0.0版本开始弃用)

正确答案:A、D

文档出处:

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001050147

7、可以单独删除hash分区表的其中一个分区?

A、正确

B、错误

习题解析:

一级分区表的分区类型有Range/List/Hash(Oracle模式),Range/Range Columns/List/List Columns/Hash/Key(MySQL模式),其中Hash/Key均不支持删除分区。此外,删除一级分区时,可以删除一个或多个分区,但不能删除全部分区。

正确答案:B

文档出处:

https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000886352

https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000886343

8、、在 OB 中,sql_id 能够唯一标识一条参数化之后的sql,所以在gvSplan_cache_plan_stat这张表中,sql_id是唯一的,也就是说不可能出现两条记录包含相同的sql_id。

A、正确

B、错误

习题解析:

  • 该视图从 V4.0.0 版本开始视图名由GV$PLAN_CACHE_PLAN_STAT调整为GV$OB_PLAN_CACHE_PLAN_STAT。其中,SQL_ID指的是缓存对象对应的 SQL ID,如果是 PL 对象,则该字段为 NULL
  • OceanBase数据库通过SQL_ID区分不同的SQL,可以理解为SQL指纹

Tips:SQL_ID 是通过参数化的原始SQL取MD5加密得到的,方法如下:

python 复制代码
IMPORT hashlib
sql_text='SELECT \* FROM t1 WHERE c2 = ?'
sql_id=hashlib.md5(sql_text.encode('utf-8')).hexdigest().upper()
PRINT(sql_id)`

正确答案:B

文档出处:

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001053018#3-title-使用 SQL_ID 创建 Outline

9、key 分区类型的分区表,如果在建表语句中,如果不指定任何分区键,例如:create table t1(c1 int primary key, c2 int) partition by key() partitions 5,则会:

A、语法有问题,分区键不能为空,这个DDL语句报错

B、没有分区键

C、以建表语句中的第一列作为分区键

D、以主键作为分区键

习题解析:分区键必须是主键或唯一键的子集。不指定的话,优先以主键分区。

正确答案:D

文档出处:

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001052229

10、obproxy 决定路由结果所依赖信息:

A、目标server的合并状态

B、当前请求的库表名字信息

C、目标server的idc、region的信息

D、当前请求状态,强一致性or弱一致性

习题解析:

  • obproxy路由策略主要有:读写分离、备优先读、黑名单机制、事务路由
  • 读写分离处理的是强/弱一致性这类访问控制策略。
  • 备优先读,仅在弱一致性读时生效,可以适当控制针对主备库的合并状态以及所在机房,采取不同的选取策略
  • 黑名单机制可以自适应处理OBServer节点的错峰合并、升级、leader 切换、宕机、启动和停止等过程中的OBServer节点访问控制。
  • 事务路由有两种方式,一种是将同一个事务的语句统一路由到一个数据节点上执行。另外一种则是将事务中的语句拆分,路由到不同的数据节点执行,

正确答案:A、B、C、D

文档出处:

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001050786


你的天赋,需要每天兑现~ Enjoy!

相关推荐
ever_up97322 分钟前
EasyExcel的导入与导出及在实际项目生产场景的一下应用例子
java·开发语言·数据库
鹿子铭1 小时前
单线程Redis:Redis为什么这么快
数据库·redis
JSON_L2 小时前
MySQL 事务处理
数据库·mysql
爱打lan球的程序员3 小时前
redis分布式锁和lua脚本
数据库·redis·分布式
说书客啊4 小时前
计算机毕业设计 | springboot旅行旅游网站管理系统(附源码)
java·数据库·spring boot·后端·毕业设计·课程设计·旅游
hummhumm4 小时前
数据库系统 第46节 数据库版本控制
java·javascript·数据库·python·sql·json·database
ac-er88884 小时前
Flask如何创建并运行数据库迁移
数据库·python·flask
传而习乎5 小时前
【Postgresql】地理空间数据的存储与查询,查询效率优化策略,数据类型与查询速度的影响
数据库·postgresql
King.6245 小时前
SQLynx如何提高企业数据库安全?
数据库·sql·mysql·postgresql·oracle
夜夜亮晶晶6 小时前
MySQL——表操作
数据库·mysql