本文介绍如何下载PolarDB集群的备份文件。
发布时间
2023年11月24日
当前备份文件下载功能灰度发布中,将陆续开放。
使用场景
除了全量恢复和库表恢复功能外,PolarDB提供了备份文件下载的功能,您可以将集群备份集对应的备份文件下载到您的本地,用于其他用途,如:
查询备份里的数据
查询过去某个时间点的数据
在本地保存一份备份
下载备份用于审计
把备份转移至您的OSS
下载的备份数据无法直接用于恢复到PolarDB MySQL版集群。您可以将下载的备份文件恢复至自建MySQL数据库,具体请参见从备份文件恢复到自建MySQL数据库。
费用说明
使用备份下载功能将产生外网流量费用和备份集转换费用。
若下载任务失败,则不会产生任何费用。
流量费用
内网下载:免费。
外网下载:免费额度为500 GB/月/集群,超出免费额度的部分将按量计费,根据下载数据量每天扣费一次。具体费用单价,请参见网络费用。
建议您购买包年包月的网络包,可以抵扣账号下外网下载备份产生的网络流量费用,网络包容量越大折扣越高。
备份集转换费用
PolarDB使用该功能时快照备份集转换为CSV、SQL或者Parquet备份文件的费用。无免费额度,计费标准如下:
地域 | 转换费用(美元/GB) |
公共云相关地域 | 0.03125 |
您可以进入PolarDB控制台,在集群备份恢复页的备份下载页签下,查看当月备份计算数据量(即备份集转换数据量)和当月外网流出流量。
前提条件
版本要求
PolarDB MySQL版集群需满足以下条件:
当前仅PolarDB MySQL版企业版的集群版支持备份下载功能。
PolarDB MySQL版集群的引擎版本支持5.6、5.7、8.0.1、8.0.2。
地域要求
西南1(成都)、华南3(广州)、华北1(青岛)、华北2(北京)、华东2(上海)、华北3(张家口)、华东1(杭州)、华南1(深圳)、中国香港、马来西亚(吉隆坡)、印度尼西亚(雅加达)、日本(东京)、新加坡、美国(硅谷)、美国(弗吉尼亚)、德国(法兰克福)。
其余地域将陆续上线。
RAM账号权限要求
下载备份功能的鉴权能力依赖于RAM的权限管理。
授予RAM账号下载备份的权限
如果您无法正常使用下载备份功能(例如创建、查询下载任务),请检查您的RAM账号是否已添加管理数据库备份服务(DBS)的权限(AliyunDBSFullAccess)。如何授权,请参见为RAM用户授权。
禁止RAM账号获取备份下载链接
如果您的RAM账号需要拥有备份恢复的使用权限,但需要禁止该RAM账号获取备份下载的下载链接,您可以创建自定义权限策略禁止RAM账号调用获取下载链接的接口,参考脚本如下:
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": "dbs:DescribeDownloadBackupSetStorageInfo",
"Resource": "*"
}
]
}
自定义权限策略创建完成后,请将该自定义权限策略授权到您的RAM账号中。此时,您的RAM账号就会被禁止获取下载链接。
允许只读RAM账号下载备份
基于安全角度考虑,若RAM账号对PolarDB资源的权限为只读访问数据库POLARDB的权限(AliyunPolardbReadOnlyAccess),则该只读RAM账号无法下载备份文件。
在这种情况下,如果该RAM账号需要具有下载备份文件的权限,可以为该RAM用户授予只读访问数据库备份服务(DBS)的权限(AliyunDBSReadOnlyAccess)。授权后,该用户可以查看已创建的下载任务对应的下载链接。
如何授权,请参见为RAM用户授权。
其他
备份数据未加密。加密的PolarDB集群不支持下载备份。
功能限制
本功能支持导出大部分的表结构,部分结构信息暂不支持导出。
支持导出:列信息、主键索引、非主键索引、唯一索引、分区表信息、表引擎、表级别或库级别的字符集与字符排序规则
不支持导出:表达式索引、外键、生成列、隐藏列、视图、函数、存储过程、系统变量、触发器
不支持空间数据类型的字段。当数据包含了以下类型的字段时,转换任务会失败:
GEOMETRY、POINT、LINESTRING、POLYGON、MULTIPOINT、MULTILINESTRING、MULTIPOLYGON、GEOMETRYCOLLECTION
导出的CSV文件中不包含如下系统库:
information_schema
、mysql
、performance_schema
、sys
、__recycle_bin__
若选择下载目标为OSS,仅支持OSS存储类型为标准存储。如需转换存储类型,请参见存储类型转换。
若集群开启了冷数据归档,则不支持下载归档后的冷数据。
操作步骤
登录PolarDB控制台,在控制台左上角选择集群所在地域,然后,单击目标集群ID,进入集群基本信息页。
在左侧导航栏中,单击备份恢复。
在备份恢复页面中选择数据备份列表。
单击目标备份集右侧操作列下的集群备份下载。
说明默认展示近8天内的备份数据,如需查看8天前的备份,请修改时间范围。
如控制台页面没有集群备份下载按钮,请确认您的集群版本或所在地域是否满足前提条件。
在下载时间点与备份集流程下方,选择按时间点下载或按备份集下载,并单击页面左下角的下一步。
在下载实例与库表流程下方,单击页面左下角的下一步。
说明默认实例下载。
在下载目标与格式流程下方,配置下载目标。
重要推荐您选择下载目标为OSS,该方式更节省时间。
备份下载任务一旦开始,不可取消。
(推荐)OSS:PolarDB将备份数据直接写入对应OSS中。此处您需要配置目标OSS的Bucket Name和目录前缀。
说明如果您在此之前未授权过访问OSS权限,可按照控制台界面提示单击
。授权成功后,您可返回之前已编辑的高级下载配置界面,按如上操作填写信息即可。URL:PolarDB将提供您一个内网或外网的URL链接,您可以通过该链接下载备份数据。
说明选择URL方式时,服务会将转换的数据存储在DBS内置存储中,此过程不会收取存储费用。
使用URL下载涉及到数据打包,需要额外的等待时长,具体与备份集的备份逻辑大小有关。若备份逻辑大小较大(如超过1TB),建议您选择下载到OSS。
选择下载格式。
说明当前支持设置下载格式为CSV、SQL、Parquet、CSV-with-header。
阅读并勾选相关须知内容,单击完成。
页面自动跳转至备份下载页签。
若下载目标为OSS:任务状态从运行中转变为成功即表示下载成功,后续您可在OSS目标位置查看使用。
说明此方式仅将数据直接写入您的OSS中,您可在使用完成后按需自行删除。
若下载目标为URL:当任务状态转变为成功时,单击下载目标列下的生成链接,设置链接有效期并单击生成链接,即可通过生成的内网或外网链接下载备份数据。
重要您可在下载任务完成后三天内获取下载链接,链接有效期范围可设置为5分钟~1天,默认有效期为2小时。
完成的任务三天后将过期(下载链接将过期),任务过期后其对应数据会被清理(清理在任务过期后一段时间自动执行)。因此,如有业务需求,请重新发起下载任务获取新的下载链接。
请您及时保存下载链接,避免泄露。
通过高级下载功能下载的CSV文件、SQL文件和CSV-with-header文件可恢复到本地数据库。更多信息,请参见从备份文件恢复到自建MySQL数据库。
常见问题
Q:如何使用下载的数据备份和日志备份文件?
A:您可以将下载的备份文件恢复至自建MySQL数据库,具体请参见从备份文件恢复到自建MySQL数据库。
Q:使用下载的备份文件恢复到本地MySQL数据库时,执行出现报错
ERROR 1148 (42000): The used command is not allowed with this MySQL version
。A:在MySQL上执行查询脚本
show variables like 'local_infile';
。如果结果是OFF,执行以下语句开启文件导入:set global local_infile = 1;
。上述操作完成后,再次执行导入脚本即可成功。Q:为什么在控制台看到的备份大小与实际下载的备份文件大小不一致?
A:下载的备份文件经过压缩,一般小于控制台显示的备份大小,您可以恢复后查看数据是否完整。
Q:下载的备份文件是否支持直接恢复至其他PolarDB集群中?
A:当前不支持直接将下载的备份文件恢复至云上集群。您可以先将备份文件恢复至自建MySQL数据库中,再通过DTS将自建MySQL迁移至PolarDB MySQL版。
Q:正在进行中的备份下载任务能否取消掉?
A:备份下载任务一旦开始,不支持取消。
下载命令
本章节简单介绍常用的下载命令。
如果网络下载速度过低(小于每秒64 KB),可能会导致下载中断的情况,请下载时保持网络状况良好。
如果将备份文件下载到ossfs挂载盘,一般还需要调整ossfs的multipart_size参数,该参数默认支持最大100 GB文件,如果下载的备份文件大于100 GB将会下载失败。ossfs概述及参数配置详情请参见ossfs和ossfs挂载选项说明。
推荐使用本文提供的wget,curl等命令下载备份文件。如果使用其他第三方工具下载,可能会出现重复下载的情况(即实际下载数据量大于备份文件大小),且会因使用外网流量下载而产生超出备份文件大小部分的流量费用。
wget
命令:nohup wget -c -t 0 "备份文件下载地址" -O 下载的目标路径及文件名 > 下载输出日志到对应文件 &
示例:nohup wget -c -t 0 "https://example.aliyundoc.com/examplebackup.qp.xb" -O /backup/examplebackup.qp.xb > /tmp/download.log &
各命令代表含义如下:
-t 0:无限重试。
-c:支持断点续传。
-O:下载的目标路径及文件名。
nohup:避免因手误执行复制操作或者终端断开连接,把正在进行的下载中断,且当下载完毕后,之前的进程将会自动退出。
curl
命令:nohup curl -C - --retry 10 "备份文件下载地址" -o 自定义文件名 > 下载输出日志到对应文件 &
示例:nohup curl -C - --retry 10 "https://example.aliyundoc.com/examplebackup.qp.xb" -o backup.qp.xb > /tmp/download.log &
各命令代表含义如下:
--retry 10:任务失败时的重试次数,以上示例表示重试10次。
-C -:支持自动断点续传。
-o:下载的目标路径及文件名。
nohup:避免因手误执行复制操作或者终端断开连接,把正在进行的下载中断,且当下载完毕后,之前的进程将会自动退出。
相关API
API | 标题 | API概述 |
---|---|---|
DescribeDownloadBackupSetStorageInfo | 查看下载备份集的存储信息 | 查看下载备份集的存储信息。 |
DescribeDownloadSupport | 查询当前实例是否支持高级下载 | 查询当前实例是否支持高级下载。 |
CreateDownload | 创建下载任务 | 为RDS MySQL、RDS PostgreSQL、PolarDB MySQL版实例创建高级下载任务。 |
DescribeDownloadTask | 查询下载任务列表 | 查询RDS MySQL、RDS PostgreSQL、PolarDB MySQL版实例的高级下载任务列表。 |