指数倒扣¶
该特性在雷竞技下载官网Percona XtraBackup 2.4.24在xbcloud二进制文件中。
指数回退增加了完成备份或恢复操作的机会。例如,如果网络连接不稳定或存在其他网络问题,则数据块上传或下载可能会失败。该功能增加了一个指数后退或睡眠时间,然后重试上传或下载。
当数据块上传或下载操作失败时,xbcloud会检查失败的原因。此失败可能是CURL错误或HTTP错误,或特定于客户端的错误。如果错误列在可检索错误列表中,xbcloud将在重试操作之前暂停一段计算时间,直到该时间到达——max-backoff价值。
重试操作,直到——max-retries达到值。如果块操作在最后一次重试时失败,xbcloud将中止该进程。
默认值如下:
-max-backoff = 300000(5分钟)
-max-retries = 10
属性可以调整重试次数——max-retries参数来调整重试之间的最大时间长度——max-backoffxbcloud命令的参数。
由于xbcloud并行执行多个异步请求,因此使用以毫秒为单位的计算值max-backoff。该算法计算下一次重试前需要休眠多少毫秒。生成的数字是基于2(2)的幂的组合,即已经尝试的重试次数,并在1到1000之间添加一个随机数。如果多个块具有相同的回退值,这个数字可以避免网络拥塞。如果使用默认值,最后一次重试尝试大约在第一次尝试后17分钟。当毫秒到达时,数字不再计算——max-backoff设置。方法继续重试——max-backoff设置直到max-retries参数。
Retriable错误¶
我们重试以下CURL操作:
CURLE_GOT_NOTHING
CURLE_OPERATION_TIMEOUT
CURLE_RECV_ERROR
CURLE_SEND_ERROR
CURLE_SEND_FAIL_REWIND
CURLE_PARTIAL_FILE
CURLE_SSL_CONNECT_ERROR
重试以下HTTP操作状态码:
503
500
504
408
每个云提供商可能返回不同的CURL错误或HTTP错误,这取决于问题本身。通过设置以下变量添加新的错误——curl-retriable-errors或——http-retriable-errors在命令行中my.cnf或者在[xbcloud]部分下的自定义配置文件中。
方法时,错误处理得到了增强——详细输出。此输出指定了导致xbcloud失败的错误,以及用户必须添加什么参数才能重试此错误。
以下是详细输出的示例:
210701 14:34:23 /work/pxb/ins/2.4/bin/xbcloud: Operation failed。Error: Server returned nothing (no headers, no data) 210701 14:34:23 /work/pxb/ins/2.4/bin/xbcloud: Curl Error (52) Server returned nothing (no headers, no data) is not configured as retriable。你可以通过添加——curl-retriable-errors=52参数来允许它
例子¶
以下示例调整重试的最大次数和重试之间的最大时间间隔。
Xbcloud [options]——max-retries=5——max-backoff=10000
以下文本是该命令使用指数回退的示例:
210702 10:07:05 /work/pxb/ins/2.4/bin/xbcloud: Operation failed。Error: Server returned nothing (no headers, no data) 210702 10:07:05 /work/pxb/ins/2.4/bin/xbcloud: Sleeping for 2384 ms before retrying backup3/xtrabackup_logfile.日志文件00000000000000000006[1]……210702 10:07:23 /work/pxb/ins/2.4/bin/xbcloud: Operation failed。错误:服务器没有返回任何东西(没有头,没有数据)210702 10:07:23 /work/pxb/ins/2.4/bin/xbcloud: Sleeping for 4387 ms before retrying backup3/xtrabackup_logfile。00000000000000000006[2]……210702 10:07:52 /work/pxb/ins/2.4/bin/xbcloud: Operation failed。Error: Failed sending data to peer 210702 10:07:52 /work/pxb/ins/2.4/bin/xbcloud: Sleeping for 8691 ms before retrying backup3/xtrabackup_logfile.输出说明00000000000000000006[3]……210702 10:08:47 /work/pxb/ins/2.4/bin/xbcloud: Operation failed。Error: Failed sending data to peer 210702 10:08:47 /work/pxb/ins/2.4/bin/xbcloud: Sleeping for 10000 ms before retrying backup3/xtrabackup_logfile.输出说明00000000000000000006[4]……210702 10:10:12 /work/pxb/ins/2.4/bin/xbcloud: successfully upload chunk: backup3/xtrabackup_logfile.日志含义00000000000000000006, size: 8388660
下面是示例输出的详细信息:
[1.)块xtrabackup_logfile.00000000000000000006日志含义第一次上传失败,休眠2384毫秒。
(2。相同的块第二次失败,时间增加到4387毫秒。
(3。同样的块第三次失败,时间增加到8691毫秒。
(4。同样的块第四次失败。的max-backoff=10000,定义最大睡眠时间为10000。在达到该参数后,任何重试都休眠相同的时间。
(5。同一块上传成功。