br恢复中断,如何快速立刻重新恢复

tidb br恢复数据库,因ssh连接中断,导致br恢复失败,进行重新恢复
操作如下:
1、清理/tmp目录下的文件
2、删除恢复的数据库及br相关的库
进行br重新恢复,日志报
[2026/09/22 17:20:51.324 +08:00] [INFO] [client.go:339] [“set placement policy mode”] [mode=STRICT] [2026/09/22 17:20:51.324 +08:00] [WARN] [sysvar_cache.go:49] [“sysvar cache is empty, triggering rebuild”] [2026/09/22 17:20:51.328 +08:00] [INFO] [sysvar.go:3042] [“set resource control”] [enable=true] [2026/09/22 17:20:51.329 +08:00] [INFO] [controller.go:496] [“[resource group controller] create resource group cost controller”] [name=default] [2026/09/22 17:20:51.367 +08:00] [INFO] [registration.go:689] [“found existing task with same parameters”] [existing_task_id=2122524] [existing_restored_ts=0] [existing_status=running] [current_restored_ts=0] [filters=“[.,!_TiDB_BR_Temporary .,!mysql.,mysql.bind_info,mysql.user,mysql.db,mysql.tables_priv,mysql.columns_priv,mysql.global_priv,mysql.global_grants,mysql.default_roles,mysql.role_edges,!sys.,!INFORMATION_SCHEMA.,!PERFORMANCE_SCHEMA.,!METRICS_SCHEMA.,!INSPECTION_SCHEMA.]”] [start_ts=0] [“last heartbeat time”=“2026-09-22 17:05:12 +0800 CST”] [2026/09/22 17:20:51.367 +08:00] [INFO] [registration.go:718] [“existing task is running, checking if it’s stale”] [existing_task_id=2122524] [2026/09/22 17:20:51.367 +08:00] [INFO] [registration.go:770] [“checking if task is stale, will check heartbeat every minute up to 5 minutes”] [task_id=2122524] [initial_heartbeat=“2026-09-22 17:05:12 +0800 CST”] [2026/09/22 17:20:53.226 +08:00] [INFO] [pd.go:444] [“adaptive update ts interval state transition”] [configuredInterval=2s] [prevAdaptiveUpdateInterval=2s] [newAdaptiveUpdateInterval=2s] [requiredStaleness=0s] [prevState=unknown(0)] [newState=normal] [2026/09/22 17:20:53.281 +08:00] [INFO] [info.go:1246] [SetTiFlashGroupConfig] [2026/09/22 17:21:01.227 +08:00] [INFO] [store_cache.go:555] [“change store resolve state”] [store=778330] [addr=172.21.23.25:3930] [from=unresolved] [to=resolved] [liveness-state=reachable] [2026/09/22 17:21:51.369 +08:00] [INFO] [registration.go:817] [“task heartbeat unchanged, continuing to wait”] [remaining_minutes=4] [task_id=2122524]
请问,如何快速删除existing_task_id=2122524,进行恢复?
mysql> SELECT * FROM tidb_background_subtask_history;
Empty set (0.01 sec)

mysql> SELECT * FROM tidb_background_subtask;
Empty set (0.01 sec)
这个表没查到恢复任务

1 个赞
-- 1. 确认旧 br 进程确实已死(SSH 中断前台进程通常已被 SIGHUP 杀掉,但请核实)
--    ps -ef | grep br

-- 2. 查看任务记录(注意:是 mysql.tidb_global_task,不是 subtask 表)
SELECT id, task_key, type, state, state_update_time, start_time
FROM mysql.tidb_global_task WHERE id = 2122524;

-- 3. 顺手核对同任务是否残留子任务/历史记录
SELECT * FROM mysql.tidb_background_subtask WHERE task_id = 2122524;
SELECT * FROM mysql.tidb_global_task_history WHERE id = 2122524;

-- 4. 确认无误后删除卡死任务(task_key 是 UNIQUE 键,删除后新 BR 会重新注册新任务)
DELETE FROM mysql.tidb_global_task WHERE id = 2122524;

-- 5. 检查 checkpoint 临时库是否已清理(v8.5.5 默认存目标集群)
SHOW DATABASES LIKE '__TiDB_BR_Temporary%';
-- 若存在且你已删库,可一并 DROP,让恢复从零开始

-- 6. 重新执行 br restore
2 个赞

好的,谢谢

1 个赞

删掉pd后台任务,重新执行br restore

1 个赞

这个现象是 ssh 断连,BR 客户端进程退出,但集群侧恢复任务还在等待心跳,tidb_background_subtask 是 DDL 后台任务视图,查不到 BR 任务是正常的。

br可能还在跑