使用 mongorestore 播种

您所在的位置:网站首页 mongodump命令提示无权限 使用 mongorestore 播种

使用 mongorestore 播种

2024-07-09 19:02| 来源: 网络整理| 查看: 265

播种 mongorestore

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

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

注意事项推荐的mongodump 和mongorestore 版本

对于此过程,请使用最新稳定版本的mongodump和mongorestore 。

所需停机时间

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

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

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

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

集群安全性

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

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

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

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

性能

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

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

管道行为

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

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

步骤

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

1在源副本集中创建数据库用户。重要Optional

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

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

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

例子

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

use admindb.createUser( { user: "", pwd: "", roles: [ "backup" ] })2汇编mongodump 命令。

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

注意

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

注意

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

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

3在目标 Atlas 集群中设置数据库用户。

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

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

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

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

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

添加 Atlas admin 用户。

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

4在 AtlasClusters 中,转到项目的 页面。

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

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

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

5Command Line Tools为所需集群选择 。

单击集群菜单中的 Command Line Tools。

6检索并修改mongorestore 连接模板。

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

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

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

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

添加--archive 。

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

7运行mongodump和mongorestore 。重要

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

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

提示另请参阅:

IP 访问列表

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

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

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

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

提示另请参阅:

mongodump reference page

mongorestore reference page



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3