文档中心MogDBMogDB StackUqbar
v5.0

文档:v5.0

支持的版本:

其他版本:

MogDB 5.0.6

1. 版本说明

MogDB 5.0.6是MogDB 5.0.0的补丁版本,于2024-03-30发布,其在MogDB 5.0.5的基础上新增部分特性并修复了部分缺陷,内容如下:


2. 新增特性

2.1 Ustore存储引擎商用

Append-Update模式的存储引擎Astore在大规模高并发更新场景下,受限于低效的空间管理,更新时延数量级劣化,对金融、安全等重点业务造成明显制约。

支持Inplace-Update的新存储引擎Ustore正式发布,在具备与Astore较一致的读写性能的同时,在空间管理、高热点更新等方面均具备优异性能表现,较好的解决了客户痛点。

相关页面配置Ustore

2.2 Select自动提交

MogDB对读写请求的处理全部放在事务机制下,这与Oracle读不启动事务、写隐式启动并显示提交事务的行为存在较大冲突,对Oracle类应用以及长只读连接很不友好。

本特性实现了Oracle类事务管理机制,显著降低了Oracle类应用迁移复杂度。

相关页面SELECT自动提交事务

2.3 导入导出增强

导入导出能力是数据备份和恢复、数据迁移、数据同步、数据分析以及数据交换等场景的重要依赖。其性能好坏直接影响重点业务的顺利开展。

为了强化工具对业务生态的支持,在现有gs_dump、gs_restore工具的基础上,实现了表级和表内两种级别并行化。在通用数据库场景获得了数倍性能提升,在大表、超大表等场景更获得了数十倍性能提升。

相关页面逻辑备份恢复效率增强

2.4 兼容性增强

  1. 支持group by后使用字符串常量,支持聚集函数进行嵌套使用,兼容Oracle语法

    相关页面ORDER BY/GROUP BY场景兼容支持聚集函数嵌套

  2. 新增参数behavior_compat_options的选项'accept_empty_str',来让用户自主决定所有数据类型中空串是否转变为null

  3. 新增gsql、libpq、odbc在AIX系统的版本,可以在AIX系统中使用客户端或者驱动访问数据库

  4. 兼容PG的INSERT...ON CONFLICT语法,出现唯一约束冲突时,将INSERT行为变更为UPDATE或DO NOTHING以避免报错

    相关页面INSERT支持ON CONFLICT子句

  5. 修改参数behavior_compat_options设置为'convert_string_digit_to_numeric'后,浮点数字符串与整型可以直接运算

  6. 支持将带AUTHID CURRENT_USER属性的存储过程授权给其他用户,存储过程中涉及到表也转换为对应用户所有权的同名表

    相关页面支持AUTHID CURRENT_USER

  7. 修改mod(val1, val2)函数参数为(float, int)时,隐式转换从mod(int, int)修改为mod(numeric, numeric),提高mod函数的计算精度

    相关页面mod函数兼容

  8. 支持ALTER SEQUENCE功能,在序列创建后可进行修改

  9. 支持UPDATE/DELETE语句结合return into子句使用,提升update/delete语句功能性

  10. 支持游标向后检索的能力,扩展游标使用场景

2.5 性能提升

  1. 查询执行过程中删除子查询中未被外部查询使用的列,提高查询性能

    相关页面支持裁剪子查询投影列

  2. 支持在建表后修改表的logged属性,支持将日志表修改为非日志表,不记录wal日志,提升插入效率

    相关页面支持在建表后修改表日志属性

  3. 支持通过SET sql_beta_feature = index_like_prefix_opt; 优化like'xxx'和like'xxx%'语句,提升执行性能

  4. 支持在query的子查询中对于无用的order by子句的消除,提升执行性能

    相关页面排序列裁剪

  5. 修改cte表的默认行为,使其可以被提升到上层查询,生成更优查询计划,以提升执行性能

  6. 新增参数behavior_compat_options的选项'bpchar_coerce_compat',让bpchar和text运算时隐式转换text为bpchar,使bpchar_col = 'xxx'::text条件可直接运用索引或者分区裁剪,提升查询效率

2.6 易用性提升

  1. 增加一些参数,例如work_mem、rewrite_rule等到hint中,增强用户使用hint来对单条语句执行计划的控制能力

    相关页面优化器GUC参数的Hint

  2. 支持在BatchMode Insert时,insert失败返回报错的行数和错误信息,提升用户的错误识别能力

  3. 添加gs_xlog_keepers函数,用于查询数据库内部阻碍xlog日志清理的原因,帮助用户更好的清理xlog,减少磁盘占用

  4. 支持MERGE INTO语句中字段不用加表名前缀,提升SQL语法的兼容性,使用户减少应用修改

  5. 支持查看自治事务活跃数量以及相关细节,支持不停库释放自治事务,加强用户对于自治事务的控制

    相关页面自治事务管理视图及不停库释放自治事务

  6. 适配wal2json wal日志解析插件,可以将wal日志转换为json格式,提高wal日志内容可读性,方便用户了解备机日志状态

    相关页面wal2json使用手册

  7. 支持单条SQL报错回滚,当behavior_compat_options参数设置'sql_implicit_savepoint'选项时,事务中单条SQL报错不影响其它SQL的提交,提交会保留已正确执行的SQL结果

