StarRocks ADMIN CANCEL REPAIR 详解:取消指定表/分区的高优先级副本修复调度

发布时间:2026/9/19 21:04:36

StarRocks ADMIN CANCEL REPAIR 详解:取消指定表/分区的高优先级副本修复调度 数据库OLAP数据仓库大数据湖仓一体数据分析【免费下载链接】starrocksThe worlds fastest open query engine for sub-second analytics both on and off the data lakehouse. With the flexibility to support nearly any scenario, StarRocks provides best-in-class performance for multi-dimensional analytics, real-time analytics, and ad-hoc queries. A Linux Foundation project.项目地址https://gitcode.com/GitHub_Trending/st/starrocks点击查看免费下载导读ADMIN CANCEL REPAIR是 StarRocks 面向存算一体shared-nothing集群内表提供的运维语句用于取消先前通过ADMIN REPAIR提交的对指定表或分区副本的高优先级修复调度。本文以官方文档为核心结合 FE 端源码语法解析、AST、分析器、鉴权、执行链路与 TabletChecker/TabletScheduler 调度实现逐层拆解其语义、语法、权限要求、底层原理与验证手段帮助你精确理解取消高优先级修复与彻底停止修复的本质区别并在生产环境中正确使用该命令。功能概述取消的是高优先级而不是修复根据 ADMIN CANCEL REPAIR 官方文档该语句的核心语义是取消对指定表或分区执行优先级修复操作的计划。该语句仅表示系统不再以高优先级修复指定表或分区的分片副本系统仍会以默认调度方式修复这些副本。这段话包含两层关键信息只移除优先级提示ADMIN CANCEL REPAIR只会撤销此前提交的优先修复请求让这些表/分区的副本重新回到默认的调度优先级队列中不等于停止修复如果这些副本本身确实处于不健康状态如版本落后、副本缺失Tablet Scheduler 依然会按常规调度逻辑为它们创建克隆修复任务只是不再享受VERY_HIGH级别的优先待遇。适用范围仅适用于存算一体集群shared-nothing中的内表native table对于存算分离shared-data集群中的云原生表副本修复走的是ADMIN REPAIR TABLE ... PROPERTIES(...)的元数据版本回滚机制不受该语句影响相关说明见 ADMIN REPAIR。与 ADMIN REPAIR 的对应关系语句作用对应源码行为ADMIN REPAIR TABLE ...将指定表/分区标记为待修复并把修复优先级提升到 VERY_HIGH将 (dbId, tblId, partIds) 写入 TabletChecker 的urgentTable同时调用TabletScheduler.changeTabletsPriorityToVeryHigh()ADMIN CANCEL REPAIR TABLE ...从urgentTable中移除上述标记恢复默认调度调用TabletChecker.removeFromUrgentTable()两条语句互为置位 / 复位在 Replica 管理文档 的手动修复副本一节中成对出现。权限要求执行ADMIN CANCEL REPAIR需要SYSTEM 级 OPERATE 权限可参考 GRANT 为用户授权例如GRANT OPERATE ON SYSTEM TO USER repair_admin;该权限约束在 FE 鉴权阶段即被强制检查AuthorizerStmtVisitor.visitAdminCancelRepairTableStatement()调用Authorizer.checkSystemAction(context, PrivilegeType.OPERATE)未通过时会抛出AccessDeniedException并拒绝执行见 AuthorizerStmtVisitor.java。语法详解ADMIN CANCEL REPAIR TABLE table_name[ PARTITION (p1,...)]语法要点table_name目标内表名可带库名前缀如example_db.example_table未指定库名时使用当前会话默认库PARTITION (p1, ...)可选用于精确指定一个或多个分区省略时作用于整张表的所有分区不支持临时分区temp partition在分析阶段会被直接拒绝。语法与 AST 层ANTLR 文法StarRocks.g4中定义为adminCancelRepairTableStatement : ADMIN CANCEL REPAIR TABLE qualifiedName partitionNames?;见 StarRocks.g4partitionNames?中的?说明分区子句可省略AST 节点AdminCancelRepairTableStmt继承自DdlStmt内部持有TableRef通过getDbName()、getTblName()、getPartitionRef()暴露目标信息见 AdminCancelRepairTableStmt.java语义分析AdminStmtAnalyzer.visitAdminCancelRepairTableStatement()检查必须存在默认库未选库且语句未带库名时报noDbSelected语义错误并拒绝临时分区见 AdminStmtAnalyzer.java。示例取消整张表的高优先级修复调度ADMIN CANCEL REPAIR TABLE tbl1;取消指定分区p1的高优先级修复调度ADMIN CANCEL REPAIR TABLE tbl PARTITION(p1);带库名、取消多个分区ADMIN CANCEL REPAIR TABLE example_db.example_table PARTITION (p20240101, p20240102);底层实现原理一条 CANCEL 语句在 FE 中的完整链路1. 执行入口DDL 执行器将语句路由到 TabletCheckerGlobalStateMgr.getCurrentState().getTabletChecker().cancelRepairTable(context, stmt);见 DDLStmtExecutor.java2. TabletChecker.cancelRepairTable()cancelRepairTable()的处理逻辑见 TabletChecker.java解析库名优先取语句中显式指定的dbName否则回退到ConnectContext的当前库解析分区从PartitionRef中提取分区名列表未指定时为空列表表示整表通过getRepairTabletInfo()将 (库、表、分区列表) 统一封装为RepairTabletInfo调用removeFromUrgentTable()从内存中的优先修复表urgentTable移除对应条目并打印审计日志。3. urgentTable 与 removeFromUrgentTable()urgentTable是 TabletChecker 内部维护的一张内存索引TabletSchedulerStat之外的独立结构按dbId - tblId - SetPrioPart组织它记录着哪些表/分区被要求优先修复。写入侧addToUrgentTable()见 TabletChecker.java向urgentTable插入PrioPart(partId, currentTime, timeoutMs)其中timeoutMs 4 * 3600L即默认 4 小时14400 秒超时——这与 ADMIN REPAIR 文档 中默认超时 14400 秒的说明完全对应同时会调用tabletScheduler.changeTabletsPriorityToVeryHigh()把已经排队中的同类 tablet 任务优先级直接改为VERY_HIGH删除侧removeFromUrgentTable()见 TabletChecker.java遍历并删除对应PrioPart若该表的所有分区条目都被移除则整表从urgentTable摘除。超时与失效语义由于urgentTable仅存在于 Leader FE 内存中、不持久化因此当 Leader FE 发生切换或重启时此前通过ADMIN REPAIR提交的高优先级提示会自然过期Replica 管理文档 明确说明此行为4 小时超时后同样需要重新执行ADMIN REPAIR才能再次享受高优先级修复。4. 取消后对已排队任务的影响removeFromUrgentTable()只清理urgentTable中的提示记录并不会主动回写已排队任务的优先级。从源码结构看ADMIN REPAIR时TabletScheduler.changeTabletsPriorityToVeryHigh()见 TabletScheduler.java会遍历pendingTablets把匹配 (dbId, tblId, partitionId) 的任务OrigPriority设为VERY_HIGHADMIN CANCEL REPAIR路径中没有对应的优先级降级调用已入队任务仍按各自优先级推进只是后续新产生的调度任务不再享受最高优先级的创建待遇。因此更准确的理解是ADMIN CANCEL REPAIR切断的是未来调度中的优先修复意图而任务优先级本身由 Tablet Scheduler 根据 TabletSchedCtx.PriorityLOW / NORMAL / HIGH / VERY_HIGH动态管理——例如任务等待过久会被升级、调度失败多次会被降级系统始终以不让任一任务饿死、也不阻塞其他任务为原则自行调节。为什么要用 CANCEL优先级调度的副作用与恢复手段StarRocks 的副本修复/均衡全部基于克隆任务clone task实现VERY_HIGH优先级意味着这些任务会抢占调度槽位。若某张表被长时间标记为高优先级修复可能挤占其他表的修复与均衡窗口Tablet Scheduler 对每个存储路径有并发槽位限制FE 动态参数tablet_sched_slot_num_per_path默认值为 8见 Config.java。典型使用场景故障恢复初期用ADMIN REPAIR优先修复核心业务表的分区核心表恢复完成后用ADMIN CANCEL REPAIR及时撤销高优先级标记把调度资源让渡给集群整体的修复与均衡误操作提交了ADMIN REPAIR后立即用ADMIN CANCEL REPAIR回滚意图。调度节流相关配置供参考FE 配置项默认值说明源码位置tablet_sched_checker_interval_seconds20Tablet Checker 每轮扫描全部 tablet 副本健康状态的间隔秒Config.javatablet_sched_slot_num_per_path8每个存储路径storage_root_path可并发的克隆任务槽位数Config.javatablet_sched_max_scheduling_tablets10000排队/运行中的调度任务上限超过则跳过本轮检查Config.java如何验证 CANCEL 已生效1. 查看待调度任务的原始/动态优先级SHOW PROC /cluster_balance/pending_tablets;关注返回结果中的OrigPrio任务原始优先级与DynmPrio动态调整后的当前优先级两列执行ADMIN CANCEL REPAIR之后目标表/分区新产生的修复任务不应再以VERY_HIGH的原始优先级入队若任务已入队其优先级会由 Tablet Scheduler 按等待时间、失败次数等规则动态调整。2. 结合副本状态确认修复仍会进行ADMIN CANCEL REPAIR不改变副本本身的健康判定仍可通过以下语句观察副本是否持续被修复ADMIN SHOW REPLICA STATUS FROM tbl [PARTITION (p1)] [WHERE STATUS DEAD];完整用法见 ADMIN SHOW REPLICA STATUS。3. 复盘整条运维链路建议的完整手工修复流程详见 Replica 管理文档-- 1. 全局统计定位不健康 tablet 所在的库 SHOW PROC /statistic; -- 2. 查看指定库内不健康 tablet SHOW PROC /statistic/DbId; -- 3. 对需要优先恢复的表/分区提升修复优先级 ADMIN REPAIR TABLE tbl1 PARTITION (p1); -- 4. 恢复完成后撤销高优先级标记 ADMIN CANCEL REPAIR TABLE tbl1 PARTITION (p1); -- 5. 通过调度历史确认任务最终状态State 为 FINISHED 即成功 SHOW PROC /cluster_balance/history_tablets;总结ADMIN CANCEL REPAIR TABLE table_name [PARTITION (p1,...)]用于撤销对存算一体内表/分区副本的高优先级修复调度需要 SYSTEM 级 OPERATE 权限它只清空 TabletChecker 内存中的urgentTable提示不会停止系统对不健康副本的默认调度修复高优先级提示默认 4 小时超时且随 Leader FE 重启/切换而失效建议配合SHOW PROC /cluster_balance/pending_tablets、ADMIN SHOW REPLICA STATUS等命令构成定位 → 优先修复 → 取消优先级 → 验证的完整手工运维闭环。赞分享数据库OLAP数据仓库大数据湖仓一体数据分析【免费下载链接】starrocksThe worlds fastest open query engine for sub-second analytics both on and off the data lakehouse. With the flexibility to support nearly any scenario, StarRocks provides best-in-class performance for multi-dimensional analytics, real-time analytics, and ad-hoc queries. A Linux Foundation project.项目地址https://gitcode.com/GitHub_Trending/st/starrocks点击查看免费下载相关推荐StarRocks CANCEL RESTORE 详解取消恢复任务的操作指南与底层原理StarRocks CANCEL RESTORE 详解取消恢复任务的操作指南与底层原理 CANCEL RESTORE 是 StarRocks 备份恢复体系中用数据库OLAP数据仓库大数据湖仓一体数据分析NVIDIA Ingest任务取消与优先级调整机制详解NVIDIA Ingest任务取消与优先级调整机制详解 在企业级文档处理系统中任务管理的灵活性直接影响系统的资源利用率和业务响应速度。NVIDIA IngesScyllaDB 自动修复Automatic Repair为 tablet 表内置的修复调度机制解析ScyllaDB 自动修复Automatic Repair为 tablet 表内置的修复调度机制解析 传统上在 ScyllaDB 集群中触发 repai数据库分布式数据库后端大数据创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/19 20:59:36

