4

我正在尝试使用 mongo 3.0.7 中的 mongorestore 恢复一个大文件。prod079 文件夹下的所有文件都已成功恢复,除了一个名为 system.users 的文件。用于恢复的命令是

 mongorestore -u testdba -p xxxxxx -d prod079 /data/backup --batchSize=1

上面的命令从同一个文件夹中恢复了 400GB 的数据,但似乎仅凭这个文件就失败了。

我收到这样的错误:

错误:在 prod079 上未授权执行命令 { 插入:“system.users”,文档:[ { _id:ObjectId('531e5251864fb4e84b'),密码:“xxxxxxxx”,角色:[“dbAdmin”,“readWrite”,“userAdmin " ], 用户: "ab" } ], writeConcern: { getLastError: 1, w: 1 }, 有序: false }

2015-12-10T13:20:49.196-0500 错误:在 prod079 上未授权执行命令 { 插入:“system.users”,文档:[ { _id:ObjectId('531e5251864fb4e84c'),用户:“abuser”,密码: “xxxxxxxx”,角色:[“read”]}],writeConcern:{getLastError:1,w:1},ordered:false}

2015-12-10T13:20:49.196-0500 错误:在 prod079 上未授权执行命令 { 插入:“system.users”,文档:[ { _id:ObjectId('5452840f169afa3a2'),用户:“asmeta”,密码: “xxxxxxxx”,角色:[“read”]}],writeConcern:{getLastError:1,w:1},ordered:false}

所以基本上我得到了很多这样的错误。我尝试在 stackoverflow 和 google 上寻找类似的错误,但我能找到的只是包含 -d 或包含 localhost。然后我发现一个帖子说我没有为 testdba 用户授予 userAdmin/userAdminAnyDatabase 权限。这次我尝试以具有 userAdmin/userAdminAnyDatabase 权限的管理员用户身份运行。我使用的命令是:

mongorestore -u admin -p xxxxx -d prod079 /data/backup --batchSize=1 

这次我遇到了不同类型的错误。它说 :

2015-12-10T13:17:59.940-0500 失败:连接到数据库服务器时出错:服务器在 SASL 身份验证步骤中返回错误:身份验证失败。

现在我真的很困惑正在发生的事情以及为什么我独自面对这个文件的问题。另外,当我尝试以管理员身份恢复时,我无法理解为什么会出现如此不同的错误。

任何建议/帮助将不胜感激。

4

2 回答 2

3

我尝试了上面列出的所有方法,但都没有奏效。

我将角色“恢复”赋予了管理员用户并且它起作用了。

请参阅文档中有关“恢复”的更多信息。

于 2017-06-28T07:06:18.140 回答
0

尝试将选项 --nsInclude 添加到 mongorestore 命令:

mongorestore -u="testdba" -p="xxxxxx" --authenticationDatabase="prod079" --nsInclude="prod079.*" /data/backup --batchSize=1

您可以在官方文档中找到更多详细信息。

于 2021-06-29T07:18:02.703 回答