对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

将云备份快照导出到对象存储

注意

此功能不适用于免费集群和 Flex 集群。要详细学习;了解哪些功能不可用,请参阅Atlas免费集群限制。

Atlas允许您将云备份快照导出到对象存储服务。

要了解如何将导出的快照恢复回 Atlas 集群,请参阅将存档的快照导入 Atlas

要了解如何管理自动备份策略和计划,请参阅管理备份策略

Atlas目前支持以下对象存储服务:

  • AWS S3 存储桶

  • Azure Blob 存储

  • Google Cloud Storage 存储桶

此外,Atlas支持使用 PrivateLink 将快照导出到 AWS S3 存储桶。

您可以手动导出单个快照,也可以设置导出策略来自动导出快照。有关对象存储服务的具体步骤,请参阅 云提供商的导出页面。

要设置自动导出,请向您的云备份定时安排添加导出策略,并将其频率类型设置为 dailyweeklymonthlyyearly。当具有相同频率类型的 备份策略项 创建快照时,Atlas 会将该快照导出到您指定的对象存储。

当您添加新的 对象存储 以进行导出和启动导出时,Atlas 会将一个空文件上传到对象存储中的 /exported_snapshots/.permissioncheck 路径。随着导出的进行,您可能会在对象存储服务中看到部分结果。

无论“生存时间”设置如何, Atlas都会将文档保留在快照中。您可以在超过“生存时间”截止时间后的快照中访问权限这些文档。

要学习;了解快照导出定价,请参阅快照导出成本。

每个云备份快照导出作业都会将快照数据以 gzip 压缩的 Extended JSON v2 文档形式上传到对象存储。这些文件不会以任何特定顺序上传。每个文件都包含快照中单个集合的一个文档数据块。对于分片集群,Atlas 会为每个副本集(分片)创建一个独立的导出作业,并在上传文件的路径中指定副本集名称。

重要

随着导出的进行,您可能会在对象存储服务中看到部分结果。 如果导出作业失败:

  • Atlas 不会自动尝试再次导出。

  • Atlas不会删除对象存储中的任何部分数据。

Atlas 将每个数据文件上传到对象存储上的以下路径:

/exported_snapshots/<orgName>/<projectName>/<clusterName>/<initiationDateOfSnapshot>/<timestamp>/<dbName>/<collectionName>/<shardName>.<increment>.json.gz

Atlas 会将路径中的每个占位符替换为这些值:

<orgName>

您的 Atlas 组织的名称。

<projectName>

您的 Atlas 项目的名称。

<clusterName>

您的 Atlas 集群的名称。

<initiationDateOfSnapshot>

拍摄快照的日期。

<timestamp>

创建导出作业时的时间戳。

<dbName>

Atlas 集群中数据库的名称。

<collectionName>

Atlas 集合的名称。

<shardName>

<increment>

上传数据段时递增的计数。从 0 开始。

Atlas 将快照数据导出到对象存储后,还会为每个集合上传命名为 .completemetadata.json 的元数据文件:

导出的元数据文件,其中包含有关导出作业和导出快照的信息。

对于快照导出作业中的每个集合,Atlas 会将命名为 .complete 的元数据文件上传到对象存储中的以下路很:

/exported_snapshots/<orgUUID>/<projectUUID>/<clusterName>/<initiationDateOfSnapshot>/<timestamp>/

注意

默认情况下,Atlas 在元数据文件的路径中使用组织和项目 UUID。要使用组织和项目名称而不是 UUID,请通过 APIuseOrgAndGroupNamesInExportPrefix 标志设置为 true。Atlas 会用下划线 (_) 替换所有空格,并从路径中的组织和项目名称中删除任何可能需要特殊处理的字符应避免使用的字符

.complete 元数据文件采用 JSON 格式,包含以下字段:

请求主体字段
说明

orgId

唯一的 24 位十六进制数字字符串,用于标识 Atlas 组织。

orgName

Atlas 组织的名称。

groupId

唯一的 24 位十六进制数字字符串,用于标识 Atlas 组织中的项目。

