导出云备份快照
注意
此功能不适用于 M0
免费集群、M2
和 M5
集群。要详细了解哪些功能不可用,请参阅 Atlas M0(免费集群)、M2 和 M5 限制。
Atlas 允许您将云备份快照导出到 AWS S3 存储桶。
要了解如何管理自动备份策略和计划,请参阅管理备份策略。
Atlas 如何导出快照
您可以手动导出单个快照,也可以设置导出策略来自动导出快照。对于自动导出,您必须在导出策略中指定频率:
每日
每周
每月
每年
Atlas 可自动导出频率类型与导出频率匹配的任何备份快照。导出的结果是该快照的完整备份。
例子
请考虑以下内容:
设立每周和每月快照计划的备份策略
设置每月导出频率的导出策略
假设在月底,每周和每月的快照发生在同一天。将有 4
个快照,其中 3
个是每周快照,第四个快照虽然被 Atlas 视为每周快照,但它也是每月快照,因为发生在同一天。Atlas 只会导出每月快照,因为导出频率与该快照的快照频率匹配。要同时导出每周快照,请将导出策略更新为同时导出每周快照。如果导出频率设置为每周,Atlas 将导出全部 4
个快照。
Atlas 会逐个导出集合的快照。随着导出的进行,您可能会在 S3 存储桶中看到部分结果。如果 Atlas 当前正在导出 5 个或更多副本集,则 Atlas 会对任何新作业进行排队。对于分片集群,无论分片数量有多少,Atlas 都会同时导出所有分片的快照。
除了 AWS 本身产生的数据传输费用外,Atlas 还针对导出到$.125
AWS S3 存储桶的每 GB 数据收取 的费用。 Atlas 会在导出之前压缩数据。要估计导出的数据量,请将集群中每个数据库的 dataSize 相加 。此总数应与导出的未压缩大小相对应,这将是 Atlas 因数据导出操作而产生的最大成本。
Atlas 上传的文件
当您执行以下操作时,Atlas 会将空文件上传到 /exported_snapshots/.permissioncheck
:
添加新的 AWS S3 导出桶
开始导出
完成导出后,Atlas 会为每个集合上传名为 .complete
和 metadata.json
的元数据文件。
如果导出作业失败:
Atlas 不会自动尝试再次导出。
Atlas 不会删除您的 S3 存储桶中的任何部分数据。
导出的数据格式
Atlas 将数据库内容以.json.gz
格式上传到 S3,其中包含扩展 JSON 格式的文档。S3 上文件的路径是
/exported_snapshots/<orgName>/<projectName>/<clusterName>/<initiationDateOfSnapshot>/<timestamp>/<dbName>/<collectionName>/<shardName>.<increment>.json.gz
其中:
<orgName> | 您的 Atlas 组织的名称。 |
<projectName> | 您的 Atlas 项目的名称。 |
<clusterName> | 您的 Atlas 集群的名称。 |
<initiationDateOfSnapshot> | 拍摄快照的日期。 |
<timestamp> | 创建导出作业时的时间戳。 |
<dbName> | Atlas 集群中数据库的名称。 |
<collectionName> | Atlas 集合的名称。 |
<shardName> | 副本集名称。 |
<increment> | 上传数据段时递增的计数。从 0 开始。 |
限制
适用以下限制:
您只能导出到 AWS S3 存储桶。
您只能导出当前支持的 MongoDB 版本的快照,但无论哪个版本,您始终可以下载已保存的快照。
无法导出回退快照。
每个快照只能有一个活动导出。
重要
当您将快照从分片集群导出到 S3 存储桶时,每个分片的导出时间戳可能不同。这可能会导致各分片出现重复或不一致的数据。
必需的访问权限
要管理云备份快照,您必须拥有项目的 Project Owner
访问权限。拥有 Organization Owner
访问权限的用户必须将自己添加为该项目的 Project Owner
,然后才能管理云备份快照。
先决条件
要将云备份快照导出到 AWS S3 存储桶,需要满足以下条件:
M10
或更高版本且启用了 Cloud Backup 的 Atlas 集群。AWS IAM 角色
STS:AssumeRole
,授予 Atlas 访问您的 AWS 资源的权限。要了解有关为 Atlas 配置 AWS 访问权限的更多信息,请参阅 设置统一 AWS 访问权限。AWS IAM 角色策略 授予 Atlas
S3:PutObject
S3:GetBucketLocation
对 AWS 资源的写入权限或 和 权限。要了解有关配置 AWS 资源写访问权限的更多信息,请参阅 设置统一 AWS 访问权限。例子
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetBucketLocation", "Resource": "arn:aws:s3:::bucket-name" }, { "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::bucket-name/*" } ] }