云盘版本的RDS PostgreSQL实例数据表文件都存储在云盘(ESSD)中,当数据量较大时,可能会面临较高的存储成本。通常,RDS PostgreSQL实例的数据包含冷数据和热数据。通过数据归档功能,可以将对象存储(OSS)用作归档冷数据的存储介质,从而显著降低存储成本。
功能简介
RDS PostgreSQL实例利用表空间和外部文件系统来实现对OSS的访问,允许用户通过DDL完成数据在ESSD和OSS之间的转换。启用数据归档功能的RDS PostgreSQL实例会在数据目录之外增加一个冷存储目录/cold-data,并添加该目录对应的表空间rds_oss。rds_oss表空间中的数据存放在OSS中,pg_default表空间中的数据存放在ESSD中。
开启RDS PostgreSQL数据归档功能后,可通过执行以下DDL语句,实现数据在ESSD和OSS之间的转换(适用于普通表和分区表子表)。转换时,需要分别对表和索引数据进行处理。
-- 归档
ALTER TABLE $tableName SET tablespace rds_oss;
ALTER INDEX $indexName SET tablespace rds_oss;
-- 取回
ALTER TABLE $tableName SET tablespace pg_default;
ALTER INDEX $indexName SET tablespace pg_default;
当前RDS PostgreSQL数据归档仅支持只读查询。
功能优势
开启用RDS PostgreSQL数据归档功能后,利用OSS的海量、安全、低成本和高可靠特性,您可以在RDS PostgreSQL上实现极低成本、无限容量的归档数据存储,并支持低频数据访问。相较于ESSD PL1云盘,数据存储成本下降了80%。
数据归档到对象存储服务(OSS)后,若数据库实例的云盘出现大量空余空间,可考虑对云盘进行缩容,以降低存储成本。详情请参见云盘版RDS PostgreSQL实例存储空间缩容。
适用范围
引擎:RDS PostgreSQL
大版本:12或以上版本。
小版本:20240530或以上,如需升级内核小版本,请参见升级内核小版本。
说明当实例大版本为15时,20240229及之后的小版本均支持数据归档功能。
产品系列:基础系列、高可用系列。
产品类型:标准版、倚天版。
存储类型:通用云盘。
实例计费方式:包年包月、按量付费。
实例规格:CPU核数大于等于8核。
地域:目前不支持韩国(首尔)、阿联酋(迪拜)和英国(伦敦)。
使用限制
开启数据归档后,会影响实例的备份及部分功能:
不支持秒级备份。
不支持跨地域备份。
在进行库表恢复时,只能恢复所选数据库中未进行数据归档的数据。
在进行备份集下载时,所下载的备份集中仅包含尚未进行数据归档的数据。
说明已开启数据归档的实例,相较于未开启时,由于需要恢复数据归档的数据,备份/恢复的时长会增加。
表或索引数据转换到OSS存储之前,需要进行数据清理。OSS的存储性能与ESSD存在较大差距,导致OSS表空间的
autovacuum
效率较低。为了避免长时间的autovacuum
对整个实例的性能造成负面影响,在设计上要求转入的归档表的所有页面(page)都应设置为all_visible和all_frozen,以避免在归档表空间发生autovacuum
。如果需要清理归档数据,建议使用如下方式:VACUUM (FREEZE) table_name;
可以通过增加
VERBOSE
选项来打印清理过程的详细信息,有助于定位原因,从而实现完全的清理。当实例中存在长事务以及复制槽时,可能需要保留部分事务ID,无法做到完全清理。
不同版本的RDS PostgreSQL实例具有不同的优化策略,因此可以通过打印详细信息进行分析,明确指定参数以实现完全的清理。例如:
VACUUM (FREEZE, INDEX_CLEANUP on) table_name;
RDS PostgreSQL 14及以上,建议设置
PROCESS_TOAST
,允许进行TOAST表的清理操作。RDS PostgreSQL 16及以上,建议设置
PROCESS_MAIN
,允许进行主表的清理操作。
VACUUM的更多信息请参见VACUUM。
注意事项
进行数据归档操作前需要对目标表进行VACUUM操作。
受限于OSS的访问延迟,相比于ESSD存储,冷数据表的数据访问会具有更大的延迟(10ms级别)。
说明如果归档到OSS的表访问速度很快,这可能是由于数据库Buffer Pool或操作系统Page Cache中存在缓存所致。
OSS的读取会占用一部分内存,同时访问OSS侧数据将占用一定比例的ECS的网络带宽资源,因此需要合理调整数据转换和数据访问的速度和频率。
计费
公测期间免费
公测期间免费,时间自2024年06月20日起,至2024年07月25日结束。公测截止日期结束后,会根据具体的云盘OSS归档数据量进行收费。
收费说明
目前收费方式仅支持按量付费,具体产品收费地域及系列定价如下:
收费地域 | 基础系列定价 | 高可用系列定价 | 集群系列定价(根据节点数量计算) |
华东1(杭州)、华东2(上海)、华北1(青岛)、华北2(北京)、华北3(张家口)、华北5 (呼和浩特)、华北6(乌兰察布 )、华南1(深圳)、华南2(河源)、华南3(广州)、西南1(成都) | 0.000032 美元/GB/小时 | 0.000065 美元/GB/小时 | 0.000032 美元/GB/小时 |
中国(香港)、日本(东京)、新加坡、印度尼西亚(雅加达)、德国(法兰克福) | 0.000034 美元/GB/小时 | 0.000068 美元/GB/小时 | 0.000034 美元/GB/小时 |
菲律宾(马尼拉)、美国(硅谷) | 0.000058 美元/GB/小时 | 0.000117 美元/GB/小时 | 0.000058 美元/GB/小时 |
马来西亚(吉隆坡) | 0.000057 美元/GB/小时 | 0.000114 美元/GB/小时 | 0.000057 美元/GB/小时 |
美国(弗吉尼亚) | 0.000054 美元/GB/小时 | 0.000108 美元/GB/小时 | 0.000054 美元/GB/小时 |
暂不支持地域:泰国(曼谷)、韩国(首尔)、英国(伦敦)、阿联酋(迪拜)。
开启和关闭数据归档功能
开启数据归档功能
新购实例时,在实例购买页开启数据归档功能。
已有的存储类型为通用云盘的实例,可以在实例详情页开启数据归档功能。
实例购买页
在选择存储类型时,选择通用云盘,页面会自动显示三层存储(缓存、数据、冷存)的配置栏,可在冷存配置项中打开数据归档功能的开关。
实例详情页
访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
在实例详情页面,在基础信息区域单击通用云盘开关设置,在冷存配置项中打开数据归档功能的开关。
重要开启数据归档OSS功能会出现约30s左右的闪断,请在业务低峰期操作并确保应用程序具有自动重连机制。
关闭数据归档功能
访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
在实例详情页面,在基础信息区域单击通用云盘开关设置,在冷存配置项中关闭数据归档功能的开关。
重要数据归档OSS功能的关闭过程并不是无损操作,会有30s左右的闪断。
数据归档OSS功能关闭时要求OSS中没有归档表数据,如果OSS中有归档表数据则不允许关闭,需要先通过DDL将归档表转为在线表或者将归档表DROP掉,再关闭数据归档OSS功能。
查看归档数据
访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
在左侧导航栏,单击冷存管理。
在归档层设置页面,查看已归档的数据。