本节包含一些关于压缩常见问题故障排除的想法。
ERROR: temporary file size exceeds temp_file_limit
当您尝试压缩数据块时,特别是当数据块非常大时,您可能会收到此错误。压缩操作将文件写入新的压缩数据块表,该表写入临时内存中。可用临时内存的最大量由 temp_file_limit
参数确定。您可以通过调整 temp_file_limit
和 maintenance_work_mem
参数来解决此问题。
ERROR: cannot add column with constraints or defaults to a hypertable that has compression enabled
如果您尝试向已启用压缩的超级表添加带有约束或默认值的列,您可能会收到此错误。要添加列,您需要解压缩超级表中的数据,添加列,然后压缩数据。
ERROR: tuple decompression limit exceeded by operation
当从压缩的数据块插入、更新或删除元组时,可能需要解压缩元组。当您更新现有元组或具有在插入时需要验证的约束时,会发生这种情况。如果您碰巧通过单个命令触发大量解压缩,您最终可能会耗尽存储空间。因此,对单个命令可以解压缩的元组数量设置了限制。
可以增加限制或关闭限制(设置为 0),如下所示
-- set limit to a milion tuplesSET timescaledb.max_tuples_decompressed_per_dml_transaction TO 1000000;-- disable limit by setting to 0SET timescaledb.max_tuples_decompressed_per_dml_transaction TO 0;
ERROR: must be owner of hypertable "HYPERTABLE_NAME"
如果您尝试使用非特权用户帐户压缩或解压缩数据块,您可能会收到此错误。要压缩或解压缩数据块,您的用户帐户必须具有允许其在数据块上执行 CREATE INDEX
的权限。您可以使用以下命令在 psql
命令提示符下检查当前用户的权限
\dn+ <USERNAME>
要解决此问题,请使用以下命令授予您的用户帐户适当的权限
GRANT PRIVILEGESON TABLE <TABLE_NAME>TO <ROLE_TYPE>;
有关 GRANT
命令的更多信息,请参阅 PostgreSQL 文档。
ERROR: invalid attribute number -6 for _hyper_2_839_chunkCONTEXT: SQL function "hypertable_local_size" statement 1 PL/pgSQL function hypertable_detailed_size(regclass) line 26 at RETURN QUERY SQL function "hypertable_size" statement 1SQL state: XX000
如果您的超级表索引变得非常大,您可能会看到此错误。要解决此问题,请使用以下命令重新索引您的超级表
reindex table _timescaledb_internal._hyper_2_1523284_chunk
有关更多信息,请参阅超级表文档。
您的计划作业可能会因各种原因停止运行。在自托管的 TimescaleDB 上,您可以通过重启后台工作进程来修复此问题
在 Timescale 和 TimescaleDB 托管服务上,通过执行以下操作之一来重启后台工作进程
- 运行
SELECT timescaledb_pre_restore()
,然后运行SELECT timescaledb_post_restore()
。 - 关闭服务电源然后再打开。这可能会导致几分钟的停机时间,因为服务从备份还原并重放预写日志。
关键词
在此页面上发现问题?报告问题 或 在 GitHub 上编辑此页。