xxxwww在电商爬虫中的实战应用:构建稳定采集管道

做电商爬虫这行,时间久了你会发现,真正决定一个采集项目能不能稳定跑下去的,往往不是解析规则写得有多巧妙,而是最底层的请求环节靠不靠谱。我自己用 xxxwww 这个轻量请求模块搭过好几套电商采集链路,从商品列表到详情…

2026/9/19 20:59:36

SAS Base认证核心考点:DATA步解析逻辑与PDV执行模型

简介:本资源是SAS Base Programmer认证考试官方出品的全真模考题PDF,专为备考SAS基础编程认证的开发者、数据分析师及统计从业人员设计,聚焦核心语法、数据读写、变量处理与函数应用等实操能力训练。文件共1个PDF文档(283KB&#…

2026/9/20 3:39:58

小升初英语音标辨析:从发音规则到教学自动化

简介:本资源是一份专为小升初学生设计的英语音标专项训练习题集,聚焦音标识别、发音辨析与组合应用三大核心能力,帮助学生夯实语音基础,提升单词拼读准确性和听力敏感度,有效衔接初中英语学习要求。文档为单个Word文件…

2026/9/20 3:39:58

电商数仓从零搭建:Day3分层建模与ETL实操全记录

最近在推进一个从零搭建电商数仓的小项目,按计划表走到了第三天。前两天的重点工作是数据探查和业务梳理,把订单、用户、商品、支付这些核心业务域的源表结构、数据量级、更新频率摸了个大概。今天的任务非常明确:把数仓的整体骨架搭起来&…

2026/9/20 3:39:58

vLLM生态集成实战:原理、选型与RAG统一网关

1. vLLM生态位拆解:它为什么能成为大模型推理的基础设施1.1 从PagedAttention说起:一个显存管理的“仓库改造”聊vLLM之前,得先把“vllm是什么”这个问题讲透。如果你去看官方定义,它会告诉你vLLM是一个高性能大模型推理引擎&…

2026/9/20 3:34:58

医疗大数据分析实战指南:从Hadoop+Spark到业务落地

如果你拿到三甲医院近五年的门急诊记录、住院病案、检验检查结果,大概几千万条结构化数据,再加上波形、影像报告这样的非结构化内容,这就是一个典型的医疗大数据分析项目。作为计算机或医学信息方向的毕设,或者作为医疗信息化从业…

2026/9/20 0:04:49

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/20 0:04:49

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/20 0:04:49

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/20 0:04:49

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/18 14:13:03

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/18 14:13:02

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/18 14:13:02

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码