PostgreSQL 17 Replica Management
Manage the read replica of Quantierra's PostgreSQL 17 database running on hal9000.
Quick Reference
| Task | Script |
|---|---|
| Quick status | pg17-status |
| Full status (service + replication) | pg17-full-status |
| Replication lag | pg17-lag |
| Run query | pg17-query "SELECT ..." [database] |
| List databases | pg17-databases |
| List tables | pg17-tables <database> |
| View logs | pg17-logs [lines] |
| WAL archive status | pg17-wal-status |
| Active connections | pg17-connections |
| ZFS snapshots | pg17-snapshots |
Usage
Always use the helper scripts located in .claude/skills/pg-replica/scripts/. These scripts handle SSH connection, proper port (5432), and host (localhost) configuration automatically.
# Check replica status .claude/skills/pg-replica/scripts/pg17-status # Run a query .claude/skills/pg-replica/scripts/pg17-query "SELECT count(*) FROM users" quantierra # View last 100 lines of logs .claude/skills/pg-replica/scripts/pg17-logs 100
Remote Commands (on hal9000)
For operations not covered by scripts, SSH to hal9000 and use these system commands:
| Command | Description |
|---|---|
sudo pg17-wal-sync | Trigger WAL sync from S3 |
sudo pg17-create-snapshot | Create ZFS snapshot |
sudo pg17-rollback | Rollback to latest snapshot |
sudo pg17-activate | Promote to writable (stops replication) |
sudo systemctl <action> postgresql-replica | Service control (start/stop/restart) |
Switching Between Standby and Read/Write Modes
The systemd service always starts in standby mode (it creates standby.signal on startup). To switch modes, you must manage postgres manually.
Promote to Read/Write (stop replication)
# Stop the systemd service ssh hal9000 "sudo systemctl stop postgresql-replica" # Remove standby.signal and start postgres manually ssh hal9000 "sudo rm -f /storage-fast/pg_base/standby.signal && sudo -u postgres /run/current-system/sw/bin/postgres -D /storage-fast/pg_base &"
Return to Standby Mode
# Stop the manual postgres process ssh hal9000 "sudo pkill -u postgres postgres" # Restart the systemd service (will recreate standby.signal) ssh hal9000 "sudo systemctl start postgresql-replica"
Note: The pg17-activate script attempts to promote while the service is running, but this conflicts with the pre-start script. For reliable mode switching, use the manual steps above.
Architecture
See architecture.md for detailed infrastructure information.