openGauss这么多工具?到底要选哪个?(33)

70 阅读2分钟

#openGauss #入门 #安装 #数据库 #开源

知识来源:docs-opengauss.osinfra.cn/zh/

表 21 \set常用命令

名称

命令说明

取值范围

\set VERBOSITY value

这个选项可以设置为值default, verbose,terse之一以控制错误报告的冗余行。

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分钟再进行重试,能够覆盖大部分主备切换场景下的出错重试。

说明:

  1. 不支持事务块中的语句错误重试;
  2. 不支持通过ODBC、JDBC接口查询的出错重试;
  3. 含有unlogged表的sql语句,不支持节点故障后的出错重试;
  4. gsql客户端本身出现的错误,不在重跑考虑范围之内;

retry_times取值范围为:

#openGauss #入门 #安装 #数据库 #开源

知识来源:docs-opengauss.osinfra.cn/zh/