冷数据归档常见问题

更新时间:2025-03-24 02:55:22

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

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

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

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

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

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

目前支持CSV、IBDORC格式。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

如何修改对应的冷数据?

暂不支持直接修改已归档到OSS上的CSVORC格式的冷数据,您可以通过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错误码了解具体的报错原因。以上报错的错误原因和解决方案如下:

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

  • 解决方案:请使用临时访问密钥(AccessKeyIdAccessKeySecret)向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.”是什么原因?

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

数据归档到OSS中执行恢复,报错“The last packet successfully received from the server was 15,287 milliseconds ago. The last packet sent successfully to the server was 15,287 milliseconds ago.”是什么原因?

如上报错是因为在操作恢复过程中PolarDB MySQL导致客户端执行时间超时。您可以适当调大集群的最小PCU规格,然后重新执行恢复任务。

PolarDB MySQL低版本如何开启冷数据归档?

您可以将PolarDB MySQL升级到符合要求的版本,您可点击版本管理进行查看并进行相关升级操作。

PolarDB MySQL归档为OSS冷存后数据容量是否变化?

PolarDB MySQL归档为OSS冷存后,表大小会发生一定的变化。

说明
  • 相比于无索引的InnoDB表,归档为冷数据后会进行数据压缩,最后归档产生的文件通常小于InnoDB本地表的大小。

  • 对于带有索引的InnoDB表,归档为冷数据后索引会被删除,所以归档后表的大小会进一步缩小。

  • 对于高压缩引擎(X-Engine)表,由于X-Engine在本地有很高的压缩率,归档为冷数据表后,冷数据容量相比于本地表来说会更大一些。

  • 目前支持两种格式,归档为CSVORC格式。对于以上两种格式来说,ORC冷数据表相比于CSV冷数据表有更好的压缩率,所以归档为ORC冷数据后,所占的OSS容量会更少一些。

  • 此外,归档至OSS冷存后,数据转存至OSS,之前PolarStore弹性内存池(EMP)存储的数据会同步删除,按照OSS存储的价格进行收费。但您仍可以通过访问当前表的方式查询冷数据。详细信息请参见冷数据归档

  • 本页导读 (1)
  • 出现"[Data Lifecycle Management] DLM storage engine is not support. The value of polar_dlm_storage_mode is OFF."报错,如何处理?
  • 为什么PolarDB控制台导航栏中没有冷数据归档这个菜单?
  • 冷数据文件的格式是什么?
  • 如何判断当前表或分区是否归档成功?
  • 如何下载归档后的冷数据?
  • 如何查看归档后的冷数据大小?
  • 如何查询归档后的冷数据?
  • 如何修改对应的冷数据?
  • 如何删除归档后的冷数据?
  • 自动归档数据如何触发?
  • 自动归档数据有日志吗?
  • 如何查看当前自动归档数据的策略?
  • 如何把数据归档到自己的OSS引擎上?
  • 冷数据归档之后,原表依然存在于数据库中,是否需要执行手动删除操作,以节约存储空间?
  • 出现OSS error: error message: The OSS Access Key Id you provided does not exist in our records. 报错,如何处理?
  • 执行冷数据归档操作后,为什么在控制台上看不到归档的表信息?
  • 对归档至OSS的表执行rename操作,需要多长时间?
  • 出现ERROR 8185 (HY000): Change partition not support archive to engine CSV报错,如何处理?
  • 归档后的冷数据的数据量相比原表是变大还是变小?
  • 为什么归档后的冷数据及文件在主账号下面的OSS上看不到?
  • 存储过程中涉及到冷存表,报错“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.”是什么原因?
  • 数据归档到OSS中执行恢复,报错“The last packet successfully received from the server was 15,287 milliseconds ago. The last packet sent successfully to the server was 15,287 milliseconds ago.”是什么原因?
  • PolarDB MySQL版低版本如何开启冷数据归档?
  • PolarDB MySQL版归档为OSS冷存后数据容量是否变化?