<p>borg prune:在存储库中找不到具有密钥的对象</p>

创建于 2017-04-12  ·  5评论  ·  资料来源: borgbackup/borg

你好,

我试图使自己摆脱复杂的局面。

几周前,我猛烈打断了博格的后援。 存储库处于一种状态,在这种状态下,我必须进行几次borg修复才能使备份再次正常运行。

但是尽管付出了所有努力,但我仍无法修剪旧的备份,尝试时遇到如下错误:

远程:Borg 1.0.10:RPC调用中的异常:
远程:回溯(最近一次通话):
远程:服务中的文件“ borg / remote.py”,第145行
远程:文件“ borg / repository.py”,行550,已删除
远程:borg.repository.Repository.ObjectNotFound:键为b'xfdx8dx96xd0axdfox85xf6xeexc5xb6xb6&x15x92rtxe2x8b * Ux96D + dx8axa6Jxe5x14x0e的对象未在存储库/ srv / nas / nas / C / O中找到。
远程:平台:Linux FOO.BAR.fr 3.10.0-514.10.2.el7.x86_64#1 SMP Fri Mar 3 00:04:05 UTC 2017 x86_64 x86_64
远程:Linux:CentOS Linux 7.3.1611核心
远程:Borg:1.0.10 Python:CPython 3.5.3
远程:PID:11395 CWD:/ srv / nas / CUSTOMER
远程:sys.argv:['/usr/bin/borg1.0.10','serve','--restrict-to-path','/ srv / nas / CUSTOMER /']
远程:SSH_ORIGINAL_COMMAND:'/usr/bin/borg1.0.10 serve --umask = 077 --info'

博格检查-修复实际上是清空一些数据块,但无法使备份易于管理

谢谢你的帮助,

此致

question

最有用的评论

ObjectNotFound异常在这里意味着它试图从回购索引中删除键-但该键不在索引中。 删除操作很可能是从borg客户端调用的,因为您正在修剪。

因此,您的存储库已损坏(==数据存储实际上错过了应该存在的内容),或者至少索引与存储库某种程度上不一致。

您可以尝试的方法(要冒风险-如果重要的话,请在回购交易的COPY上进行所有实验):

  • 杀死客户端缓存(不是存储库): borg delete --cache-only repo
  • 再次尝试修剪

如果仍然抛出相同/相似的错误,则您的存储库索引损坏的可能性很小,但是存储库中的数据很好。 然后,您可以尝试:

  • 杀死回购索引和提示文件(它们在存储库目录中,分别称为hints.N和index.N)
  • 使用borg check --repair repo重建索引。
    如果您的仓库很大,并且您是从远程工作的,那么这可能会花费很长时间。 但是在那之后,如果您的回购中的数据仍然可以,则您的回购索引将与该数据一致。 如果修复失败/失败,则说明您的回购中的数据已损坏。

所有5条评论

ObjectNotFound异常在这里意味着它试图从回购索引中删除键-但该键不在索引中。 删除操作很可能是从borg客户端调用的,因为您正在修剪。

因此,您的存储库已损坏(==数据存储实际上错过了应该存在的内容),或者至少索引与存储库某种程度上不一致。

您可以尝试的方法(要冒风险-如果重要的话,请在回购交易的COPY上进行所有实验):

  • 杀死客户端缓存(不是存储库): borg delete --cache-only repo
  • 再次尝试修剪

如果仍然抛出相同/相似的错误,则您的存储库索引损坏的可能性很小,但是存储库中的数据很好。 然后,您可以尝试:

  • 杀死回购索引和提示文件(它们在存储库目录中,分别称为hints.N和index.N)
  • 使用borg check --repair repo重建索引。
    如果您的仓库很大,并且您是从远程工作的,那么这可能会花费很长时间。 但是在那之后,如果您的回购中的数据仍然可以,则您的回购索引将与该数据一致。 如果修复失败/失败,则说明您的回购中的数据已损坏。

顺便说一句,通常打扰博格的人不应该让仓库陷入如此悲惨的境地。 如果只有一些未提交的内容,那么通常在您下次使用存储库时会自动回滚。
因此,也许考虑其他原因,例如硬件问题-检查您的文件系统,磁盘(SMART值)和RAM。

感谢您的快速反馈,今天晚上我会尝试的。

由于运行了2个并发borg备份,回购可能处于这种状态

托马斯
我已成功遵循您的指示。 我必须完成整个过程,包括在回购中“杀死”索引和提示文件,然后进行修复。

这样,我便能够成功修剪旧的备份。

整个过程(杀死本地缓存,尝试prune,杀死远程提示和索引文件,修复,修剪-keep-daily20,然后修剪-keep-daily 7)花费了大约120分钟。 数据大小为40GB,回购是远程的。

感谢您快速有效的反馈。

保持良好的工作

可能会显示错误消息,例如“尝试运行Borg检查”?

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

unlandm picture unlandm  ·  4评论

enkore picture enkore  ·  5评论

chebee7i picture chebee7i  ·  5评论

ThomasWaldmann picture ThomasWaldmann  ·  6评论

phdoerfler picture phdoerfler  ·  6评论