基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
sys 租户归档一直显示 STOPPING
更新时间:2026-08-21 06:36
问题现象
sys 租户执行日志归档停止操作后,归档状态长时间显示为 STOPPING,无法完成停止流程。
问题原因
该问题是由于 NFS 文件系统异常导致 OceanBase 数据库的归档线程被内核持有的 NFS 锁阻塞,无法正常释放。线程在操作系统内核态挂起,从而阻塞了日志归档停止流程的执行。
预期解决方案是轮询重启 OBServer 进程。若重启 OBServer 后锁仍未被释放,则可能需要轮询重启操作系统。
关键信息
1. 确认备份参数
执行以下 SQL 语句,确认与备份相关的参数配置:
SHOW PARAMETERS LIKE '%backup%';
2. 查看日志归档状态
执行以下 SQL 语句,从不同维度检查日志归档的详细状态:
- 查看归档任务摘要:
SELECT * FROM oceanbase.CDB_OB_BACKUP_ARCHIVELOG_SUMMARY WHERE tenant_id=1;
- 按服务器、轮次统计分区组(PG)归档状态:
SELECT svr_ip, svr_port, incarnation, log_archive_round, COUNT(1)
FROM __all_virtual_pg_log_archive_stat
GROUP BY svr_ip, svr_port, incarnation, log_archive_round;
- 按服务器、轮次、状态统计归档状态:
SELECT svr_ip, log_archive_round, log_archive_status, COUNT(*)
FROM __all_virtual_pg_backup_log_archive_status
GROUP BY svr_ip, log_archive_round, log_archive_status;
- 查找归档进度落后的分区(
log_archive_cur_ts列表示该分区副本的当前归档进度):
SELECT *
FROM __all_virtual_pg_backup_log_archive_status
ORDER BY log_archive_cur_ts
LIMIT 10;
- 再次通过 CDB 视图确认归档状态:
SELECT * FROM CDB_OB_BACKUP_ARCHIVELOG;
3. 检查备份介质状态(NFS)
如果备份介质类型为 NFS,请在操作系统层面执行以下命令进行排查:
- 查看 NFS I/O 统计:
nfsiostat 2
- 查看 NFS 挂载信息:
mount | grep nfs
- 检查内核日志中与 NFS 相关的信息:
dmesg -T | grep nfs
- 查看文件系统磁盘使用情况:
df -h
- 使用
strace跟踪df命令执行:
strace df -h
- 在每个 OBServer 节点上,连续执行 3 次以下命令,检查 OBServer 进程中是否有线程因 NFS 而挂起:
cat /proc/`pidof observer`/task/*/stack | grep nfs
4. 分析 RootService 日志
在 RootService 日志中搜索特定的错误码信息,以确认归档停止失败的原因:
grep "finish do log archive schedule(ret=-4023" rootservice.log*
问题的风险及影响
- 归档状态异常:日志归档无法正常停止,可能导致管理混乱。
- 资源占用:被阻塞的归档线程会持续占用系统资源。
- 潜在的数据风险:如果 NFS 持续异常,可能影响后续的备份归档操作。
影响租户
sys 租户。
适用版本
OceanBase 数据库 V2.2.77 版本。
解决方法
重启 OBServer 进程以释放被 NFS 锁阻塞的线程。
规避方式
- 确保 NFS 存储服务的稳定性和低延迟。
- 定期监控 NFS 的性能指标(如 I/O 延迟、网络延迟),避免出现高延迟导致的服务异常。
- 考虑使用更稳定或性能更高的共享存储方案作为备份归档目的地。