MyGit

v4.2.3_CE_BETA

oceanbase/oceanbase

版本发布时间: 2024-04-29 10:53:46

oceanbase/oceanbase最新发布版本:v4.2.4_CE(2024-07-15 09:44:43)

版本信息

项目 描述
发布日期 2024-4-29
版本号 V4.2.3_CE_BETA
Commit 号 c129d71
OBServer RPM 版本号 oceanbase-ce-4.2.3.0-100000112024042411

版本定位

V4.2.3_CE_BETA 为 V4.2.x_CE 系列最新版本,支持了一系列 MySQL 兼容特性,如角色、列级权限、Union Distinct RCTE 及大量小功能兼容。在多个场景优化了系统性能,如优化多模类型读写计算和 OBKV 处理效率,扩展 Batch DML 的并行执行能力,提升备份/网络备库性能,解决自增列/Sequence 在 Order 模式下的性能问题等。同时,备份恢复扩展支持了 S3 及兼容 S3 协议的对象存储(如:OBS,GCS)作为备份目的端。在资源优化方面,进行了一系列优化包括 DDL 临时结果空间优化、旁路导入能力提升和全局前后台 CPU 资源隔离等。新版本也实现了多个业务期待的易用性功能,如用于日志分析和误操作识别的 ObLogMiner 功能,应对 Buffer 表性能问题的合并策略选择,提供模糊绑定计划和限流方式的 Format Outline,用于识别无用索引的索引使用监控特性,提供更高可读性的面向数据库管理员的 alert.log 系统日志,增加日志流副本管理的用户命令,提供物理恢复进度展示能力。更详细的 PX 诊断数据以及 ASH Report 的节点级分析等,有效提高系统易用性。

推荐用于测试,暂不建议用于生产。

关键特性说明

内核增强

MySQL 兼容

多模特性

OBKV 增强

性能提升

资源优化

可靠性提升

高可用增强

易用性提升

兼容性变更

产品行为变更

新增如下变更:

