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
| Name | Description |
|---|---|
name |
The restore point name |
Returns
| Column | Type | Description |
|---|---|---|
node_name |
NAME | Node name, or NULL for access node |
node_type |
TEXT | Node type name: access_node or data_node |
restore_point |
PG_LSN | Restore point log sequence number |
Errors
An error is given if:
- The restore point
nameis more than 64 characters - A recovery is in progress
- The current WAL level is not set to
replicaorlogical - 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:
2. SELECT * FROM create_distributed_restore_point('pitr');
4. node_name | node_type | restore_point
6. -----------+-------------+---------------
8. | access_node | 0/3694A30
10. dn1 | data_node | 0/3694A98
12. dn2 | data_node | 0/3694B00
14. dn3 | data_node | 0/3694B68
16. (4 rows)
