你这是 OB Paxos 副本补副本分 2 阶段:日志追赶(clog replay)+ 基线转储基线拷贝。宕机 zone 堆积海量未同步 clog,且故障 zone 内 SSTable 基线版本落后多数派,单纯回放日志代价极高;同时集群ob_clog_replay_concurrency默认并发低,大量分区抢占 IO 队列互相阻塞,补副本卡死。
分步复杂处理方案(不可直接删 server,会触发多数派风险)
先临时放开集群副本复制并发,sys 租户执行:
ALTER SYSTEM SET ob_rereplication_concurrent_group_count = 200;
ALTER SYSTEM SET ob_clog_replay_concurrency = 64;
ALTER SYSTEM SET ob_paxos_max_proposal_retry_times = 10000;
筛选滞后最严重分区,单独手动触发基线拷贝(绕过日志回放):
SELECT t1.tenant_id,t1.table_id,t1.partition_id,t2.svr_ip,lag_log_cnt
FROM __all_virtual_partition_info t1
JOIN __all_virtual_replica_stat t2 ON t1.tenant_id=t2.tenant_id AND t1.table_id=t2.table_id AND t1.partition_id=t2.partition_id
WHERE lag_log_cnt > 1000000;
ALTER SYSTEM MIGRATE PARTITION tenant_id=xxx,table_id=xxx,partition_id=xxx TO ‘ip:2882’;
业务低峰临时关闭自动合并,释放磁盘 IO 给补副本:
ALTER SYSTEM SET merge_schedule = ‘manual’;
长期规避:多 zone 集群配置 clog 独立高速 SSD,配置ob_clog_file_max_size扩容单日志文件上限,zone 故障后不要一次性拉起全部节点,分批启动降低 IO 冲击。