警告

多节点支持已停止.

TimescaleDB v2.13 是最后一个包含对 PostgreSQL 13、14 和 15 版本多节点支持的版本。

此过程用于在访问节点上跨分布式数据库的数据节点执行 SQL 命令。例如,一个用例是在分布式数据库中创建所需的角色和权限。

该过程可以以事务方式运行分布式命令,因此命令要么在所有地方执行,要么在任何地方都不执行。但是,并非所有 SQL 命令都可以在事务中运行。这可以通过参数 transactional 进行切换。请注意,如果执行不是事务性的,则数据节点上的故障需要手动处理任何引入的不一致。

请注意,该命令不会在访问节点本身上执行,并且无法在一个调用中链接多个命令。

重要

您不能将 distributed_exec 与某些 SQL 命令一起运行。例如,ALTER EXTENSION 不起作用,因为它不能在 TimescaleDB 扩展已加载后调用。

名称类型描述
queryTEXT要在数据节点上执行的命令。
名称类型描述
node_listARRAY一个数据节点数组,命令应在此处执行。如果未指定,则默认为所有数据节点。
transactionalBOOLEAN允许指定语句的执行是否应为事务性的。默认为 TRUE。

在分布式数据库的所有数据节点上创建角色 testrole

CALL distributed_exec($$ CREATE USER testrole WITH LOGIN $$);

在两个指定数据节点上创建角色 testrole

CALL distributed_exec($$ CREATE USER testrole WITH LOGIN $$, node_list => '{ "dn1", "dn2" }');

在所有数据节点上创建表 example

CALL distributed_exec($$ CREATE TABLE example (ts TIMESTAMPTZ, value INTEGER) $$);

在数据节点上创建新数据库 dist_database,这需要将 transactional 设置为 FALSE

CALL distributed_exec('CREATE DATABASE dist_database', transactional => FALSE);

关键词

此页面有问题?报告问题 或 在 GitHub 上编辑此页面 在 GitHub。