create_distributed_restore_point()

Creates a same-named marker record, for example restore point, in the write-ahead logs of all nodes in a multi-node TimescaleDB cluster.

The restore point can be used as a recovery target on each node, ensuring the entire multi-node cluster can be restored to a consistent state. The function returns the write-ahead log locations for all nodes where the marker record was written.

This function is similar to the PostgreSQL function pg_create_restore_point, but it has been modified to work with a distributed database.

This function can only be run on the access node, and requires superuser privileges.

Required arguments

NameDescription
nameThe restore point name

Returns

ColumnTypeDescription
node_nameNAMENode name, or NULL for access node
node_typeTEXTNode type name: access_node or data_node
restore_pointPG_LSNRestore point log sequence number

Errors

An error is given if:

  • The restore point name is more than 64 characters
  • A recovery is in progress
  • The current WAL level is not set to replica or logical
  • The current user is not a superuser
  • The current server is not the access node
  • TimescaleDB’s 2PC transactions are not enabled

Sample usage

This example create a restore point called pitr across three data nodes and the access node:

  1. SELECT * FROM create_distributed_restore_point('pitr');
  2. node_name | node_type | restore_point
  3. -----------+-------------+---------------
  4. | access_node | 0/3694A30
  5. dn1 | data_node | 0/3694A98
  6. dn2 | data_node | 0/3694B00
  7. dn3 | data_node | 0/3694B68
  8. (4 rows)