Docs 菜单
Docs 主页
/
MongoDB Atlas
/ /

从可查询的传统备份中恢复集合

在此页面上

  • 先决条件
  • 步骤

重要

传统备份已弃用

自 2020 年 3 月 23 日起,所有新集群只能使用云备份。

当升级到 5.0 时,如果备份系统当前设置为传统备份,则它会升级到云备份。在进行该升级后:

  • 所有现有的传统备份快照仍然可用。根据您的保留策略,它们会随着时间的推移而过期。

  • 您的备份策略将重置为默认计划。如果传统备份应用的是自定义备份政策,则须按照云备份文档中的步骤说明重新创建该政策。

Atlas 支持通过查询旧版备份快照来恢复collection。

重要

Atlas 不支持查询云备份。

您可以使用可查询备份 snapshot导出 collection 的数据并恢复到目标部署。 以下过程通过 Atlas 提供的隧道连接到可查询备份实例。

您必须确保目标 Atlas 集群在恢复期间不会收到客户端请求。 适用于以下使用案例:

  • 如果计划恢复到同一数据库,则必须在恢复期间停止客户端操作。

  • 如果计划恢复到其他数据库,则无需停止客户端应用程序。 在这种情况下,您可以恢复到新的 Atlas 集群,并在新部署运行后重新配置应用程序以使用该新集群。

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

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

  3. 单击侧边栏中的 Legacy Backup(支持)。

2

Legacy Backup页面上的Overview标签页列出了项目的集群。

  • 如果为集群启用了备份,则StatusActive

  • 如果已禁用集群备份,则StatusInactive

对于要查询其备份的部署,请单击Options列中的省略号并选择Query

您也可以单击View All Snapshots 查看其快照,然后单击所需快照的Query Actions列下的 。

3
  1. 选择要查询的快照,然后单击 Next

  2. Start 查询快照的进程。系统将提示您输入 Atlas 密码。

  3. 选择 Backup Tunnel 作为与可查询快照的连接方法。

  4. 选择您的Platform

  5. 单击 Download Backup Tunnel(连接)。

  6. 解压缩下载的文件。

  7. 打开终端或命令提示符,转到解压缩的<隧道>目录。运行可执行文件,启动隧道。

    隧道的默认端口是 27017。要更改端口,请使用 --local 标志,如下例所示:

    ./<tunnel executable> --local localhost:27020

    注意

    如果您更改端口,则必须在连接时包含端口信息。

4
要导出collection的数据,请执行以下操作:

包括以下连接到隧道的选项:

  • --port 设置为隧道的端口。

  • --db ,设置为要导出的数据库的名称。

  • --collection 设置为要导出的collection的名称。

  • --out 设置为一个空目录,以输出数据转储。

    重要

    确保运行 mongodump的用户可以写入指定目录。

mongodump --port <port for tunnel> --db <single-database> --collection <collection-name> --out <data-dump-path>

例如,要连接到在端口27020 上运行的隧道,以将collection中的数据从数据库转储到目录restaurants test/mydata/restoredata/

mongodump --port 27020 --db test --collection restaurants --out /mydata/restoredata/

mongodumprestaurants 集合数据输出到 /mydata/restoredata/test/restaurants.bson 文件中。

5
要恢复单个collection:

包括以下 mongorestore 选项:

注意

要恢复到 Atlas 集群,我们建议您使用--uri选项连接 DNS 种子列表。

  • --uri 设置为目标集群的连接字符串。

  • --db 设置为目标数据库的名称。

  • --collection 设置为目标collection的名称。

(可选)可以包含--drop选项,以便在集合已存在时删除目标集群中的集合。

mongorestore --uri "mongodb+srv://username:password@cluster0.example.mongodb.net" --db <destination-database> --collection <destination-collection> <data-dump-path/dbname/collection.bson> --drop

例如,要从 /mydata/restoredata/test/restaurants.bson 数据文件恢复到 test2 数据库中的新集合 rest2

mongorestore --uri "mongodb+srv://username:password@cluster0.example.mongodb.net" --db test2 --collection rest2 /mydata/restoredata/test/restaurants.bson --drop
6

完成后,可以终止可查询实例:

  1. 单击左侧导航窗格中的Legacy Backup ,然后单击Restores & Downloads标签页。

  2. 将鼠标悬停在目标部署项的Status列上,然后单击Cancel

  3. 单击 Cancel Restore Job(连接)。

7

重新启动应用程序并确保其使用新的目标集群。

后退

恢复数据库

在此页面上