mongodb - 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
如何恢复这些数据?
解决方案
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
推荐阅读
- django - RetrieveUpdateAPIView 中的 Django PUT/PATCH 请求正文为空
- r - 在 r 中,如何将行加在一起以获得一组特定变量的总数
- json - MQTT 测量导出为 JSON,无需连接到代理
- javascript - 由于 CORS 政策,instafeed.js 无法正常工作
- android - 在 ImageAnalyzer 中绘制画布
- python - JSON 有效负载、AWS Lambda (Python)、API 网关
- javascript - 如何在 Javascript 中放置链接到网页的 PHP 脚本?
- android - WorkManager 未被使用 ExistingPeriodicWorkPolicy.REPLACE 替换
- javascript - 如何在 apidoc 上记录动态对象属性
- asp.net-mvc - 如何解决此错误:System.Data.Entity.Core.EntityCommandCompilationException