版本信息

类目

描述

版本号

V2.2.30-BP15

前置版本

V2.2.20

发布时间

2020 年 11 月 30 日

适用版本

支持从 V2.2.1-20200731153445 版本和 V2.2.20 版本直接升级到本版本。

注意

  • 从 V2.2.1 版本升级到 V2.2.30 版本必须使用 V2.2.30-BP10 及以上版本。

  • 如果从低版本升级到 V2.2.1 再升级到 V2.2.30,请确保升级到的 V2.2.1 版本是 V2.2.1-1865649 及之后的版本,并且升级到 V2.2.1 后合并或者转储一轮之后才能继续升级到 V2.2.30。

功能优化

  • 优化了事务层打印日志。减少打印日志到 observer.log 的数量。

  • 支持 Oracle 模式的 to_number 函数进行进制转换。

  • 优化 Oracle 模式 all_tab_columns 执行性能。

修复的问题

  • 修复了使用 Oracle mode 的 PL Package 在租户内存压力大时可能触发 plan cache 访问非法地址导致 observer crash 的问题。

  • 修复了刷新 location cache 在某些情况下会进入循环依赖从而导致循环无出口最终 stack 溢出的问题。该问题会导致observer core。

  • 修复了 OceanBase 数据库的限流功能限制了内部的刷新 Schema 的 SQL从而导致 schema 刷新过慢的问题。

  • 修复了 truncate table 过程中 insert 数据返回 duplicate primary key 的问题。

  • 修复了 check_micro_block_checksum 失败导致卡合并的问题。

  • 修复了临时表场景下,add plan 到 plan cache 中时,table_name 字符串处理没有 \0 结尾导致 observer core 的问题。

  • 修复了 Plan cache 在 evict plan 过程中访问已经释放的内存引起 observer core dump 的问题。

  • 修复了使用 lob 数据类型时,__all_virtual_meta_table 中统计的 required_size 总和比实际占用的磁盘空间小的问题。该问题是因为漏统计了 lob 类型数据占用的空间。

  • 修复了使用 Hash-Range 分区场景下,OceanBase 数据库内部租户 ID 为 500 的租户内存泄漏的问题。泄漏 Module 为 HashNode。

  • 修复了创建索引超时报错的问题。该问题导致创建索引忽略了 ddl_timeout 控制参数采用默认 2s 创建索引超时。在大表创建索引情况下容易发生创建索引超时失败的情况,并且重试也同样会超时。

  • 修复了由于错误码被覆盖导致内存不够的情况下没有报错而继续写,从而导致内存写越界进而引起的 core dump 问题。

  • 修复了 OceanBase 数据库 Oracle 模式下,比较 char 和 varchar 出现正确性问题的问题。

  • 修复了 MySQL 模式下 mode subtime 函数计算可能越界导致 4016 报错的问题。

  • 修复了创建分区表时可能导致 sstable meta 信息因为错误被忽略而写坏,进而导致重启时启动失败的问题。

  • 修复了在二级分区的分区表上建立索引时,可能导致 observer crash 的问题。

  • 修复了 MySQL 模式下对表添加列并指定列顺序后,结果不符合预期的问题。

已知问题

  • Oracle 模式下,不建议使用 nvarchar2 类型,使用该类型可能导致查询的 SQL 线程无响应。

  • Oracle 模式下,禁止设置 sql_mode 为 PAD_CHAR_TO_FULL_LENGTH,否则可能导致查询正确性问题。

  • Oracle 模式下禁止查询系统视图带有别名,否则会导致报错。

版本使用限制

  • 禁止将 clog 和数据放入同一个磁盘,尤其是机械磁盘。此情况下 CLOG 写盘有延迟可能导致 observer crash 问题。此外,clog 盘 IO 满可能导致系统核心表无 leader。

  • 禁止在 OceanBase 数据库运行过程中将操作系统时间向过去回调。