首页 > 解决方案 > MongoDB - 如何恢复二进制备份文件?

问题描述

我有一个数据库备份,但我不知道如何将其还原到 MongoDB。我也不确定究竟是什么命令导致了此备份,因为我更改了操作系统以及处理此问题的脚本。我相信要么是mongoexport要么mongodump

它显示为“数据”文件:

ubuntu@ubuntu:~/db-backup $ file 2021-05-04 
2021-05-04: data

它具有以下格式的二进制(“八位字节流”)数据:

@everyoneposition__v�_id177130053690273793colo#ffffffpermissions��guildId17713005369027379mentionablhoistedname
@everyoneposition__v�_id177131002513145857colo#ffffffpermissions��guildId17713100251314585mentionablhoistedname

如何恢复这些数据?

标签: mongodb

解决方案


mongoexport 工具写出 JSON 或 CSV 文件,该片段都不是,所以可能排除了这一点。

Mongodump 可以写入单个存档、包含 BSON 和 JSON 文件的目录结构或单个 BSON 文件,无论是否使用 gzip。

data文件实用程序应该可以识别 gzip 数据,并且未压缩的mongodump 存档可能会被识别为DIY-Thermocam raw data.

BSON 文件也被文件识别为data.

要测试这是什么,请执行

bsondump 2021-05-04

如果它在第一个文档上失败并invalid BSONSize:显示巨大或负值,则很可能是一个 mongodump 存档,您可以尝试使用它来恢复

mongorestore --archive=2021-05-04

如果它列出了一系列文档,则它是一个 BSON 文件,您可以使用它来恢复

mongorestore --db=databasename --collection=collname 2021-05-04

推荐阅读