对于 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 压缩的扩展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,请通过API将useOrgAndGroupNamesInExportPrefix 标志设立为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,请通过API将useOrgAndGroupNamesInExportPrefix 标志设立为 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集合除外。

  • 从Atlas项目中的集群导出快照,该项目启用了使用客户数密钥管理进行静态加密,并将网络访问权限限制为特定IP地址。如果Atlas通过私有端点到达您的KMS,则此限制不应用。要学习;了解如何配置KMS 的私有端点,请参阅 AWS 说明或Azure说明。

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

  • 导出从已达到生命周期结束 (EOL) 的MongoDB版本中获取的快照。有关版本 EOL 日期,请参阅MongoDB软件生命周期时间表。

  • 如果某个Azure存储帐户的防火墙规则区块公共访问权限,则将快照导出到该帐户。

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

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

Amazon Web Services S3

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

Azure Blob 存储

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

Google Cloud PlatformGoogle Cloud Platform存储