首页 > 数据库 > > 集群HA介绍-SQL语句出错自动重试
GaussDB 200支持在SQL语句执行出错时的自动重试功能(下文简称CN Retry)。对于来自gsql客户端、JDBC、ODBC驱动的SQL语句,在SQL语句执行失败时,CN端能够自动识别语句执行过程中的报错,并重新下发任务进行自动重试。
该功能的限制和约束如下:
CN Retry支持的错误类型列表和对应的错误码信息见表1, 可以通过GUC参数retry_ecode_list设置CN Retry支持的错误类型列表,但不建议用户直接修改该参数,如有修改需求请联系华为技术工程师协助处理。
错误类型 | 错误码 | 备注 |
|---|---|---|
对端连接重置(CONNECTION_RESET_BY_PEER) | YY001 | TCP通信错误:Connection reset by peer(CN和DN间通信) |
对端流重置(STREAM_CONNECTION_RESET_BY_PEER) | YY002 | TCP通信错误:Stream connection reset by peer(DN和DN间通信) |
锁等待超时(LOCK_WAIT_TIMEOUT) | YY003 | 锁超时,Lock wait timeout |
连接超时(CONNECTION_TIMED_OUT) | YY004 | TCP通信错误,Connection timed out |
查询设置错误(SET_QUERY_ERROR) | YY005 | SET命令发送失败,Set query |
超出逻辑内存(OUT_OF_LOGICAL_MEMORY) | YY006 | 内存申请失败,Out of logical memory |
通信库内存分配(SCTP_MEMORY_ALLOC) | YY007 | SCTP通信错误,Memory allocate error |
无通信库缓存数据(SCTP_NO_DATA_IN_BUFFER) | YY008 | SCTP通信错误,SCTP no data in buffer |
通信库释放内存关闭(SCTP_RELEASE_MEMORY_CLOSE) | YY009 | SCTP通信错误,Release memory close |
SCTP、TCP断开(SCTP_TCP_DISCONNECT) | YY010 | SCTP通信错误,TCP disconnect |
通信库断开(SCTP_DISCONNECT) | YY011 | SCTP通信错误,SCTP disconnect |
通信库远程关闭(SCTP_REMOTE_CLOSE) | YY012 | SCTP通信错误,Stream closed by remote |
等待未知通信库通信(SCTP_WAIT_POLL_UNKNOW) | YY013 | 等待未知通信库通信,SCTP wait poll unknow |
无效快照(SNAPSHOT_INVALID) | YY014 | 快照非法,Snapshot invalid |
通讯接收信息错误(ERRCODE_CONNECTION_RECEIVE_WRONG) | YY015 | 连接获取错误,Connection receive wrong |
内存耗尽(OUT_OF_MEMORY) | 53200 | 内存耗尽,Out of memory |
连接失败(CONNECTION_FAILURE) | 08006 | GTM出错,Connection failure |
连接异常(CONNECTION_EXCEPTION) | 08000 | 连接出现错误,和DN的通讯失败,Connection exception |
管理员关闭系统(ADMIN_SHUTDOWN) | 57P01 | 管理员关闭系统,Admin shutdown |
关闭远程流接口(STREAM_REMOTE_CLOSE_SOCKET) | XX003 | 关闭远程套接字,Stream remote close socket |
重复查询编号(ERRCODE_STREAM_DUPLICATE_QUERY_ID) | XX009 | 重复查询,Duplicate query id |
stream查询并发更新同一行(ERRCODE_STREAM_CONCURRENT_UPDATE) | YY016 | stream查询并发更新同一行,Stream concurrent update |
max_query_retry_times,具体的参数信息请参考max_query_retry_times。

CN Retry功能开启时会为临时表数据记录日志,为保证数据一致性,在使用临时表时不能切换CN Retry开关状态(参考max_query_retry_times),保持使用临时表的会话中CN Retry开关始终处于打开状态或者关闭状态。
cn_send_buffer_size,具体的参数信息请参考cn_send_buffer_size。
max_cn_temp_file_size,具体的参数信息请参考max_cn_temp_file_size。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3162996/ ,如需转载,请注明出处,否则将追究法律责任。