警告

多节点支持已停用.

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 上。