S01040

错误代码

S01040

报错信息

[asyncReplication] Skipped task <tid>. Task data does not exist on site <IP:Port>.

错误原因

异步复制从集群节点去主集群节点拉取任务数据时发现任务数据不存在。

解决办法

可以在从集群执行以下语句查看失败的任务:

select * from rpc(getControllerAlias(),getSlaveReplicationStatus) where state = "FAILED"
如果有任务为 FAILED,且 details 中说明 “Missing TaskData”,此时请求的任务数据在主集群不存在。可以在主集群异步复制持久化目录(cluster.cfg 中的 clusterReplicationWorkDir 配置)寻找是否存在 <masterTid>.task 文件:
  • 如果存在,请重启对应的主集群数据节点,并在从集群中执行 startClusterReplication 函数重新回放。
  • 如果不存在,请确认 clusterReplicationSyncPersistence 配置是否为true。如果未配置或配置为false,那任务数据可能存在丢失的风险。请具体查阅主集群异步复制日志,修改配置,并暂时跳过该任务。