Docs 菜单
Docs 主页
/
MongoDB Atlas
/ / /

播种 mongorestore

您可以使用 mongodumpmongorestore使用现有 MongoDB 独立运行版或副本集的数据为 MongoDB Atlas 集群播种。有关从现有 MongoDB 分片集群配置种子数据的指导,请通过单击 Atlas UI 左侧导航栏中的 Support联系 Atlas 支持部门。

虽然您可以使用 Atlas 用户界面将M0免费层级集群扩展M10+付费集群,但您也可以使用本节中的mongodumpmongorestore过程将数据从M0免费层级集群复制到M10+集群。

对于此过程,请使用最新稳定版本的mongodumpmongorestore

为确保最新的迁移,请安排一个维护窗口,您可以在其中停止对源集群的所有写入。在此过程的mongodump部分完成后,向源集群发出的任何写操作都不会迁移到目标集群。

mongorestore完成数据恢复后,您必须将应用程序切换到目标 Atlas 集群,然后才能恢复写入操作。要连接到 Atlas 集群,请参阅连接到集群。

所需的总停机时间取决于多种因素,例如要迁移数据的大小以及源集群与 Atlas 之间的网络连接。如果您对延长的停机时间有任何疑问或顾虑,请点击 Atlas 用户界面左侧导航栏中的 Support(支持)联系 Atlas 支持部门。

有关指导性的最短停机时间迁移过程,请参阅副本集实时迁移分片集群实时迁移

Atlas 管理数据库用户创建。如果源集群强制执行身份验证:

  • 允许对主节点进行读取访问。

  • 如果要将mongorestore--oplogReplay选项一起使用,则必须从mongodump创建的dump目录中删除adminconfig目录。 adminconfig目录包含您无法使用mongorestore添加到 Atlas 集群的数据库用户信息。使用mongorestore --nsExclude排除admin.system.*命名空间。

您不能将任何现有用户或角色信息迁移到 Atlas。为目标 Atlas 集群创建适当的数据库用户,支持应用程序的使用模式。作为切换过程的一部分,更新应用程序,使用新的数据库用户。要了解更多信息,请参阅配置数据库用户

此过程需要在源集群中的主机上运行mongodumpmongorestore 。这些程序会占用 CPU 和内存等系统资源,可能会影响主机的性能。

在非系统使用高峰期或计划维护窗口期间运行此程序。如果来源是副本集,则可以在从节点的主机上运行此过程。停止写入集群后,在启动此过程之前,让从节点集群赶上主节点集群。

此过程使用 Linux 管道mongodumpmongorestore 的输出流式传输到 。如果mongorestore 进程跟不上mongodump 进程,您可能会看到管道中断错误。

有关解决持续管道中断错误的指导,请点击 Atlas UI 左侧导航栏中的 Support(支持)联系 Atlas 支持部门。

以下教程使用mongodumpmongorestore将数据从现有 MongoDB 集群上传到 Atlas 集群:

1

重要

Optional

如果您的源集群强制执行身份验证,则跳过此步骤。

如果源部署强制执行身份验证,则必须为此过程的一部分向数据库用户提供读取任何数据库的特权。要了解有关数据库用户权限的更多信息,请参阅MongoDB 基于角色的访问控制。

如果不存在这样的用户,请在源 MongoDB 副本集中创建一个具有admin数据库备份角色的用户。

例子

mongosh中运行以下命令,在admin数据库上创建mySourceUser ,并为其分配backup角色。对于副本集,您必须对主节点运行此命令。

use admin
db.createUser(
{
user: "<mySourceUser>",
pwd: "<mySourcePassword>",
roles: [ "backup" ]
}
)
2

根据您使用的连接字符串类型,将以下模板之一复制到您的首选文本编辑器中:

注意

要连接 Atlas 集群,我们建议您使用 --uri 选项,通过 DNS 种子列表连接字符串进行连接。

注意

如果密码包含特殊字符,则必须使用百分号编码。

先不要运行此命令。修改模板后请继续下一步操作。

3

要针对 Atlas 集群运行mongorestore ,您必须在 Atlas 集群中指定具有Atlas admin角色的数据库用户。

如果不存在该用户,则创建该用户:

  1. 如果尚未显示,请从导航栏的 Organizations(组织)菜单中选择所需的组织。

  2. 点击侧边栏中的 Access Manager,或点击导航栏中的 Access Manager,然后点击您的组织。

  3. 单击 Add New Database User(添加新的数据库用户)。

  4. 添加 Atlas admin 用户。

要了解有关用户管理的更多信息,请参阅配置数据库用户。

4
  1. 如果尚未显示,请从导航栏的 Organizations 菜单中选择包含所需项目的组织。

  2. 如果尚未显示该页,请从导航栏的 Projects(项目)菜单中选择所需的项目。

  3. 如果 Clusters(数据库部署)页面尚未出现,请单击侧边栏中的 Database(数据库)。

5

单击集群菜单中的 Command Line Tools

6

Command Line Tools标签页的Binary Import and Export Tools部分显示一个可复制的模板,其中包含将mongorestore连接到 Atlas 集群所需的最低选项。

此模板包含某些选项的占位符值。 将模板复制粘贴到您的首选文本编辑器中, 然后进行以下修改:

  • password:将其替换为 username 中指定的用户的密码。该模板包括一个项目数据库用户,作为 username 的值。如果要以其他用户身份进行身份验证,请替换 username 的值,并在 password 中指定该用户的密码。

  • 添加--nsExclude并将其值设置为"admin.system.*"

  • 添加--archive

根据使用的连接字符串类型,您的模板应类似于以下命令之一:

7

重要

确保运行mongodumpmongorestore的主机位于项目IP 访问列表中。

要查看项目 IP 访问列表,请单击侧边栏 Security 部分中的 Network Access。随后会显示 IP Access List 标签页。

提示

另请参阅:

在您的首选文本编辑器中,使用竖线|操作符分隔mongodumpmongorestore命令。根据您使用的连接字符串类型,最终命令应类似于以下命令之一:

从连接到源群集主机的终端 或 Shell 运行已完成的命令。

成功完成该过程后,使用mongosh连接到您的 Atlas 集群并验证该过程的结果。要了解如何操作,请参阅通过mongosh连接。

您必须更新应用程序,指向 Atlas 集群,然后才能恢复写操作。如需了解如何将应用程序连接到 Atlas,请参阅通过驱动程序连接

← mongomirror 以前的版本