写点什么

TiDB br 日志备份 PermissionDenied

  • 2024-11-01
    北京
  • 本文字数:1678 字

    阅读完需:约 6 分钟

作者: Zyaire 原文来源:https://tidb.net/blog/618eefd4

项目背景

这次项目是关于银行的,主要涉及存储各种交易和客户信息,这个过程产生了大量数据。为了保护客户数据并确保合规性,需要制定了一套数据管理策略,定期备份所有金融数据,以防止数据丢失或损坏,从而在突发事件发生时能够迅速恢复运营。因此,我的任务是负责这个备份过程。我采用了一种高效的备份工具 BR,并将数据存储在高可用的网络文件系统(NFS)上,以确保多台服务器之间的可靠访问。起初我以为这项工作能很快完成,但在备份过程中遇到了一个权限相关的问题,导致备份无法成功。尝试了多种方法都未能解决,直到第二天早晨,我才意识到确保备份过程顺利进行的重要性。

备份任务的计划

这次备份采用每日执行增量备份,每周进行全量备份。


  1. 增量备份:我们每天都会执行增量备份,捕捉自上次备份以来所有新增或更改的数据。采用这种方式目的能够节省存储空间,还能减少备份时间,每天的交易数据都能及时保存。

  2. 全量备份:每周进行一次全量备份,将所有金融数据完整地复制并存储。

原理解释

本文档将基于具体的使用场景,进行 TiDB 日志备份以及全量备份途中遇到的问题。


下面简单介绍一下 TiDB 集群以及工具及备份存储的情况:


  • tidb 集群版本 v6.5.1

  • tiup 版本:v1.11.3

  • br 工具版本 v6.5.1

  • 备份存储:nfs 共享文件(nfs4,xfs)


br 日志备份的原理图,以及流程图:




在上面的流程图可以看得出,如下:


  1. br 接收到备份命令 br log start,会获取当前备份时间点,备份存储地址,并在 PD 注册日志备份任务

  2. TIKV 监控日志备份任务的创建与更新

  3. TikV log backup observer 持续的变更 KV 变更日志

  4. TIDB 监控日志的备份进度

日志备份

tiup br log start --pd ${pd_addr} --task-name ${task_name} --storage ${backup_path} --log-file ${log_file}
复制代码


这是一个使用 tiup 工具执行 br 日志备份的示例命令。其中:


  • ${pd_addr} 是 PD 服务器的地址

  • ${task-name} 是 br 日志任务名称

  • ${backup_path} 是备份文件的存储路径

  • ${log_file} 是日志文件的路径

日志备份报错 (PermissionDenied

tiup br log status --pd ${pd_addr} --task-name ${task_name} --storage ${backup_path}
复制代码


在执行日志备份命令时,遇到了权限被拒绝的错误。I/O Error PermissionDenied 这表明 TiKV 无法在指定的备份路径创建或写入文件。并且在上面的流程图可以看出备份文件 (SST) 的保存是由 TiKV 执行的,所以备份权限是与 TIKV 的节点相关的



在创建 tidb 用户没有正确设置 UID 和 GID,导致出现权限冲突问题。这可能会导致 TiKV 无法访问指定的备份路径,从而引发 PermissionDenied 错误


解决步骤:


  1. 确认 NFS 服务端配置:

  2. 设置 NFS 客户端(TiDB 节点)的默认 ACL,必须将每个需要备份的 tikv 节点都配置进去

  3. 调整 TiDB 集群用户权限:

  4. 重新挂载 NFS 共享:

  5. 验证权限:


通过这些步骤,我们可以解决由于用户权限设置不当导致的 PermissionDenied 错误,TiKV 能够成功执行日志备份操作。

反思

经过这次备份操作,深刻认识到在数据备份过程中,权限管理的复杂性与重要性是不可忽视的。备份虽然是一个技术性的操作,但背后涉及到的权限配置、用户管理等问题往往会直接影响到备份的成功与否。我们在这个过程中,除了要确保备份目录的权限设置正确外,还发现了用户的 umask 设置、用户组的合理配置以及访问控制的重要性(* 虽然修改 umask 对于整个过程没什么帮助哈哈哈哈 *)。


在未来的工作中,需要继续深化更加严格的权限管理策略,确保每个用户的访问权限都是经过深思熟虑的。也需要定期进行备份流程中的权限审查,以便及时发现并解决潜在的问题,进一步提升数据的安全性与可靠性。

总结

本文详细介绍了在使用 TiDB 进行日志备份时遇到的权限问题及其解决方法。通过对 NFS 服务的配置、TiDB 目录的 ACL 的设置,成功消除了备份过程中的权限冲突。这一经验教训为日后的 TiDB 备份与恢复操作中提供了宝贵的参考,也希望可以给遇到这个问题的而熬夜解决的老铁们一个参考。


总的来说,这次经历不仅提升了我的技术水平,也增强了在面对问题时的应对能力。未来,我期待在数据管理和备份策略上不断完善,以更好地在上一层楼。


发布于: 刚刚阅读数: 4
用户头像

TiDB 社区官网:https://tidb.net/ 2021-12-15 加入

TiDB 社区干货传送门是由 TiDB 社区中布道师组委会自发组织的 TiDB 社区优质内容对外宣布的栏目,旨在加深 TiDBer 之间的交流和学习。一起构建有爱、互助、共创共建的 TiDB 社区 https://tidb.net/

评论

发布
暂无评论
TiDB br日志备份PermissionDenied_实践案例_TiDB 社区干货传送门_InfoQ写作社区