pgpool_recovery
recovery functions for pgpool-II for V4.3
Overview
| Package | Version | Category | License | Language |
|---|---|---|---|---|
pgpool | 4.7.1 | ADMIN | PostgreSQL | C |
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 5900 | pgpool_adm | No | No | No | Yes | No | No | - |
| 5910 | pgpool_recovery | No | No | No | Yes | No | No | - |
| 5920 | pgpool_regclass | No | No | No | Yes | No | No | - |
| Related | pgautofailover pglogical pg_failover_slots repmgr pg_repack pg_rewrite |
|---|
Version
| Type | Repo | Version | PG Ver | Package | Deps |
|---|---|---|---|---|---|
| EXT | PGDG | 4.7.1 | 1817161514 | pgpool | - |
| RPM | PGDG | 4.7.1 | 1817161514 | pgpool-II-pg$v-extensions | - |
| DEB | PGDG | 4.7.1 | 1817161514 | postgresql-$v-pgpool2 | - |
| OS / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
| el8.x86_64 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 |
| el8.aarch64 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 |
| el9.x86_64 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 |
| el9.aarch64 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 |
| el10.x86_64 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 |
| el10.aarch64 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 |
| d12.x86_64 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 |
| d12.aarch64 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 |
| d13.x86_64 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 |
| d13.aarch64 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 |
| u22.x86_64 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 |
| u22.aarch64 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 |
| u24.x86_64 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 |
| u24.aarch64 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 | PGDG 4.7.1 |
Install
You can install pgpool directly. First, make sure the PGDG repository is added and enabled:
pig repo add pgdg -u # Add PGDG repo and update cache
Install the extension using pig or apt/yum/dnf:
pig install pgpool; # Install for current active PG version
pig ext install -y pgpool -v 18 # PG 18
pig ext install -y pgpool -v 17 # PG 17
pig ext install -y pgpool -v 16 # PG 16
pig ext install -y pgpool -v 15 # PG 15
pig ext install -y pgpool -v 14 # PG 14
dnf install -y pgpool-II-pg18-extensions # PG 18
dnf install -y pgpool-II-pg17-extensions # PG 17
dnf install -y pgpool-II-pg16-extensions # PG 16
dnf install -y pgpool-II-pg15-extensions # PG 15
dnf install -y pgpool-II-pg14-extensions # PG 14
apt install -y postgresql-18-pgpool2 # PG 18
apt install -y postgresql-17-pgpool2 # PG 17
apt install -y postgresql-16-pgpool2 # PG 16
apt install -y postgresql-15-pgpool2 # PG 15
apt install -y postgresql-14-pgpool2 # PG 14
Create Extension:
CREATE EXTENSION pgpool_recovery;
Usage
The pgpool_recovery extension provides recovery-related functions used by Pgpool-II for online recovery of backend PostgreSQL nodes.
Functions
-- Trigger online recovery of a backend node
-- Executes the recovery script on the primary node
SELECT pgpool_recovery(
'recovery_1st_stage_script', -- script name in $PGDATA
'target_hostname', -- hostname of node to recover
'target_pgdata', -- data directory on target
'target_port' -- port number on target
);
-- Second stage recovery (optional, for streaming replication)
SELECT pgpool_remote_start(
'target_hostname', -- hostname of recovered node
'target_pgdata' -- data directory on target
);
-- Check if the target node is ready
SELECT pgpool_pgctl('status', 'target_pgdata');
How It Works
- Pgpool-II calls
pgpool_recovery()on the primary node, which executes a user-defined shell script to perform base backup and setup - The recovery script copies data to the target node and configures replication
pgpool_remote_start()starts the recovered PostgreSQL instance- Pgpool-II attaches the recovered node back into the pool
Recovery Scripts
The recovery script (e.g., recovery_1st_stage) must be placed in the primary node’s $PGDATA directory. It typically performs:
pg_basebackupto copy data to the target- Configuration of
primary_conninfofor streaming replication - Creation of
standby.signalon the target
The extension must be installed on all PostgreSQL backend nodes managed by Pgpool-II.
Feedback
Was this page helpful?
Thanks for the feedback! Please let us know how we can improve.
Sorry to hear that. Please let us know how we can improve.