功能 变更点说明
并行 COMMENT、并行 CREATE INDEX 升级后默认关闭 V4.2.2_CE 版本开始支持并行 COMMENT 和并行 CREATE INDEX 功能,默认开启。V4.2.3_CE 版本新建集群或租户时,也会默认开启并行 COMMENT 、并行 CREATE INDEX 以及 V4.2.3_CE 版本新增的并行 CREATE VIEW 功能。但 V4.2.2_CE 及之前的 V4.x 版本的租户升级到 V4.2.3_CE 版本后,以上三类并行 DDL 特性会变更为默认关闭状态,如有相关类型的 DDL 高性能需求,请通过设置隐藏配置项 _parallel_ddl_control 开启。例如,通过以下命令开启并行 COMMENT、并行 CREATE INDEX,关闭并行 CREATE VIEW 特性:alter system set_parallel_ddl_control='SET_COMMENT:ON,CREATE_INDEX:ON,CREATE_VIEW:OFF' tenant='xxx';
PS 协议参数数量超过 65535 时,由只返回 65535 个参数变更为报错 MySQL 协议有最多 65535 个参数的限制,如果参数数量超过 65535,会抛出错误。 OceanBase 数据库之前版本不是抛出错误,而是只返回 65535 个参数。 新版本兼容了 MySQL 行为,参数超过 65535 个时报错处理。
Rename Table 变更为加锁操作 历史版本中 Rename Table 是一个不需要加锁的 Online DDL 操作,事务跨 Rename Table 操作时,可能会出现非预期的问题。V4.2.3_CE 版本支持对 Rename Table 加表锁,并增加 Rename Table 期间的读写防御。
[g]v$plan_cache_plan_explain 支持仅指定 plan_id 进行数据查询 之前版本查询 [g]v$plan_cache_plan_explain 视图时,必须同时指定 ip + port + tenant_id + plan_id 四个过滤条件才会返回数据,仅指定 plan_id 时返回结果为空,易用性较差。新版本支持了该视图的底层虚拟表扫描,允许仅指定 plan_id 进行数据查询,可准确返回查询结果。
[g]v$ob_sql_audit 视图 tenant_id 字段含义变更 普通租户下产生的一些内部请求是基于系统租户开始初始化的,然后读数据时,切到普通租户去执行,这种情况下 tenant_id 是 1, effective_tenant_id 是当前租户 ID。 基于 OAS 的租户内有序采集需求,V4.2.3_CE 版本将可用作索引的字段 tenant_id 调整为与 effective_tenant_id 字段等价。
[g]v$ob_sql_audit 视图 sql_id 字段取值变更 V4.2.3_CE 版本之前,CALL 语句的 sql_id 为空字符串生成的 MD5 编码;匿名块语句的 sql_id 为未经参数化的原始 PL 代码字符串生成的 MD5 编码。V4.2.3_CE 版本将两者的 sql_id 都修改为参数化之后的语句生成的 MD5 编码。
[g]v$ob_active_session_history 字段取值变更 V4.2.3_CE 版本之前,MODULEACTIONCLIENT_ID 一直为 NULL。V4.2.3_CE 版本开始,这三列真实展示用户设置信息。(通过 DBMS_APPLICATION_INFO 设置 MODULEACTION,通过 DBMS_SESSION 设置 CLIENT_ID)。
未指定别名的 null 值投影列名称修改为 NULL MySQL 会将未指定别名的 null 值(\\N, null, Null...)投影列的名称设置为 NULL,而出现在复合表达式中的 null 会保持原串。OceanBase 历史版本不会对 null 值投影列的名称做任何修改。新版本在 ob_compatibility_version = 4.2.3.0 或指定之后的 V4.2.x_CE 版本时,MySQL 模式下会修改为和 MySQL 相同行为。
禁止在 Delete/Update 语句中的 Limit 子句中使用 Offset 语义 新版本在 ob_compatibility_version = 4.2.3.0 或指定之后的 V4.2.x_CE 版本时,MySQL 模式下禁止在 Delete/Update 语句中的 Limit 子句中使用 Offset 语义。具体而言,OceanBase 原先支持的 update/delete...limit x,xupdate/delete...limit x offset x 写法,现在需要语法报错,与 MySQL 行为保持一致。
REPLACE('abd', '', null) 返回结果按 ob_compatibility_control 分别兼容 新版本在 ob_compatibility_version = 4.2.3.0 或指定之后的 V4.2.x_CE 版本时,历史版本升级后或新建租户时取 ob_compatibility_control = MYSQL5.7 ,MySQL 模式下 REPLACE('abd', '', null) 行为由兼容 MySQL 8.0 修改为兼容 MySQL 5.7。
限制用户变量最长 64 字符 新版本在 ob_compatibility_version = 4.2.3.0 或指定之后的 V4.2.x_CE 版本时,MySQL 模式下用户变量长度由不设限修改为最长 64 字符。
Outline、Sequence 新增权限管控 新版本在 ob_security_version = 4.2.3.0 或指定之后的 V4.2.x_CE 版本时, MySQL 模式下需要授予 CREATE/ALTER/DROP 权限后,用户才可以创建和管理 Outline、Sequence。
创建和管理 TABLESPACE 新增 CREATE TABLESPACE 权限管控 新版本在 ob_security_version = 4.2.3.0 或指定之后的 V4.2.x_CE 版本时, MySQL 模式下需要授予 CREATE TABLESPACE 权限后,用户才可以创建和管理 TABLESPACE。
使用 IP 启动时移除与网卡名不匹配导致的启动失败 在启动 OBServer 时,如果无法找到与 local_ip 对应的本地网卡名称,新版本不会启动失败,而是会记录一条错误日志,并继续使用配置中的 devname 作为本地网卡名。

视图变更

新增如下变更:

