为了降低数据存储成本,同时保证查询性能,PolarDB-X支持将查询频度低的数据(称为冷数据)归档到OSS对象存储中。本文介绍了冷数据归档的方法。
功能介绍
开启冷数据归档功能后,需要对AUTO模式数据库下的TTL表,创建关联的冷数据归档表。创建完成后,在PolarDB-X实例的归档执行时间(即可维护窗口时间)内,原TTL表中的过期数据会定期地迁移到归档表中,PolarDB-X会自动执行冷数据归档操作。
由于归档任务对CN节点的CPU、IO资源有较大的消耗,因此在归档执行时间窗口之外,未完成的归档任务将会被悬挂起来,确保不影响实例的正常业务。当归档执行时间结束时,未完成的归档任务会暂停执行,在第二天相同的时间窗口内,再继续执行。
说明 在实例的基本信息页,支持修改可维护窗口时间。
PolarDB-X支持对归档数据进行备份,当前不再单独收取备份费用。
注意事项
- 仅PolarDB-X的5.4.14-16590002及以上版本支持该功能。
- 仅AUTO模式下的TTL表支持该功能。
- 绑定冷数据归档表后,原TTL表的DDL操作不支持同步到归档表。
- 绑定归档表后,原TTL表的DDL操作会受到限制,可以先通过
unarchive table {source_table_name}
命令进行解绑,执行完DDL操作后重新绑定一张新的归档表。目前支持对原TTL表进行如下DDL操作:
- 增加索引,减少索引 (包括普通索引和全局索引);
- 清空表数据。
- 冷数据存储需要单独计费,仅支持按量付费模式,收费标准如下:
付费方式 存储价格 按量付费 0.000167元/GB/小时
开启数据归档功能
数据归档备份设置
创建冷数据归档表
本文以创建TTL表t_order和关联的归档表t_order_oss为例说明创建冷数据归档表的步骤。
关闭数据归档
相关命令
命令或视图 | 用途 |
---|---|
clear oss cache |
|
unarchive table {source_table_name} |
由于冷数据归档表不支持DDL命令,因此涉及表结构变更的操作时,需要使用unarchive语法解除源TTL表和归档表的绑定关系。 |
set OSS_BACKFILL_SPEED_LIMITATION=XX |
设置OSS数据归档的速度,取值范围为100000~300000,单位为:rows/s。 |
show filestorage |
展示文件数据源配置,包含OSS URI、读限速、写限速、读流量、写流量信息,每5秒更新一次。 |
show cache_stats |
展示缓存信息,包含缓存文件路径、文件数量、缓存空间大小、保留天数、命中和不命中次数统计。 |
show archive |
展示数据库内部的TTL绑定情况,包含TTL表和归档表信息。 |
show files from {table_name} |
展示归档表下,所有表文件信息(不含format文件和索引文件),包含拓扑信息、 文件内部行数、文件存储占用、创建时间、TSO时间。 |
check table {table_name} |
展示归档表内所有表文件的存在性。 |
information_schema.files | 展示归档表下各类文件的信息。主要包含:
示例如下: select logical_table_name, file_name, file_type, extent_size, table_rows, create_time
from information_schema.files where logical_table_name = {table_name}; |
information_schema.file_storage | 展示文件数据源配置信息,包含文件数据源读锁、写锁的持有情况。
示例如下: select URI, ENGINE, ROLE, READ_LOCK_COUNT, WRITE_LOCK_COUNT from information_schema.file_storage
where ENGINE = 'OSS'; |
information_schema.archive | 展示每一对TTL和归档表的归档情况,包含以下信息:
示例如下: select ARCHIVE_TABLE_NAME, LOCAL_PARTITION_TABLE_NAME, SCHEDULE_STATUS, LAST_FIRE_TIME,
LAST_SUCCESS_ARCHIVE_TIME, ARCHIVE_STATUS from information_schema.archive where ARCHIVE_TABLE_NAME
= {table_name}; |