警告

多节点支持已弃用.

TimescaleDB v2.13 是最后一个为 PostgreSQL 版本 13、14 和 15 提供多节点支持的版本。

为了有效维护分布式多节点设置,需要执行各种维护活动。如果您愿意,可以使用数据库外部的 cron 或其他调度系统,定期运行以下维护作业。还要确保为每个包含分布式超表的数据库单独调度作业。

分布式事务跨多个数据节点运行,如果数据节点重启或遇到临时问题,则可能保持未完成状态。访问节点保留分布式事务的日志,以便尚未完成分布式事务部分的节点可以在稍后可用时完成它。此事务日志需要定期清理,以删除已完成的事务,并完成尚未完成的事务。我们强烈建议您配置访问节点运行维护作业,定期清理任何未完成的分布式事务。

自定义维护作业可以作为用户定义的动作运行。例如

在分布式超表上,需要保持表统计信息的更新。这使您可以有效地规划查询。由于分布式超表的性质,您不能使用 auto-vacuum 工具来收集统计信息。相反,您可以定期使用维护作业显式 ANALYZE 分布式超表,就像这样

CREATE OR REPLACE PROCEDURE distributed_hypertables_analyze(job_id int, config jsonb)
LANGUAGE plpgsql AS
$$
DECLARE r record;
BEGIN
FOR r IN SELECT hypertable_schema, hypertable_name
FROM timescaledb_information.hypertables
WHERE is_distributed ORDER BY 1, 2
LOOP
EXECUTE format('ANALYZE %I.%I', r.hypertable_schema, r.hypertable_name);
END LOOP;
END
$$;
SELECT add_job('distributed_hypertables_analyze', '12h');

如果您愿意,可以将此示例中的作业合并为单个维护作业。但是,分析分布式超表的频率应低于远程事务修复活动。这是因为前者每次都可能分析大量远程块,如果调用过于频繁,可能会很昂贵。

关键词

在此页面上发现问题?报告问题 或 在 GitHub 上编辑此页面