暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGauss3.1.1高可用——作业失败自动重试

Olivia 2023-01-31
209

可获得性
本特性自openGauss 1.0.0版本开始引入。

特性简介
批处理作业中,在由于网络异常、锁冲突等出错情况下能够保证作业自动重试。

客户价值
网络异常、锁冲突等出错场景下无需人工干预,自动对出错查询进行重试,提高了可用性。

特性描述
openGauss数据库提供作业重试机制gsql Retry。

gsql Retry,对于需要进行重试的错误使用唯一的错误码(SQL STATE)进行标识。对客户端工具gsql进行功能增强,使用错误码配置文件(retry_errcodes.conf,置于和gsql同级的安装目录下)对需要重试的错误列表进行配置。gsql提供如下元命令来开启/关闭错误重试功能,重试次数设为范围为5~10,缺省值为5。

“”
set RETRY [number]
打开该功能时gsql会读取上述配置文件,错误重试控制器通过容器记录错误码列表。如果打开后出现配置文件中某一个错误,控制器会将每次缓存的查询语句重新发送给服务端进行重试,直到成功或超过重试次数报错。

特性增强
无。

特性约束
功能范围限制:

仅能提高故障发生时SQL语句执行成功率,不能保证100%的执行成功。

错误类型约束:

SQL语句出错时能够被识别和重试的错误,仅限在表1中定义的错误。

表 1 支持的错误类型列表
image.png
image.png

语句类型约束:

支持单语句存储过程、函数、匿名块。不支持事务块中的语句。

存储过程语句约束:

包含EXCEPTION的存储过程,如果在执行过程中(包含语句块执行和EXCEPTION中的语句执行)错误被抛出,可以retry,如果报错被EXCEPTION捕获则不能retry。
不支持使用全局变量的高级包。
不支持DBE_TASK。
不支持PKG_UTIL文件操作。
数据导入约束:

不支持COPY FROM STDIN语句。
不支持gsql \copy from元命令。
不支持JDBC CopyManager copyIn导入数据。
依赖关系
该特性依赖gsql工具端可以正常工作、错误列表配置正确。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论