MongoDb:如何从.gz文件中导入转储数据?

34

我想从我的.gz文件导入转储数据。

文件的位置是home/Alex/Documents/Abc/dump.gz,数据库的名称为"Alex"

我尝试了mongorestore --gzip --db "Alex" /home/Alex/Documents/Abc/dump.gz

但它显示错误:

 2018-10-31T12:54:58.359+0530   the --db and --collection args should 
 only be used when restoring from a BSON file. Other uses are 
 deprecated and will not exist in the future; use --nsInclude instead
 2018-10-31T12:54:58.359+0530   Failed: file 
 /home/Alex/Documents/Abc/dump.gz does not have .bson extension.

我该如何导入它?

4个回答

79

转储命令:

mongodump --host localhost:27017 --gzip --db Alex --out ./testSO

恢复命令:

mongorestore --host localhost:27017 --gzip --db Alex ./testSO/Alex

完美运作!


在使用存档时:

转储命令:

mongodump --host localhost:27017 --archive=dump.gz --gzip --db Alex

恢复命令:

mongorestore --host localhost:27017 --gzip --archive=dump.gz --db Alex

注意:在使用存档时,您需要坚持使用数据库名称

不支持使用不同的数据库名称或集合名称。请参阅更多信息


3
"--db"和"--collection"参数应仅在从BSON文件恢复时使用。其他用途已被弃用,并且将来不再存在; - Santiago Bendavid
2
我从转储中获得了 jsonbson 文件。对于我来说,使用 --gzip 而不使用 --db 是失败的。 - mmell
1
mongorestore --host localhost:27017 --gzip --archive=dump.gz --db Alex 这个命令对我不起作用。我得到了与 @SantiagoBendavid 相同的错误。 - Nishat
如果你像我一样在问,27017 是 MongoDB 的默认端口:https://docs.mongodb.com/manual/reference/default-mongodb-port/index.html - Metafaniel
mongorestore --gzip --archive=/path/to/file.gz --db 对我有效 - Pragyanshu Sharma
mongorestore实用程序的nsTo和nsFrom参数字段支持不同的数据库名称。 - gaurav arora

3

以下是在最新版本(100.5.1)的mongodump中适用的方法。

mongorestore --uri=<CONNECTION_URI> --gzip --archive=<ARCHIVE_NAME> --nsFrom "<SOURCE_DB_NAME>.*" --nsTo "<DEST_DB_NAME>.*"

0
解压缩.tgz文件并还原数据库
tar zxvf fileNameHere.tgz
mongorestore --port 27017 -u="用户名" -p="密码" --authenticationDatabase admin /bacup_path

0

mongorestore无法在gzip文件中找到BSON文件,因为mongodump使用的路径与还原路径不同。

解决问题的最快、最安全的方法是提取gzip文件并进入包含jsonbson文件的上层文件夹以运行mongorestore。

例如,dump.gz文件是这样制作的,备份保存在data/backup/mongo/dump/路径文件夹中。

使用命令tar -xvf dump.gz提取dump.gz文件,您会发现一个名为data的文件夹,里面有子文件夹data/backup/mongo/dump/dump文件夹内包含所有带有json和bson扩展名的备份文件,这些文件代表数据库和集合等)。

进入dump文件夹所在的更高级别文件夹,例如cd data/backup/mongo/

现在您可以运行还原命令了。

mongorestore --authenticationDatabase admin dump/

dump/ 是包含备份文件的文件夹。

您可能需要使用参数 -h 来指定 服务器主机(例如 localhost),并使用参数 -u 后跟启用还原操作的用户名(例如 root)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接