groupName

Atlas 项目的名称。

clusterUniqueId

用于标识 Atlas 集群的唯一的 24 位十六进制数字字符串。

clusterName

Atlas 项目的名称。

snapshotInitiationDate

拍摄快照的日期。

totalFiles

上传到对象存储的文件总数。

labels

已导出快照的集群所具有的标签。

customData

您在创建导出作业时指定的自定义数据(如果有)。

例子

{
"orgId": "60512d6f65e4047fe0842095",
"orgName": "org1",
"groupId": "60512dac65e4047fe084220f",
"groupName": "group1",
"clusterUniqueId": "60512dac65e4047fe0842212",
"clusterName": "cluster0",
"snapshotInitiationDate": "2020-04-03T05:50:29.321Z"
"totalFiles": 23,
"labels": [
{
"key": "key1",
"value": "xyz"
},
{
"key": "key2",
"value": "xyzuio"
}
],
"customData": [
{
"key": "key1",
"value": "xyz"
},
{
"key": "key2",
"value": "xyzuio"
}
]
}

包含有关导出集合的信息(包括其索引和选项)的导出元数据文件。

对于快照导出作业中的每个集合,Atlas 会将命名为 metadata.json 的元数据文件上传到对象存储中的以下路很:

/exported_snapshots/<orgUUID>/<projectUUID>/<clusterName>/<initiationDateOfSnapshot>/<timestamp>/<dbName>/<collectionName>/metadata.json

注意

默认情况下,Atlas 在元数据文件的路径中使用组织和项目 UUID。要使用组织和项目名称而不是 UUID,请通过 APIuseOrgAndGroupNamesInExportPrefix 标志设置为 true。Atlas 会用下划线 (_) 替换所有空格,并从路径中的组织和项目名称中删除任何可能需要特殊处理的字符应避免使用的字符

元数据文件采用 JSON 格式,包含以下字段:

请求主体字段
说明

collectionName

用于标识集合的用户可读标签。

indexes

db.collection.getIndexes 命令返回的格式列出集合上的所有索引。

options

在集合上定义的配置选项。要了解有关选项的更多信息,请参阅 db.createCollection() 命令。

type

(可选)集合类型。 此字段仅支持时间序列集合,其值为 timeseries。 对于标准集合,请将此字段保留为未设置。

Atlas不支持导出 view 类型集合。

uuid

集合的 UUID。要了解有关 UUID 的更多信息,请参阅UUID

例子

{
"options":{
"viewOn":"othercol",
"pipeline":[{"$project":{"namez":"$name"}}]
},
"indexes":[],
"collectionName":"viewcol",
"type":"view"
}
{
"options":{
"timeseries":{
"timeField":"timestamp",
"granularity":"seconds",
"bucketMaxSpanSeconds":{"$numberInt":"3600"}
}
},
"indexes":[],
"collectionName":"timeseriescol",
"type":"timeseries"
}
{
"indexes": [
{
"v":{"$numberInt":"2"},
"key":{
"_id":{"$numberInt":"1"}
},
"name":"_id_"
}
],
"uuid":"342c40a937c34c478bab03de8ce44f3e",
"collectionName":"somecol"
}

您无法执行以下操作:

  • 每个快照都有多个活动导出。

  • 导出视图集合,或系统集合,但 <database>.system.js 集合除外。

  • 从启用了IP限制静态加密的Atlas项目中的集群导出快照。

  • 通过 私有端点(私有导出)导出 Azure 或 Google Cloud Platform 集群的快照。

导出云备份快照的步骤取决于您的对象存储服务。要设置 Atlas 访问、配置导出存储桶并导出快照,请参阅云提供商的页面:

将快照导出到 AWS S3 存储桶,包括通过 PrivateLink 导出。

Amazon Web Services S3

将快照导出到 Azure Blob Storage 容器。

Azure Blob 存储

将快照导出到 Google Cloud Storage 存储桶。

Google Cloud PlatformGoogle Cloud Platform存储