mongodb 归档格式是什么?

dcs*_*san 7 restore archive mongodb

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

\n\n
$ tar -xvf valk.archive\ntar: Unrecognized archive format\ntar: Error exit delayed from previous errors.\n$ file valk.archive\nvalk.archive: gzip compressed data, original size 13953183\n$ gunzip valk.archive\ngunzip: valk.archive: unknown suffix -- ignored\n$ unzip valk.archive\nArchive:  valk.archive\n  End-of-central-directory signature not found.  Either this file is not\n  a zipfile, or it constitutes one disk of a multi-part archive.  In the\n  latter case the central directory and zipfile comment will be found on\n  the last disk(s) of this archive.\nunzip:  cannot find zipfile directory in one of valk.archive or\n        valk.archive.zip, and cannot find valk.archive.ZIP, period.\n$ mv valk.zip valk.gz\n$ gunzip valk.gz\n$ open .\n$ tar -xvf valk\ntar: Unrecognized archive format\ntar: Error exit delayed from previous errors.\n$ head valk\nTemplateDatametadata\xef\xbf\xbd{"options":{},"indexes":[{"v":2,"key":{"_id":1},"name":"_id_","ns":"valk.TemplateData"}],"uuid":"f52402b5aba24856b072d57cc3e46a72"}size-dbvalkcollectioMetricsmetadata\xef\xbf\xbd{"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\xef\xbf\xbddbvalkcollection\nAppConfigmetadata\xef\xbf\xbd{"options":{},"indexes":[{"v":2,"key":{"_id":1},"name":"_id_","ns":"valk.AppConfig"}],"uuid":"df633b0a43184de38e8b8ea7489cda3e"}size\xef\xbf\xbddbvalkcollecMinibotZonesmetadata\xef\xbf\xbd{"options":{},"indexes":[{"v":2,"key":{"_id":1},"name":"_id_","ns":"valk.MinibotZones"}],"uuid":"095bbac0d17640be9e27dffe681b7d83"}size\xef\xbf\xbddbvalkcollection    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\xef\xbf\xbddbvalkcollection\n
Run Code Online (Sandbox Code Playgroud)\n

Ste*_*nie 8

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

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

有关 MongoDB 存档格式(以及为什么tar不合适)的更多信息,请参阅: MongoDB 工具中的存档和压缩。其要点是:

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