视图 变更类型 变更说明
CDB/DBA_OB_RESTORE_PROGRESS 新增列 新增 RECOVER_SCNRECOVER_SCN_DISPLAYRECOVER_PROGRESSTABLET_COUNTFINISH_TABLET_COUNTRESTORE_PROGRESS 6 列,用于展示物理恢复进度。
CDB/DBA_OB_LS_REPLICA_TASKS 新增列 新增 DATA_SOURCE_SVR_IPDATA_SOURCE_SVR_PORTIS_MANUAL 列,用于记录容灾任务执行时引用的数据源和容灾任务生成来源。
CDB/DBA_OB_LS_REPLICA_TASK_HISTORY 新增 新增系统视图,用于展示容灾任务执行历史。CDB 视图仅在 SYS 租户支持,DBA 视图在所有租户支持。
CDB/DBA_OB_AUX_STATISTICS 新增 用于展示每个租户的辅助统计信息。CDB 视图仅在 SYS 租户支持,DBA 视图在所有租户支持。
[G]V$SQL_WORKAREA 新增列 新增 DB_ID 字段,用于描述该请求的连接所属的数据库 ID。
[G]V$OB_SQL_AUDIT 新增列、字段含义调整、字段取值变更
  • 新增 STMT_TYPE 字段,用于判断 SQL 类型。
  • 新增 NETWORK_WAIT_TIME 字段,用于展示网络类别等待事件的等待时间。
  • 新增 PROXY_USER 字段,用于代理用户登录场景展示代理用户名称信息。
  • TENANT_ID 字段调整为与 EFFECTIVE_TENANT_ID 字段等价。
  • SQL_ID 字段针对 CALL 语句执行的 PL 请求、通过匿名块执行的 PL 请求,展示语句真实生成的 MD5 编码。
