文档

RDS MySQL数据归档至对象存储OSS

更新时间:

RDS MySQL实例数据量较大时,存储成本会随之增高。业务数据通常分为冷数据和热数据,将对象存储(OSS)作为归档冷数据的存储介质,能够大幅降低用户的存储成本。

功能简介

在开启RDS MySQL通用云盘的数据归档OSS功能后,用户可通过执行下面的DDL语句实现数据在ESSD和OSS之间的转换。通过数据归档OSS功能,用户能够将低频访问、数据量大的表转储至OSS,并通过原生InnoDB的访问方式去读取冷表数据。数据归档DDL操作如下:

  1. 归档

    ALTER TABLE $table_name ENGINE_ATTRIBUTE='{"OSS":"Y"}';
  2. 取回

    ALTER TABLE $table_name ENGINE_ATTRIBUTE='{"OSS":"N"}';

RDS MySQL归档表保留了InnoDB完整的索引信息和事务性,具有快速位点查询的能力,同时具备缓存加速能力,能够有效提升冷表访问的效率。

功能优势

开启RDS MySQL通用云盘的数据归档OSS功能后,借助OSS海量、安全、低成本、高可靠的特性,用户能够在RDS MySQL上实现极低成本的归档数据存储,在具备InnoDB事务能力之上支持低频的数据访问,数据存储成本相较于ESSD PL1云盘下降80%,同时性能也得到提升,详情见IO加速

适用范围

  • 引擎:RDS MySQL

  • 产品类型:标准版、经济版

  • 存储类型:通用云盘

    说明
  • 版本:大于或等于MySQL 8.0 20240131

  • 产品系列:基础系列、高可用系列、集群系列

  • 暂不支持地域:韩国(首尔)、澳大利亚(悉尼)、英国(伦敦)

收费方式

公测期间免费

公测时间:2024年4月24日起,至2024年6月24日结束。

使用限制

  • 当前存储在OSS端的表仅支持SELECT、DROP TABLE、DROP DATABASE、RENAME操作。用户将数据转存至ESSD后,该表将支持完整的访问权限。

  • 当前OSS暂不支持分区表、包含全文索引的表、加密表、包含外键的表和压缩表(表压缩、页压缩)。

  • 受限于OSS的访问延迟,相比ESSD存储,冷表的数据访问会具有更大的延迟(10ms级别)。

  • RDS MySQL归档表的数据大小不能低于6M。

  • 开启数据归档后,会影响实例的备份及部分功能项,详情如下:

    不支持功能项

    说明

    秒级备份

    • 如需开启秒级备份,请关闭数据归档功能。请参见关闭数据归档功能

    • 如果实例需要开启数据归档功能,需提前确保秒级备份功能处于关闭状态。

    跨地域备份

    • 如需开启跨地域备份,请关闭数据归档功能。请参见关闭数据归档功能

    • 如果实例需要开启数据归档功能,需提前确保跨地域备份功能处于关闭状态。

    库表恢复

    选择按库恢复时,仅可恢复所选择库中的非数据归档的数据。

    备份集下载

    下载的备份集中仅包含非数据归档的数据。

    说明

    已开启通用云盘数据归档的实例,相较于未开启时,由于需要恢复数据归档的数据,备份/恢复的时长会增长。

注意事项

OSS和读取会占用一部分内存,同时访问OSS侧数据将占用一定比例的ECS的网络带宽资源,因此需要合理调整数据转换和数据访问的速度和频率。

开启和关闭数据归档功能

开启数据归档功能

您可以在实例购买页或实例详情页开启数据归档功能:

实例购买页

  1. 点此打开RDS实例创建页面

  2. 在选择存储类型时,选择通用云盘,页面会自动显示三层存储(缓存、数据、冷存)的配置栏,可在冷存配置项中打开数据归档功能的开关。

    image

实例详情页

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID(该实例符合数据归档OSS功能使用范围的实例)。

  2. 在实例详情页面,单击通用云盘开关设置,在冷存配置项中打开数据归档功能的开关。

    image

    重要

    数据归档OSS功能的开启过程并不是无损操作,会有30s左右的闪断。

关闭数据归档功能

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。

  2. 在实例详情页面,单击通用云盘开关设置,在冷存配置项中关闭数据归档功能的开关。

    image

    重要
    • 数据归档OSS功能的关闭过程并不是无损操作,会有30s左右的闪断。

    • 数据归档OSS功能关闭时要求OSS中没有归档表数据,如果OSS中有归档表数据则不允许关闭,需要先通过DDL将归档表转为在线表或者将归档表DROP掉,再关闭数据归档OSS功能。

查看归档数据

  1. 通过控制台查看:

    1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID(该实例符合数据归档OSS功能使用范围的实例)。

    2. 在左侧导航栏,单击冷存管理,打开归档层设置,可查看已开启数据归档的数据库。

      image

  2. 通过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

  • 该参数为内存中缓存的归档数据控制块数量。

  • 数据归档至OSS端时会将ESSD中的表切分为若干个数据文件块上传,每个数据文件块对应的表空间、数据范围等信息保存在归档数据控制块中。控制块保存在内存中,用于快速定位归档数据请求的数据位点,并通过LRU算法进行缓存控制。

innodb_oss_prefetch

ON

  • 该参数为归档数据预取开关。

  • 当开关开启时,在满足线性预取或随机预取的条件下,OSS将直接缓存整个归档数据文件块到缓存池中,以减少访问OSS的频次,提高访问效率。

innodb_oss_prefetch_linear_pct_threshold

10%

  • 该参数为归档数据线性预取阈值。

  • 当归档数据块中顺序读取的page数达到了阈值,OSS将直接缓存整个归档数据文件块到缓存池中。

innodb_oss_prefetch_random_pct_threshold

30%

  • 该参数为归档数据随机预取阈值。

  • 当归档数据块中随机读取的page数达到了阈值,OSS将直接缓存整个归档数据文件块到缓存池中。

innodb_oss_prefetch_task_limit

32

  • 该参数为预取缓存任务上限。

  • 在归档数据文件块完全缓存到缓存池前,需要额外的内存来保存归档数据文件块的内容。增大该参数可能会带来更大的内存消耗。

常见问题

Q:MySQL执行ALTER DDL报错[OSS] Size of tables is less than 6291456,是什么原因?

A:MySQL归档表的数据大小不能低于6M。

  • 本页导读 (1)
文档反馈