CT 300–302 — PostgreSQL 16 HA Cluster + CT 303 pgAdmin
Cluster-Übersicht
| VMID |
Hostname |
IP |
Rolle |
Status |
| 300 |
sql1 |
192.168.0.220 |
Leader (Primary) |
running |
| 301 |
sql2 |
192.168.0.221 |
Replica (Streaming) |
running |
| 302 |
sql3 |
192.168.0.222 |
Replica (Streaming) |
running |
| 303 |
pgadmin |
192.168.0.223 |
pgAdmin4 Web |
running |
CT 300 — sql1 (Leader)
| Eigenschaft |
Wert |
| VMID |
300 |
| IP |
192.168.0.220/24 |
| OS |
Ubuntu 24.04 LTS |
| CPU |
2 vCores |
| RAM |
2048 MB |
| Disk |
osdisk:300/vm-300-disk-0.raw, 20 GB |
| Autostart |
nein |
CT 301 — sql2 (Replica)
| Eigenschaft |
Wert |
| VMID |
301 |
| IP |
192.168.0.221/24 |
| OS |
Ubuntu 24.04 LTS |
| CPU |
2 vCores |
| RAM |
2048 MB |
| Disk |
osdisk:301/vm-301-disk-0.raw, 20 GB |
| Autostart |
nein |
CT 302 — sql3 (Replica)
| Eigenschaft |
Wert |
| VMID |
302 |
| IP |
192.168.0.222/24 |
| OS |
Ubuntu 24.04 LTS |
| CPU |
2 vCores |
| RAM |
2048 MB |
| Disk |
osdisk:302/vm-302-disk-0.raw, 20 GB |
| Autostart |
nein |
Dienste (alle DB-Nodes)
| Dienst |
Port |
Beschreibung |
| postgresql 16 |
5432 |
Datenbank |
| patroni |
8008 |
HA-Manager REST API |
| etcd |
2379 (client), 2380 (peer) |
Distributed Key-Value Store (DCS) |
| apache2 |
80 |
Nur sql1: pgAdmin4 Webserver |
Patroni Konfiguration
- Scope: pg-cluster
- Namespace: /db/
- Datenverzeichnis:
/var/lib/postgresql/16/patroni
- Config:
/etc/patroni/patroni.yml
- Systemd:
patroni.service
etcd Konfiguration
- Cluster-Token: pg-etcd-cluster
- Config:
/etc/default/etcd
- Datenverzeichnis:
/var/lib/etcd/default
Datenbanken & Benutzer
| Datenbank |
Eigentümer |
| nicolay |
nicolay |
| testdb |
nicolay |
| postgres |
postgres |
| Benutzer |
Passwort |
Rechte |
| nicolay |
N17b011975 |
Login |
| postgres |
postgres_pass |
Superuser |
| replicator |
replicator_pass |
Replikation |
| admin |
admin |
createdb, createrole |
Zugriff
Manueller Failover
Verhalten bei Ausfall
| Szenario |
Verhalten |
| sql1 fällt aus |
Patroni wählt sql2 oder sql3 als neuen Leader (30–60s) |
| sql2 oder sql3 fällt aus |
Kein Ausfall, Leader läuft weiter |
| 2 Nodes fallen aus |
Kein Quorum → Cluster read-only |
CT 303 — pgadmin
| Eigenschaft |
Wert |
| VMID |
303 |
| Hostname |
pgadmin |
| IP |
192.168.0.223/24 |
| OS |
Ubuntu 24.04 LTS |
| CPU |
2 vCores |
| RAM |
1024 MB |
| Disk |
osdisk:303/vm-303-disk-0.raw, 10 GB |
| Autostart |
nein |
pgAdmin4 Zugriff
Hinweis Redundanz
pgAdmin läuft auf einem separaten LXC, unabhängig von den Datenbank-Nodes. Bei Ausfall von sql1 bleibt pgAdmin erreichbar. Die Server-Verbindungen in pgAdmin zeigen direkt auf die jeweiligen Node-IPs.
Install-Script
Vollständiges Installations-Script für den kompletten Cluster:
/home/claude/postgres-ha-install.sh auf pve-braetter
Gitea: (kein separates Repo — im aqualog-Repo enthalten)