冷数据归档常见问题

本文汇总了PolarDB冷数据归档相关的常见问题。

出现"[Data Lifecycle Management] DLM storage engine is not support. The value of polar_dlm_storage_mode is OFF."报错,如何处理?

您需要在PolarDB控制台上开启冷数据归档功能。详情请参见开启冷数据归档

为什么PolarDB控制台导航栏中没有冷数据归档这个菜单?

申请开启冷数据归档功能成功后,会有一定的延迟,等待几分钟刷新页面后即可出现冷数据归档菜单。

冷数据文件的格式是什么?

目前支持CSV、IBD和ORC格式。

如何判断当前表或分区是否归档成功?

归档完成后,您可以通过以下两种方式来查看表或分区是否归档成功:

  • 执行SHOW CREATE TABLE table_name;命令查看表结构信息,以此来确认表或者分区是否归档成功。

    • 普通表:回显信息中显示STORAGE OSS或CONNECTION='default_oss_server',则表示当前数据归档成功。

    • 分区表:分区表中的分区显示ENGINE=CSV/ORC,则表示当前数据归档成功。

  • 在控制台上查看是否归档成功。

    登录PolarDB控制台在目标集群的配置与管理 > 冷数据归档路径下,查看是否存在对应的表名,若存在,则说明当前数据已经归档至OSS。

如何下载归档后的冷数据?

目前暂不支持下载归档后的冷数据,如果您有下载需求,请前往配额中心,根据配额IDpolardb_mysql_download_oss找到配额名称,在对应的操作列单击申请下载归档后的冷数据。

如何查看归档后的冷数据大小?

您可以在控制台查看归档后的冷数据大小,或者直接在集群上查询对应的冷数据表。具体操作请参见查看冷数据归档信息

如何查询归档后的冷数据?

对普通表和分区表执行冷数据归档操作后,您可以通过以下方法查询归档后的冷数据:

  • 普通表:执行冷数据归档后,查询冷数据的方法和查询热数据的方法一致,不需要修改访问方式。

  • 分区表:执行冷数据归档后,查询冷数据的操作方法请参见查询混合分区

如何修改对应的冷数据?

暂不支持直接修改已归档到OSS上的CSV或ORC格式的冷数据,您可以通过ALTER TABLE table_name ENGINE=InnoDB语法将OSS上的表数据导回至PolarStore,修改完成后,再通过ALTER TABLE t ENGINE = CSV STORAGE OSS;脚本将表数据归档至OSS。详情请参见将OSS数据导回至PolarStore对于归档为IBD格式的冷数据,与归档前的修改操作无差异,使用与冷数据归档前的SQL语句修改即可。

如何删除归档后的冷数据?

首先,你需要使用DROP TABLE删除归档表,然后再通过CALL dbms_oss.delete_table_file('database_name', 'table_name');来删除归档后的冷数据。

自动归档数据如何触发?

目前自动归档数据通过event的方式触发,详情请参见冷热数据分离管理

自动归档数据有日志吗?

自动归档数据的日志记录在mysql.dlm_progress表中,您可以使用有mysql库权限的账号查看。详情请参见mysql.dlm_progress表

如何查看当前自动归档数据的策略?

自动归档数据的策略记录在mysql.dlm_policies表中,您可以使用有mysql库权限的账号查看。详情请参见mysql.dlm_policies表

如何把数据归档到自己的OSS引擎上?

目前暂不支持将数据归档至自己的OSS引擎中,您可以使用select into ossoutfile将数据导出至OSS引擎。详情请参见将本地表串行导出至OSS引擎

冷数据归档之后,原表依然存在于数据库中,是否需要执行手动删除操作,以节约存储空间?

冷数据归档后,PolarDB仅存储该表的元数据信息,实际的数据信息已经存储在OSS上,对您的存储空间不会造成影响。

出现OSS error: error message: The OSS Access Key Id you provided does not exist in our records. 报错,如何处理?

OSS error: 开头的报错均为OSS侧的报错信息,您可以查看OSS错误码了解具体的报错原因。以上报错的错误原因和解决方案如下:

  • 错误原因:临时访问凭证已过期,过期后自动失效。

  • 解决方案:请使用临时访问密钥(AccessKeyId和AccessKeySecret)向App服务器申请新的临时访问凭证。具体操作请参见获取临时访问凭证

执行冷数据归档操作后,为什么在控制台上看不到归档的表信息?

如果您归档的表是空表,归档成功后不会在OSS上生成CSV文件,在控制台上也看不到对应的表信息。

对归档至OSS的表执行rename操作,需要多长时间?

对归档至OSS的表执行rename操作会修改OSS上的文件信息,速度大约为100MB/s,您可以根据数据总量来估算时长。

出现ERROR 8185 (HY000): Change partition not support archive to engine CSV报错,如何处理?

将分区表中的分区归档至OSS的功能目前处于灰度阶段。如需使用,请前往配额中心,根据配额IDpolardb_mysql_hybrid_partition找到配额名称,在对应的操作列单击申请来开通该功能。

归档后的冷数据的数据量相比原表是变大还是变小?

归档后的冷数据的数据格式发生变化,会导致占用的空间容量发生变化。具体变化如下:

  • 如果原表位于InnoDB引擎,归档后的数据的数据量可能会变小。

  • 如果原表位于X-Engine引擎,归档后的数据的数据量可能会变大。

归档为CSV格式的数据的数据量可能会比归档为ORC格式的数据的数据量更大。

为什么归档后的冷数据及文件在主账号下面的OSS上看不到?

PolarDB的冷数据存储在系统默认的OSS上,不在客户的OSS里,所以客户无法看到。目前只支持在PolarDB控制台上查看归档后的冷数据和文件。

存储过程中涉及到冷存表,报错“Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.”是什么原因?

如上报错是因为CSV或ORC格式的冷存表不支持事务。如果存储过程中涉及到冷存表,即使没有实际的写入操作,也是不被允许的。您可以将存储引擎修改为X-Engine,既可以降低存储成本,又同时支持事务。