如何使用“mongorestore”通过 TAR.GZ 文件恢复数据库
How to use `mongorestore` to restore a database using a TAR.GZ file
简单问题:
$ mongorestore --gzip ./Mongo_DB_dump/restore-8f05kcbfhfbce745735eff49.tar.gz
2020-07-09T18:10:48.207-0500 Failed: file .\Mongo_DB_dump\restore-8f05kcbfhfbce745735eff49.tar.gz does not have .bson extension
2020-07-09T18:10:48.209-0500 0 document(s) restored successfully. 0 document(s) failed to restore.
如果我不知道数据库名称,如何使用“tar.gz”文件恢复数据库?
我正在尝试将生产实例(MongoDB 云)中的转储导入我的本地环境。如果相关的话,我的本地没有任何以前版本的数据库。
编辑
我还尝试使用 .tar.gz 文件来使用 mongostore --gzip
,我还尝试将内容提取到 .tar 文件但是,对于这两个文件,我都收到以下错误:
2020-07-09T22:33:07.127-0500 Failed: file .\Mongo_DB_dump\restore-8f05kcbfhfbce745735eff49.tar.gz does not have .bson extension
2020-07-09T22:33:07.128-0500 0 document(s) restored successfully. 0 document(s) failed to restore.
我也试过使用/archive:<path-to-file>
不成功:
$ mongorestore --gzip /archive:./Mongo_DB_dump/restore-8f05kcbfhfbce745735eff49.tar.gz
2020-07-09T22:52:59.076-0500 Failed: stream or file does not appear to be a mongodump archive
2020-07-09T22:52:59.077-0500 0 document(s) restored successfully. 0 document(s) failed to restore.
我什至试图盲目地将 .tar
扩展名更改为 .bson
,但这当然没有成功:
2020-07-09T22:08:24.175-0500 checking for collection data in Mongo_DB_dump\restore-8f05kcbfhfbce745735eff49.bson
2020-07-09T22:08:24.601-0500 restoring Mongo_DB_dump.restore-8f05kcbfhfbce745735eff49 from Mongo_DB_dump\restore-8f05kcbfhfbce745735eff49.bson
2020-07-09T22:08:24.664-0500 finished restoring Mongo_DB_dump.restore-8f05kcbfhfbce745735eff49 (0 documents, 0 failures)
2020-07-09T22:08:24.664-0500 Failed: Mongo_DB_dump.restore-8f05kcbfhfbce745735eff49: error restoring from Mongo_DB_dump\restore-8f05kcbfhfbce745735eff49.bson: reading bson input: invalid BSONSize: 1953719666 bytes
2020-07-09T22:08:24.664-0500 0 document(s) restored successfully. 0 document(s) failed to restore.
我刚刚将 .tar.gz
文件的内容提取到 C:\ProgramData\MongoDB\data\db
并覆盖那里的所有内容...
我不太相信这个,但至少我能够工作,因为这样我就得到了 Mongo Shell[=15= 可见的数据库、集合和文档].
如果您知道,请分享更好的答案。
以防其他人 运行 遇到这个问题:
我目前正在使用数据库版本 v4.4.5 并以两种不同的方式恢复备份:
- 如果你已经有一个转储的存档文件并压缩了它 dump.tar.gz ,那么你可以先 decompress/extract 存档文件然后用命令:
mongorestore --host=localhost --port=27017 --archive dump.tar
- 否则,您可以使用命令直接恢复dump.tar.gz:
mongorestore --host=localhost --port=27017 --gzip --archive=dump.tar.gz
谢谢
在 Mac(Big Sur,Intel)上,我 found 我的 MongoDB 文件在 /usr/local/var/mongodb
。然后我 备份 我当前的 mongodb
文件夹,然后用 .tar.gz
备份文件的解压缩内容(单个文件和文件夹)替换它的内容。
然后我 restarted 我的本地 MongoDB 服务。
这用存档文件的内容替换您在本地的所有当前数据。
这个答案建立在@Metafaniel 的 之上。
简单问题:
$ mongorestore --gzip ./Mongo_DB_dump/restore-8f05kcbfhfbce745735eff49.tar.gz
2020-07-09T18:10:48.207-0500 Failed: file .\Mongo_DB_dump\restore-8f05kcbfhfbce745735eff49.tar.gz does not have .bson extension
2020-07-09T18:10:48.209-0500 0 document(s) restored successfully. 0 document(s) failed to restore.
如果我不知道数据库名称,如何使用“tar.gz”文件恢复数据库? 我正在尝试将生产实例(MongoDB 云)中的转储导入我的本地环境。如果相关的话,我的本地没有任何以前版本的数据库。
编辑
我还尝试使用 .tar.gz 文件来使用 mongostore --gzip
,我还尝试将内容提取到 .tar 文件但是,对于这两个文件,我都收到以下错误:
2020-07-09T22:33:07.127-0500 Failed: file .\Mongo_DB_dump\restore-8f05kcbfhfbce745735eff49.tar.gz does not have .bson extension
2020-07-09T22:33:07.128-0500 0 document(s) restored successfully. 0 document(s) failed to restore.
我也试过使用/archive:<path-to-file>
不成功:
$ mongorestore --gzip /archive:./Mongo_DB_dump/restore-8f05kcbfhfbce745735eff49.tar.gz
2020-07-09T22:52:59.076-0500 Failed: stream or file does not appear to be a mongodump archive
2020-07-09T22:52:59.077-0500 0 document(s) restored successfully. 0 document(s) failed to restore.
我什至试图盲目地将 .tar
扩展名更改为 .bson
,但这当然没有成功:
2020-07-09T22:08:24.175-0500 checking for collection data in Mongo_DB_dump\restore-8f05kcbfhfbce745735eff49.bson
2020-07-09T22:08:24.601-0500 restoring Mongo_DB_dump.restore-8f05kcbfhfbce745735eff49 from Mongo_DB_dump\restore-8f05kcbfhfbce745735eff49.bson
2020-07-09T22:08:24.664-0500 finished restoring Mongo_DB_dump.restore-8f05kcbfhfbce745735eff49 (0 documents, 0 failures)
2020-07-09T22:08:24.664-0500 Failed: Mongo_DB_dump.restore-8f05kcbfhfbce745735eff49: error restoring from Mongo_DB_dump\restore-8f05kcbfhfbce745735eff49.bson: reading bson input: invalid BSONSize: 1953719666 bytes
2020-07-09T22:08:24.664-0500 0 document(s) restored successfully. 0 document(s) failed to restore.
我刚刚将 .tar.gz
文件的内容提取到 C:\ProgramData\MongoDB\data\db
并覆盖那里的所有内容...
我不太相信这个,但至少我能够工作,因为这样我就得到了 Mongo Shell[=15= 可见的数据库、集合和文档].
如果您知道,请分享更好的答案。
以防其他人 运行 遇到这个问题:
我目前正在使用数据库版本 v4.4.5 并以两种不同的方式恢复备份:
- 如果你已经有一个转储的存档文件并压缩了它 dump.tar.gz ,那么你可以先 decompress/extract 存档文件然后用命令:
mongorestore --host=localhost --port=27017 --archive dump.tar
- 否则,您可以使用命令直接恢复dump.tar.gz:
mongorestore --host=localhost --port=27017 --gzip --archive=dump.tar.gz
谢谢
在 Mac(Big Sur,Intel)上,我 found 我的 MongoDB 文件在 /usr/local/var/mongodb
。然后我 备份 我当前的 mongodb
文件夹,然后用 .tar.gz
备份文件的解压缩内容(单个文件和文件夹)替换它的内容。
然后我 restarted 我的本地 MongoDB 服务。
这用存档文件的内容替换您在本地的所有当前数据。
这个答案建立在@Metafaniel 的