恢复一个特定MongoDB收集从一个物理备份”width=我们都知道关键是尽快拿回我们的数据。为了达到这个目标,大家都可能会意识到,我们有两个方法可用于MongoDB的恢复:逻辑和物理

当然,这取决于类型的备份配置。对于大型数据集,建议使用物理备份提供更快的备份和恢复时间。我使用雷竞技下载官网MongoDB Percona备份(PBM)在这个演示物理备份。

但这是一个问题。很复杂的恢复特定的集合(s)从物理备份,任何类型的备份方法像卷快照,冷rsync数据文件副本,或为MongoDB Hotbackup / Percona备份。雷竞技下载官网

最简单的,几乎每个人都知道,是恢复物理转储,即数据文件,在一个临时“mongod”和收集得到的逻辑转储(s)手动第一,紧随其后的是一个逻辑恢复到原始集群。这通常是mongodump和mongorestore一起完成了。

但还有另一种方式,我们可以避免供应暂时mongod然后通常缓慢逻辑转储,又名mongodump。

为了达到这个目的,在这篇文章我们将看看“wt“效用将帮助我们执行恢复。

作为一个先决条件,我们首先需要建立“wt“从他们的GitHub回购或下载一个tar存档文件并构建一个特定的版本。现在让我们直接跳转到步骤。

在这个博客中,我们使用GitHub回购将建筑。

1。克隆WiredTiger回购

2。<年代pan style="font-weight: 400;">检查你的mongod版本和检出相同的分支版本。

3所示。<年代pan style="font-weight: 400;">根据压缩方法我们使用的类型,我们将安装库和配置其WiredTiger库扩展。目前主要使用时髦的所以我用同样的方法。但这取决于你有什么压缩方法,之后您可以提供相同的库路径安装/配置它。

一旦我们安装了必要的依赖和验证,我们可以执行下面的命令直接采取行动恢复被删除的收藏。

恢复时间

<年代pan style="font-weight: 400;">1。找出相关URI的收集你想恢复。这可以检查原始集群:

2。<年代pan style="font-weight: 400;">有必要检查集合的压缩方法。因此,我们需要使用各自的WiredTiger库扩展。寻找的block_compressor”:

3所示。<年代pan style="font-weight: 400;">有不同的方法把一个物理转储像Percona备份MongoDB, Hotbackup,基于快照的,甚至是rsy雷竞技下载官网nc到一个单独的体积/路径。现在让我们把一个物理备份使用<年代trong>雷竞技下载官网为MongoDB Percona备份然后我们的收藏。

你可以清楚地看到,使用PBM我们可以列出所有的底层数据文件,我们将使用这个演示的目的。

4所示。<年代pan style="font-weight: 400;">把“wt转储”文件的URI<年代trong>步骤1在mongodb bson格式。定期输出”<年代trong>wt转储”将以二进制十六进制字符串格式,否则。

如果你有一个不同的集合或压缩方法在全球层面上,您可以使用各自WiredTiger库扩展。

请注意:别忘了附加.wt最后的URI和添加前缀”<年代trong>表:”或“<年代trong>文件:”,在WiredTiger,表中所有收集文件或文件格式。

让我们看看和了解不同的国旗在上面的命令中使用。

  • 扩展:基于我们的压缩方法,我们使用各自的压缩WiredTiger库扩展
  • [- h - v - x,转储,- c]:这些是WiredTiger二进制旗帜在十六进制转储文件从一个URI原始字符串在提供详细的风格与违约或命令行配置使用“c”
  • 尾巴仅用于修剪顶部七头输出的线”wt转储
  • awk仅仅是用来过滤掉钥匙(行号NR % 2 = = 1)或值(行号NR % 2 = = 0)的形式打印或十六进制模式wt转储。
  • xxd“- r”和“p”的结合是将原始的十六进制字符串转换为已知mongodb bson格式
  • 最后,我们重定向输出文件名”雷竞技下载官网percona.demo.bson”。这是非常重要的保持输出文件名按WiredTiger目录识别这只不过是一个适当的名称空间的URI。在我们的例子中,这是“雷竞技下载官网percona.demo”。
  • 如果需要,可以使用以下命令进行验证:

5。<年代pan style="font-weight: 400;">最后,使用本机mongorestore bson恢复。

几件事情需要考虑

<年代pan style="font-weight: 400;">1。You all must be thinking, what about indexes, right? The same process can be done by dumping the指数* .wt文件。但是这是相当复杂的倾倒键和值格式稍有不同。我很快就会覆盖在一个单独的博客。同样有趣的是,WiredTiger维护多个索引* URI文件为每个索引,因此最好手动构建的“方法createIndex“命令是一种更容易的方法。

2。<年代pan style="font-weight: 400;">为了执行<年代trong>point-in-time复苏,增量oplogs仍然需要重播的恢复备份,我们已经介绍了。

3所示。这种方法也适用于分片集群(unsharded和分片集合),但有一些需要采取额外的步骤。我们将讨论同样详细演示在即将到来的博客。

在我结束之前,让我们谈谈一些缺点因为这有点危险和复杂的方法。因此首先在实验室或测试环境测试出来先熟悉WiredTiger内部之前直接投入生产。

缺点

  1. 整体有点复杂的方法必须有一个清晰的理解“wt”效用及其内部结构。
  2. 不恢复,需要单独创建索引,如前所述。

雷竞技下载官网MongoDB Percona分布是一个免费的MongoDB数据库选择,给你一个解决方案,结合了最好的和最重要的开放源码社区的企业组件,设计和测试一起工作。

订阅
通知的
客人”年代rc=”https://secure.gravatar.com/avatar/?s=56&d=mm&r=g