2.7 稳定性增强

  1. 新增参数protect_standby,用于保护备机不被switchover或者failover命令拉起为主机,使用户可以对指定备机升主行为进行控制

  2. 新增参数data_sync_failed_ignore,用于控制数据页同步到磁盘失败时,数据库停库或者保持运行状态的行为

    相关页面文件损坏处理

  3. 新增参数damage_page_ignore,控制数据库在recovery过程中遇到损坏或缺失page时可以强起数据库,用以做数据恢复工作

    相关页面文件损坏处理

  4. CM新增支持流复制双网段部署,用于网卡级高可用容灾(PTK 1.4及更高版本)

    相关页面MogDB/CM/PTK支持双网段

  5. CM新增参数enable_async_standby_promotion来控制两节点部署模式下是否允许异步备机升主,提高用户对HA行为的控制


3. 修复缺陷

  1. 【3098】修复了pg_get_userbyid()相比PG性能差的问题
  2. 【2949】修复了explain查询系统视图报错failed to find plan for subquery xx的问题
  3. 【2952】修复了pg_get_tabledef函数返回的DDL无法正常执行的问题
  4. 【3917】修复MogDB创建临时表有IF NOT EXISTS报错的问题
  5. 【4159】修复dolphin模式下,char函数对特定数据类型转换失败的问题
  6. 【3759】修复B模式下uint8类型和普通数字无法直接进行运算的问题
  7. 【3726】修复Hash子分区表无法通过pg_get_tabledef获取表定义的问题
  8. 【3643】修复了package内的函数或过程名与synonym名称重复后报错的问题
  9. 【3567】修复了convert_string_digit_to_numeric对表达式不生效的问题
  10. 【3566】修复了A模式下的all/any (list)语法的兼容问题
  11. 【3588】修复了数据库日志出现访问template1数据库权限不足的报错问题
  12. 【3456】修复了自定义包与参数proc_outparam_override冲突问题
  13. 【3401】修复了date和bigint类型计算报错问题
  14. 【3328】修复了gs_dump导出的建表语句与原始有差异的问题
  15. 【3360】修复了dbms_utility.format_call_stack返回值歧义的问题
  16. 【3280】修复了dolphin操作json时出现乱码的问题
  17. 【3374】修复了date_format不支持带时区时间格式的问题
  18. 【3191】修复了dolphin数字操作符计算优先级有误导致结果不符预期的问题
  19. 【3576】修复了参数dolphin.b_compatibility_mode设为on会导致数据字典查询失败的问题
  20. 【3259】修复了MogDB数据库自带sys_guid()函数只生成一条相同数据的问题
  21. 【3045】修复了mysql模式下,建表的ddl对关键字key添加了双引号,使用gs_dump导成sql文件和show create table看到的ddl没有双引号,导致导出的sql文件无法导入的问题
  22. 【3180】修复了gs_dump逻辑备份无法还原出触发器的owner和creator的问题
  23. 【3307】修复了RAISE EXCEPTION USING DETAIL DETAIL定义信息没返回定位问题
  24. 【3950】修复了type对象已经存在时应提示对象已存在,但目前提示为语句中的语法错误的问题
  25. 【3922】修复了completion不能作为非保留关键字使用的问题
  26. 【3419】修复了gs_probackup和brm的备份压缩在自定义表空间下不生效的问题
  27. 【3367】修复了标量子查询使用group by中使用到decode函数列作为关联条件时报错的问题
  28. 【2952】修复了pg_get_tabledef()函数返回建表语句顺序错误的问题
  29. 【3053】修复了开启query_dop后增加Hint返回值错误的问题
  30. 【3337】修复了plan_cache_type_validation修改后未重启,会出现"cached plan must not change result type"报错的问题
  31. 【4006】修复了配置VIP的数据库集群自动故障切换后客户端链接低概率卡住的问题
  32. 【3736】修复了配置VIP场景下,CM(Cluster Manager)集群自身故障切换可能导致数据库集群自动故障切换的问题
  33. 【3283】修复了修改most_available_sync参数且执行reload命令之后,参数无法立即生效的问题
  34. 【3167】修复使用select ... for share语法时,有几率会导致查询时出现找不到CSN文件的问题

4. 注意事项

如果您需要将当前低版本MogDB升级至5.0.6版本,请务必查看升级前必读,关于数据库升级的详细介绍请查看最新版本的升级指南

Copyright © 2011-2024 www.enmotech.com All rights reserved.