本文汇总了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上生成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,既可以降低存储成本,又同时支持事务。