RDS MySQL实例数据量较大时,存储成本会随之增高。业务数据通常分为冷数据和热数据,将对象存储(OSS)作为归档冷数据的存储介质,能够大幅降低用户的存储成本。
功能简介
在开启RDS MySQL通用云盘的数据归档OSS功能后,用户可通过执行下面的DDL语句实现数据在ESSD和OSS之间的转换。通过数据归档OSS功能,用户能够将低频访问、数据量大的表转储至OSS,并通过原生InnoDB的访问方式去读取冷表数据。数据归档DDL操作如下:
归档
ALTER TABLE $table_name ENGINE_ATTRIBUTE='{"OSS":"Y"}';
说明RDS MySQL支持对整表数据全部归档到OSS存储,执行归档后此表不再支持写入,仅支持SELECT、DROP TABLE、DROP DATABASE、RENAME操作。
取回
ALTER TABLE $table_name ENGINE_ATTRIBUTE='{"OSS":"N"}';
RDS MySQL归档表保留了InnoDB完整的索引信息和事务性,具有快速位点查询的能力,同时具备缓存加速能力,能够有效提升冷表访问的效率。
功能优势
开启RDS MySQL通用云盘的数据归档OSS功能后,借助OSS海量、安全、低成本、高可靠的特性,用户能够在RDS MySQL上实现极低成本的归档数据存储,在具备InnoDB事务能力之上支持低频的数据访问,数据存储成本相较于ESSD PL1云盘下降80%。
如果用户需要提升查询性能,可以开启IO加速,详情见通用云盘IO加速功能。
适用范围
引擎:RDS MySQL
产品类型:标准版、倚天版
存储类型:通用云盘
说明如果实例不是通用云盘,可进行ESSD云盘变更为通用云盘。
本地盘、SSD云盘暂不支持变更至通用云盘。
版本:大于或等于MySQL 8.0 20240131
产品系列:基础系列、高可用系列、集群系列
暂不支持地域:韩国(首尔)、澳大利亚(悉尼)关停中、英国(伦敦)
费用
公测期间免费
公测期间免费,时间自2024年6月20日起,至2024年7月25日结束。公测截止日期结束后,会根据具体的云盘OSS归档数据量进行收费。
收费说明
目前收费方式仅支持按量付费,具体产品收费地域及系列定价如下:
收费地域 | 基础系列定价 | 高可用系列定价 | 集群系列定价(根据节点数量计算) |
华东1(杭州)、华东2(上海)、华北1(青岛)、华北2(北京)、华北3(张家口)、华北5 (呼和浩特)、华北6(乌兰察布 )、华南1(深圳)、华南2(河源)、华南3(广州)、西南1(成都) | 0.000032 USD/GB/小时 | 0.000065 USD/GB/小时 | 0.000032 USD/GB/小时 |
中国(香港) | 0.000034 USD/GB/小时 | 0.000068 USD/GB/小时 | 0.000034 USD/GB/小时 |
菲律宾(马尼拉)、美国(硅谷) | 0.000058 USD/GB/小时 | 0.000117 USD/GB/小时 | 0.000058 USD/GB/小时 |
日本(东京)、新加坡、印度尼西亚(雅加达)、德国(法兰克福) | 0.000034 USD/GB/小时 | 0.000068 USD/GB/小时 | 0.000034 USD/GB/小时 |
马来西亚(吉隆坡) | 0.000057 USD/GB/小时 | 0.000114 USD/GB/小时 | 0.000057 USD/GB/小时 |
美国(弗吉尼亚) | 0.000054 USD/GB/小时 | 0.000108 USD/GB/小时 | 0.000054 USD/GB/小时 |
暂不支持地域:泰国(曼谷)、韩国(首尔)、澳大利亚(悉尼)关停中、英国(伦敦)、阿联酋(迪拜)。
使用限制
RDS MySQL实例计费方式为Serverless时,暂不支持数据归档功能。
当前存储在OSS端的表仅支持SELECT、DROP TABLE、DROP DATABASE、RENAME操作。用户将数据转存至ESSD后,该表将支持完整的访问权限。
当前OSS暂不支持分区表、包含全文索引的表、加密表、包含外键的表和压缩表(表压缩、页压缩)。
受限于OSS的访问延迟,相比ESSD存储,冷表的数据访问会具有更大的延迟(10ms级别)。
RDS MySQL归档表的数据大小不能低于6M。
归档DDL属于非instant算法执行,执行时间受表全量数据量大小影响,且DDL期间会持有MDL锁情况。
开启数据归档后,会影响实例的备份及部分功能项,详情如下:
不支持功能项
说明
秒级备份
如需开启秒级备份,请关闭数据归档功能。请参见关闭数据归档功能。
如果实例需要开启数据归档功能,需提前确保秒级备份功能处于关闭状态。
跨地域备份
如需开启跨地域备份,请关闭数据归档功能。请参见关闭数据归档功能。
如果实例需要开启数据归档功能,需提前确保跨地域备份功能处于关闭状态。
库表恢复
选择按库恢复时,仅可恢复所选择库中的非数据归档的数据。
备份集下载
下载的备份集中仅包含非数据归档的数据。
说明已开启通用云盘数据归档的实例,相较于未开启时,由于需要恢复数据归档的数据,备份/恢复的时长会增长。
注意事项
OSS和读取会占用一部分内存,因此需要合理调整数据转换和数据访问的速度和频率。
开启和关闭数据归档功能
开启数据归档功能
您可以在实例购买页或实例详情页开启数据归档功能:
实例购买页
在选择存储类型时,选择通用云盘,页面会自动显示三层存储(缓存、数据、冷存)的配置栏,可在冷存配置项中打开数据归档功能的开关。
实例详情页
访问RDS实例列表,在上方选择地域,然后单击目标实例ID(该实例符合数据归档OSS功能使用范围的实例)。
在实例详情页面,单击通用云盘开关设置,在冷存配置项中打开数据归档功能的开关。
重要数据归档OSS功能的开启过程并不是无损操作,会有30s左右的闪断。
关闭数据归档功能
访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
在实例详情页面,单击通用云盘开关设置,在冷存配置项中关闭数据归档功能的开关。
重要数据归档OSS功能的关闭过程并不是无损操作,会有30s左右的闪断。
数据归档OSS功能关闭时要求OSS中没有归档表数据,如果OSS中有归档表数据则不允许关闭,需要先通过DDL将归档表转为在线表或者将归档表DROP掉,再关闭数据归档OSS功能。
查看归档数据信息
通过控制台查看:
访问RDS实例列表,在上方选择地域,然后单击目标实例ID(该实例符合数据归档OSS功能使用范围的实例)。
在左侧导航栏,单击冷存管理,打开归档层设置,可查看已开启数据归档的数据库。
通过SQL命令查看:
SELECT t.NAME AS tablespace_name, SUBSTRING_INDEX(t.NAME, '/', 1) AS database_name, SUBSTRING_INDEX(t.NAME, '/', -1) AS table_name, oss.OSS_OBJECT_NUM * oss.OSS_OBJECT_SIZE AS SIZE_IN_OSS_BYTES FROM information_schema.innodb_tables AS t JOIN information_schema.innodb_tablespaces_oss AS oss ON t.space = oss.space;
相关参考
主要参数
RDS MySQL数据归档开放了以下参数,用户可结合实际使用情况修改相关参数。更多信息,请参见RDS MySQL 8.0开放参数一览表。
参数名称 | 默认值 | 说明 |
innodb_oss_ddl_threads | 16 |
|
innodb_oss_files_limit | 10240 |
|
innodb_oss_prefetch | ON |
|
innodb_oss_prefetch_linear_pct_threshold | 10% |
|
innodb_oss_prefetch_random_pct_threshold | 30% |
|
innodb_oss_prefetch_task_limit | 32 |
|
oss_max_connections | 64 |
|
常见问题
Q:MySQL执行ALTER DDL
报错[OSS] Size of tables is less than 6291456
,是什么原因?
A:MySQL归档表的数据大小不能低于6M。