[G]V$OB_PROCESSLIST 新增列 新增 PROXY_USER 字段,用于代理用户登录场景展示代理用户名称信息。
[G]V$OB_ACTIVE_SESSION_HISTORY 字段取值变更 V4.2.3_CE 版本开始,MODULEACTIONCLIENT_ID 三列真实展示用户设置信息。(通过 DBMS_APPLICATION_INFO 设置 MODULEACTION,通过 DBMS_SESSION 设置 CLIENT_ID
[G]V$OB_SESSION_PS_INFO 新增 用于展示租户所有 Session 打开的 PS 信息。V$ 视图表示当前 OBServer,GV$ 视图表示所有 OBServer。在所有租户下支持。
CDB/DBA_INDEX_USAGE 新增 用于展示索引访问信息。CDB 视图仅在 SYS 租户支持,DBA 视图在所有租户支持。
V$OB_COMPATIBILITY_CONTROL 新增 MySQL 模式视图,用于展示所有可以按 OceanBase 数据库发行版本进行产品行为兼容控制的功能。
mysql.role_edges 新增 MySQL 模式视图,用于展示角色和用户的授予关系。
mysql.default_roles 新增 MySQL 模式视图,用于展示用户默认启用的角色。
mysql.columns_priv 新增 MySQL 模式视图,用于展示用户拥有的列级权限。
sys_external_tbs.__all_external_alert_log_info 新增 sys 租户下新增系统外部表,用于结构化查看 alert.log 日志信息。

配置项变更

配置项 变更类型 变更说明
log_storage_compress_all 新增 新增租户级配置项,用于控制是否开启 CLOG 存储压缩功能。默认为 False,表示不开启 CLOG 存储压缩。
log_storage_compress_func 新增 新增租户级配置项,用于控制 CLOG 存储压缩的压缩算法,可设置为 lz4_1.0zstd_1.0zstd_1.3.8。默认为 lz4_1.0
enable_kv_group_commit 新增 新增租户级配置项,用于控制是否开启 OBKV 组提交功能,在开启的情况下,服务端会将操作按照执行计划分组,按组执行;在未开启的情况下,服务端将会一个一个执行。默认为 False,表示不开启。
choose_migration_source_policy 新增 新增租户级配置项,用于控制迁移源端的选择策略。提供 2 种选择:
  • IDC:在同 IDC 的机器中优先选择 Follower 副本作为源端,若仅有 Leader 副本,则选 Leader 副本。
  • Region:在同 Region 的机器中优先选择 Follower 副本作为源端,若仅有 Leader 副本,则选 Leader 副本。
data_disk_write_limit_percentage 新增 新增集群级配置项,用于控制数据盘达到设置的水位后,用户写入报错的问题,发现问题以后,可以通过删表的方式紧急释放空间,避免集群故障。该配置项应该大于 data_disk_usage_limit_percentage,开启时建议配置:(1-memstore_limit_size / data_disk_size)*100%。默认值为 0,表示不开启停止用户写入的功能。
alert_log_level 新增 新增集群级配置项,用于控制 alert.log 的日志级别,如 INFO、WARN、ERROR,默认为 INFO。
syslog_disk_size 新增 新增集群级配置项,用于控制系统日志可使用的总磁盘空间。默认为 0M,即兼容老版本默认行为,可使用整块磁盘。
syslog_compress_func 新增 新增集群级配置项,用于控制系统日志文件压缩算法,可选 nonezlib_1.0zstd_1.0zstd_1.3.8。默认为 none,表示不压缩系统日志文件。
syslog_file_uncompressed_count 新增 新增集群级配置项,用于控制每种日志不压缩的系统日志文件数量。默认为 0。
enable_global_background_resource_isolation 新增 新增集群级系统配置项,用于控制是否对全局的前后台任务进行 CPU 资源隔离。默认为 False,表示不隔离。
global_background_cpu_quota 新增 新增集群级系统配置项,用于控制 enable_global_background_resource_isolation 为 True 时,后台任务可使用的 CPU 配额。默认为-1,表示不受 Cgroup 限制。
net_thread_count 变更默认值 该配置项用于控制网络 I/O 线程数量。默认值仍然为 0,但自适应策略有变化。不同 CPU 数量下,可使用线程数有所提升。
ddl_high_thread_score 新增 新增租户级配置项,用于控制执行 DDL 补数据过程中,对每个 Tablet 的 KV 数据合并可使用的 DAG 线程数。默认为 6,和历史版本可用线程数一致。
lob_enable_block_cache_threshold 新增 新增租户级配置项,用于控制 OUTROW 存储的 LOB,如果长度小于等于该阈值,则进入微块缓存来加速下一次查询。默认 256K。
ob_default_lob_inrow_threshold 变更默认值 该配置项用于指定 LOB INROW 存储的最大阈值,默认值由 4096 调整为 8192。

系统变量变更

变量 变更类型 变更说明
activate_all_roles_on_login 新增 新增 MySQL 租户下 GLOBAL 级系统变量,用于控制用户登录时是否激活所有角色。
ob_compatibility_control 新增 新增 MySQL 租户 GLOBAL 级系统变量,用于控制存在兼容行为冲突时,OceanBase 数据库和 MySQL 5.7 行为一致,还是和 MySQL 8.0 行为一致。默认为 MYSQL5.7。创建租户时指定,租户创建后不允许修改。
ob_compatibility_version 新增 新增租户下 GLOBAL 系统变量,用于控制产品行为发生变更的功能,行为和 OceanBase 哪个发行版本兼容。新建集群时,默认为当前集群版本;版本升级时,为前一个版本配置,当前默认 4.2.1.0。可修改。
ob_security_version 新增 新增租户下 GLOBAL 系统变量,用于控制安全相关的产品行为发生变更的功能,行为和 OceanBase 数据库发行版本兼容。新建集群时,默认为当前集群版本;版本升级时,为前一个版本配置,当前默认 4.2.1.0。可修改,和 ob_compatibility_version 区别为该变量只能推高,不能回退。
cardinality_estimation_model 新增 新增 GLOBAL/SESSION 级系统变量,用于控制优化器估行时使用的相关性模型。可选 INDEPENDENT/PARTIAL/FULL 多种模型:
  • INDEPENDENT:假设谓词间是完全独立的,是 V4.2.2_CE 及之前的优化器所使用的假设。多个 Filter 的联合选择率由单个 Filter 的选择率相乘得到。该假设在 Filter 较多时往往会导致估行偏小。
  • PARTIAL: 假设谓词间有一定程度的相关性。多个 Filter 的联合选择率会通过指数回退计算。
  • FULL: 假设谓词间是完全相关的。多个 Filter 的联合选择率直接由其中最小的 Filter 选择率决定,可以得到一个较大的估行结果。较为极端。
默认为 PARTIAL。

函数/系统包变更

函数名 变更类型 变更说明
DECODE_TRACE_ID 新增 用于解析 trace_id 获取发起 SQL 请求的 OBServer IP、Port 信息。
CURRENT_ROLE 新增 用于展示当前 Session 激活的 Role。
PASSWORD 新增 支持 MySQL 5.7 Password 表达式,用于计算和返回哈希密码值。

语法变更

语法 变更说明
新增指定 SET/PIECE 级恢复源命令 新增指定位点查看恢复需要使用的 SET/PIECE 及指定 SET/PIECE 级路径恢复到指定位点:
  1. 加载需要恢复的路径:ALTER SYSTEM ADD RESTORE SOURCE 'xxx';
  2. 如果输入错误,可执行下述语句来撤销之前的输入:ALTER SYSTEM CLEAR RESTORE SOURCE;
  3. 调用恢复命令:ALTER SYSTEM RESTORE <$restore_tenant> UNTIL '<$restore_checkpoint>' WITH 'xxx';
  4. 解析恢复到指定位点所需的备份 SET/PIECE 的原始路径:ALTER SYSTEM RESTORE FROM 'uri' UNTIL { TIME='timestamp' | SCN=scn } PREVIEW;
  5. 预览恢复到期望时间所需要的备份 SET/PIECE 的原始路径:SHOW RESTORE PREVIEW;
新增日志流副本管理命令
  1. 添加日志流副本。
  2. 删除日志流副本。
  3. 转换日志流副本类型。
  4. 迁移日志流副本。
  5. 修改日志流的 paxos 成员数量。
  6. 取消日志流副本任务。
新增 auto_increment_cache_size 表级选项 新增表级选项语法,可以在 CREATE TABLE 或者 ALTER TABLE 时指定 auto_increment_cache_size。 比如create table t1 (...) auto_increment_cache_size=xxx; alter table t1 set auto_increment_cache_size=xxx;该值默认为 0 表示未配置,此时会使用租户级配置项作为自增列缓存大小。
新增 table_mode 表级选项 V4.2.3 重新启用了 V3.x 系列的表选项 table_mode,用户可以通过为每张表设置不同的表选项,以指定不同触发频率的快速冻结与自适应合并策略来应对 Buffer 表问题。如 create table t1 (c1 int) table_mode = 'normal/queuing/moderate/super/extreme';
新增 DAS 层 DML 是否允许多线程并行执行的 HINT 新增 enable_parallel_das_dmldisable_parallel_das_dml 两个 HINT,分别用于控制开启和关闭 DAS 层 DML 并发。在租户级隐藏配置项 _enable_parallel_das_dml 为 True 的前提下:
  1. 场景 1 /+enable_parallel_das_dml enable_parallel_dml parallel(n)/ 中,该 HINT 组合会强制指定 DAS 并发执行,采用 parallel 定义的并发度;
  2. 场景 2 /+enable_parallel_dml parallel(n)/ 中,该 HINT 组合会优先使用 PDML,如果当前场景不支持 PDML 优化,会使用 DAS 并发执行优化;
  3. 场景 3 中 Session 上强制指定并行度时,行为等同于场景 2。
新增角色相关语法
  1. 创建 Role:CREATE ROLE [IF NOT EXISTS] role [, role ] ...
  2. 删除 Role:DROP ROLE [IF EXISTS] role [, role ] ...
  3. 授权 Role 给用户:GRANT role [, role] ... TO user_or_role [, user_or_role] ... [WITH ADMIN OPTION]
  4. 撤销给用户授予的 Role:REVOKE [IF EXISTS] role [, role ] ... FROM user_or_role [, user_or_role ] ... [IGNORE UNKNOWN USER]
  5. 设置用户登录时默认启用的 Role:
    • SET DEFAULT ROLE {NONE &#124; ALL &#124; role [, role ] ...} TO user [, user ] ...
    • ALTER USER [IF EXISTS] user DEFAULT ROLE {NONE &#124; ALL &#124; role [, role ] ...}
  6. 设置当前 Session 激活哪些 Role:SET ROLE { DEFAULT &#124; NONE &#124; ALL &#124; ALL EXCEPT role [, role ] ... &#124; role [, role ] ...}
  7. show grants 展开 Role 权限:SHOW GRANTS FOR user USING role
新增列级权限授予回收相关语法
  1. 授予列级权限:GRANT [priv [(col_list)] ]+ ON [db_name.]table_name TO user [with grant option];
  2. 回收列级权限:REVOKE [priv [(col_list)] ]+ ON [db_name.]table_name FROM user [with grant option];
支持复制表属性变更相关命令
  1. 普通表转复制表:ALTER TABLE t1 DUPLICATE_SCOPE = 'CLUSTER';
  2. 复制表转普通表:ALTER TABLE t1 DUPLICATE_SCOPE = 'NONE';

周边配套

OceanBase 数据库 V4.2.3_CE 版本推荐使用的平台工具版本如下:

组件 版本
ODP V4.2.3
OCP V4.2.2_CE_HF1
OBD V2.8.0
All in One V4.2.3
ODC V4.2.4-bp1
OBCDC V4.2.3
OMS V4.2.3_CE
OBClient V2.2.3
LibOBClient V2.2.3

升级说明

开源鸣谢

在此版本发布中,特别感谢社区伙伴的贡献:

感谢联通软研院团队邱永刚 @qiuyg3 在 ObLogMiner 功能上的贡献。

相关地址:原始地址 下载(tar) 下载(zip)

1、 oceanbase-ce-4.2.3.0-100000112024042411.el7.aarch64.rpm 85.74MB

2、 oceanbase-ce-4.2.3.0-100000112024042411.el7.x86_64.rpm 105.03MB

3、 oceanbase-ce-4.2.3.0-100000112024042411.el8.aarch64.rpm 85.78MB

4、 oceanbase-ce-4.2.3.0-100000112024042411.el8.x86_64.rpm 105.12MB

5、 oceanbase-ce-cdc-4.2.3.0-100000042024041514.el7.aarch64.rpm 95.83MB

6、 oceanbase-ce-cdc-4.2.3.0-100000042024041514.el7.x86_64.rpm 115.26MB

7、 oceanbase-ce-cdc-4.2.3.0-100000042024041514.el8.aarch64.rpm 97.17MB

8、 oceanbase-ce-cdc-4.2.3.0-100000042024041514.el8.x86_64.rpm 116.61MB

9、 oceanbase-ce-libs-4.2.3.0-100000112024042411.el7.aarch64.rpm 143.9KB

10、 oceanbase-ce-libs-4.2.3.0-100000112024042411.el7.x86_64.rpm 154.59KB

11、 oceanbase-ce-libs-4.2.3.0-100000112024042411.el8.aarch64.rpm 150.74KB

12、 oceanbase-ce-libs-4.2.3.0-100000112024042411.el8.x86_64.rpm 159.32KB

13、 oceanbase-ce-sql-parser-4.2.3.0-100000112024042411.el7.aarch64.rpm 1.93MB

14、 oceanbase-ce-sql-parser-4.2.3.0-100000112024042411.el7.x86_64.rpm 1.95MB

15、 oceanbase-ce-sql-parser-4.2.3.0-100000112024042411.el8.aarch64.rpm 1.93MB

16、 oceanbase-ce-sql-parser-4.2.3.0-100000112024042411.el8.x86_64.rpm 1.96MB

17、 oceanbase-ce-table-4.2.3.0-100000112024042411.el7.aarch64.rpm 50.65MB

18、 oceanbase-ce-table-4.2.3.0-100000112024042411.el7.x86_64.rpm 49.84MB

19、 oceanbase-ce-table-4.2.3.0-100000112024042411.el8.aarch64.rpm 50.7MB

20、 oceanbase-ce-table-4.2.3.0-100000112024042411.el8.x86_64.rpm 49.88MB

21、 oceanbase-ce-utils-4.2.3.0-100000112024042411.el7.aarch64.rpm 152.64MB

22、 oceanbase-ce-utils-4.2.3.0-100000112024042411.el7.x86_64.rpm 188.1MB

23、 oceanbase-ce-utils-4.2.3.0-100000112024042411.el8.aarch64.rpm 152.61MB

24、 oceanbase-ce-utils-4.2.3.0-100000112024042411.el8.x86_64.rpm 188.06MB

查看:2024-04-29发行的版本