版本信息
类目 | 描述 |
---|---|
版本号 | 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 数据库运行过程中将操作系统时间向过去回调。