GBase 8c
运维管理
文章

gsql \set元命令参考

GBase社区管理员
发表于2024-02-05 10:39:0152次浏览0个评论
名称命令说明取值范围
\set VERBOSITY value

该变量控制错误报告的冗余行。

value可选值

  • default

  • verbose

  • terse

\set ON_ERROR_STOP value

如果设置该变量,脚本处理将马上停止。

如果该脚本是从另外一个脚本调用的,那个脚本也会按同样的方式停止。

如果最外层的脚本不是从一次交互的gsql会话中调用的,而是用-f选项调用的,gsql将返回错误代码3,以示这个情况与致命错误条件的区别(错误代码为1)。

value可选值

  • on/off

  • true/false

  • yes/no

  • 1/0

\set RETRY [retry_times]

用于控制是否开启语句出错场景下的重试功能,参数retry_times用来指定最大重试次数,缺省值为5,取值范围为5-10。当重试功能已经开启时,再次执行\set RETRY可以关闭该功能。

使用配置文件retry_errcodes.conf列举需要重试的错误码列表,该文件和gsql可执行程序位于同一级目录下。该配置文件为系统配置,非用户定义,不允许用户直接修改。

当前支持以下出错场景的重试:

  • YY001:TCP通信错误,Connection reset by peer

  • YY002:TCP通信错误,Connection reset by peer

  • YY003:锁超时,Lock wait timeout.../wait transaction xxx sync time exceed xxx

  • YY004:TCP通信错误,Connection timed out

  • YY005:SET命令发送失败,ERROR SET query

  • YY006:内存申请失败,memory is temporarily unavailable

  • YY007:通信库错误,Memory allocate error

  • YY008:通信库错误,No data in buffer

  • YY009:通信库错误,Close because release memory

  • YY010:通信库错误,TCP disconnect

  • YY011:通信库错误,SCTP disconnect

  • YY012:通信库错误,Stream closed by remote

  • YY013:通信库错误,Wait poll unknown error

  • YY014,YY015,53200,08006,08000,57P01,XX003,XX009等

同时,出错时gsql会查询数据库节点的连接状态,当状态异常时会sleep 1分钟再进行重试,能够覆盖大部分主备切换场景下的出错重试。

retry_times取值范围为:5-10
评论已关闭