我是MongoDB的新手,我在一个MongoDB实例中测试了一些基本的备份和还原操作。
除了恢复用户外,所有测试都运行良好。
我首先使用以下命令创建了测试数据库的备份( db_test ):
$ mongodump -u adm_dump --authenticationDatabase admin -d db_test --dumpDbUsersAndRoles -o /opt/backup/mongodump_db_test
adm_dump 是我使用" restore"创建的用户。和"备份"作用。
2个用户出现在 db_test 数据库中,其中包含" readWrite"和"阅读"角色分别。所以我期待这两个用户都能恢复。
然后我将数据库恢复到数据库 db_test_2 (不存在):
$ mongorestore -u adm_dump --authenticationDatabase admin -d db_test_2 --restoreDbUsersAndRoles /opt/backup/mongodump_db_test/db_test
已成功创建新数据库 db_test_2 (已还原所有集合),但 db_test2 中未还原用户。
在日志尾部下方:
...
2016-06-29T18:28:26.429+0200 restoring users from /opt/backup/mongodump_db_test/db_test/$admin.system.users.bson
2016-06-29T18:28:26.464+0200 roles file '/opt/backup/mongodump_db_test/db_test/$admin.system.roles.bson' is empty; skipping roles restoration
2016-06-29T18:28:26.464+0200 restoring roles from /opt/backup/mongodump_db_test/db_test/$admin.system.roles.bson
2016-06-29T18:28:26.468+0200 done
我还授予" userAdmin"角色到 adm_dump 并多次执行操作但没有成功。我应该为 adm_dump 用户提供另一个特定角色吗?
我阅读了doc,并在dumpDbUsersAndRoles / restoreDbUsersAndRoles选项上进行了搜索,但没有发现任何相关内容。
从转储备份中恢复用户我错过了什么?
CentOS 6.6上的MongoDB版本3.2.1
答案 0 :(得分:0)
万一有人试图这样做...
F:\java>java CustomSortingClass
unsorted Student
Student@b065c63**
拥有那些特权?)adm_dump
,这仅在您指定数据库时适用。请参阅docs。示例:
--dumpDbUsersAndRoles