警告
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;BEGINFOR r IN SELECT hypertable_schema, hypertable_nameFROM timescaledb_information.hypertablesWHERE is_distributed ORDER BY 1, 2LOOPEXECUTE format('ANALYZE %I.%I', r.hypertable_schema, r.hypertable_name);END LOOP;END$$;SELECT add_job('distributed_hypertables_analyze', '12h');
如果您愿意,可以将本示例中的作业合并为一个维护作业。但是,分析分布式超表的频率应低于远程事务修复活动的频率。这是因为前者每次都可能分析大量远程块,如果调用过于频繁,可能会非常耗时。
关键词