mongorestore:检查存档转储文件或验证--nsFrom 参数?

mongorestore:检查存档转储文件或验证--nsFrom 参数?

我有一台 MongoDB 服务器,其中有数据库 DB_A 和 DB_B。mongodump我使用以下命令创建仅数据库 DB_A 的存档转储:

mongodump --uri "$MONGO_CONNECTION_STRING" --archive --gzip -db "DB_A"

一段时间后,我想使用 DB_C 将此转储重新导入另一个命名空间mongorestore。由于我非常谨慎,我想在使用测试数据库“DB_B”之前测试此命令:

mongorestore --gzip --uri "$MONGO_CONNECTION_STRING" --nsFrom "DB_B.*" --nsTo "$DB_C.*" --drop --archive ./any-timestamp.tar.gz

我观察到以下行为:由于源命名空间 DB_B 不包含在备份文件中,因此它仍将恢复备份,完全忽略--nsFrom--nsTo参数。因此,我错误地将 DB_A 的状态完全重置为转储状态。

这是预期的行为吗?我怎么知道转储文件只包含一个数据库?有没有办法明确验证参数中命名的数据库是否存在--nsFrom

答案1

在此之后也是如此。在其他 RDBMS 中,有一种方法可以在 DB 转储上执行类似 RESTORE HEADERONLY 的操作,它将向您显示转储文件中的内容。

相关内容