【问题标题】:what is mongodb archive format?什么是 mongodb 归档格式?
【发布时间】:2019-06-09 05:22:02
【问题描述】:

我已经使用它们的存档选项备份了一些 mongoDB,但我不能简单地解压它们。当我通过一些步骤来解压缩数据时,看起来存档是一个大文件中的整个数据库。 我想获取各个集合的文件。 有没有办法做到这一点?

$ tar -xvf valk.archive
tar: Unrecognized archive format
tar: Error exit delayed from previous errors.
$ file valk.archive
valk.archive: gzip compressed data, original size 13953183
$ gunzip valk.archive
gunzip: valk.archive: unknown suffix -- ignored
$ unzip valk.archive
Archive:  valk.archive
  End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
unzip:  cannot find zipfile directory in one of valk.archive or
        valk.archive.zip, and cannot find valk.archive.ZIP, period.
$ mv valk.zip valk.gz
$ gunzip valk.gz
$ open .
$ tar -xvf valk
tar: Unrecognized archive format
tar: Error exit delayed from previous errors.
$ head valk
TemplateDatametadata�{"options":{},"indexes":[{"v":2,"key":{"_id":1},"name":"_id_","ns":"valk.TemplateData"}],"uuid":"f52402b5aba24856b072d57cc3e46a72"}size-dbvalkcollectioMetricsmetadata�{"options":{"capped":true,"size":10485760,"max":1000000},"indexes":[{"v":2,"key":{"_id":1},"name":"_id_","ns":"valk.Metrics"},{"v":2,"key":{"openid":1},"name":"openid_1","ns":"valk.Metrics"}],"uuid":"43d92ff01815432c95dac5a2e05a64c0"}size�dbvalkcollection
AppConfigmetadata�{"options":{},"indexes":[{"v":2,"key":{"_id":1},"name":"_id_","ns":"valk.AppConfig"}],"uuid":"df633b0a43184de38e8b8ea7489cda3e"}size�dbvalkcollecMinibotZonesmetadata�{"options":{},"indexes":[{"v":2,"key":{"_id":1},"name":"_id_","ns":"valk.MinibotZones"}],"uuid":"095bbac0d17640be9e27dffe681b7d83"}size�dbvalkcollection    ChatLogsmetadataQ{"options":{"capped":true,"size":104857600,"max":10000000},"indexes":[{"v":2,"key":{"_id":1},"name":"_id_","ns":"valk.ChatLogs"},{"v":2,"key":{"openid":1,"createdAt":1},"name":"openid_1_createdAt_1","ns":"valk.ChatLogs"},{"v":2,"key":{"createdAt":1},"name":"createdAt_1","ns":"valk.ChatLogs"}],"uuid":"70586c82b3ae42cf8d9c47ad339ea55b"}size�dbvalkcollection

【问题讨论】:

  • mongorestore --archive 应该能够读取这些文件。
  • 如果你想获取数据,一旦你使用了mongorestore,你就可以使用mongoexport来获取特定集合的数据
  • 我也很好奇这个。我只想在命令行上查看存档中的内容。

标签: mongodb archive restore


【解决方案1】:

mongodump 归档格式是一种特殊用途的格式;您需要将mongorestore --archive 与任何其他合适的选项一起使用。

例如,您可以使用--nsInclude 选项(mongorestore 3.4+)按命名空间选择性地恢复多个集合。

有关 MongoDB 存档格式的更多信息(以及为什么 tar 不适合),请参阅: Archiving and Compression in MongoDB Tools。其要点是:

通用归档格式,如 tar,仅支持归档内的连续文件打包。将这些存档格式用于 mongodump 和 mongorestore 将导致无法接受的性能下降,因为必须按顺序写入和读取来自所有集合的数据。为了支持这些工具的并发行为,我们开发了一种支持非连续文件写入的特殊用途存档格式。新的归档功能大大提高了备份和恢复操作的效率。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-28
    • 2010-10-30
    • 1970-01-01
    • 2015-12-02
    • 1970-01-01
    • 1970-01-01
    • 2020-02-02
    • 1970-01-01
    相关资源
    最近更新 更多