datenbank:ha-postgresql-cluster
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| datenbank:ha-postgresql-cluster [2026-05-13 21:22:40] – manfred | datenbank:ha-postgresql-cluster [2026-05-29 10:09:43] (aktuell) – [Tests] manfred | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== HA-PostgreSQL-Cluster ====== | ====== HA-PostgreSQL-Cluster ====== | ||
| + | |||
| + | siehe auch: **[[:: | ||
| Zeile 6: | Zeile 8: | ||
| //Es soll ein hochverfügbarer PostgreSQL‑Cluster mit Patroni, EtcE, HAProxy und KeepaliveD auf drei Systemen installiert werden.// | //Es soll ein hochverfügbarer PostgreSQL‑Cluster mit Patroni, EtcE, HAProxy und KeepaliveD auf drei Systemen installiert werden.// | ||
| - | Wichtige Unterschiede zwischen diesem HA-PostgreSQL-Cluster mit 3 Systemen, gegenüber einem HA-PostgreSQL-Cluster mit 5 Systemen sind, dass hier alle Pakete auf allen 3 Systemen installiert werden müssen. Und weil PostgreSQL und HAProxy auf dem selben Host laufen, muß der Datenbank-Zugriff über den Cluster-Zugang (HAProxy) auf einen anderen Port laufen. In diesem Fall laufen die PostgreSQL-Instanzen | + | Wichtige Unterschiede zwischen diesem HA-PostgreSQL-Cluster mit 3 Systemen, gegenüber einem HA-PostgreSQL-Cluster mit 5 Systemen sind, dass hier alle Pakete auf allen 3 Systemen installiert werden müssen. Und weil PostgreSQL und HAProxy auf dem selben Host laufen, muß der Datenbank-Zugriff über den Cluster-Zugang (HAProxy) auf einen anderen Port laufen. |
| - | Weiterhin gibt es in diesem Aufbau noch einen schreibgeschützten Port ('' | + | In diesem Fall laufen die PostgreSQL-Instanzen |
| In einem HA-PostgreSQL-Cluster mit 5 Systemen laufen EtcE, HAProxy und KeepaliveD auf 2 separate Systeme und dann können PostgreSQL und HAProxy auf dem gleichen Port laufen. | In einem HA-PostgreSQL-Cluster mit 5 Systemen laufen EtcE, HAProxy und KeepaliveD auf 2 separate Systeme und dann können PostgreSQL und HAProxy auf dem gleichen Port laufen. | ||
| Zeile 23: | Zeile 25: | ||
| ==== PG-DataDir mit ZFS ==== | ==== PG-DataDir mit ZFS ==== | ||
| - | |||
| - | siehe auch: [[:: | ||
| <code bash DataDir im RAID-1> | <code bash DataDir im RAID-1> | ||
| Zeile 75: | Zeile 75: | ||
| ==== Csync2 ==== | ==== Csync2 ==== | ||
| - | [[:: | + | [[:: |
| <file bash / | <file bash / | ||
| Zeile 194: | Zeile 194: | ||
| <code text Cluster testen> | <code text Cluster testen> | ||
| - | > etcdctl --endpoints=" | + | > etcdctl --endpoints=" |
| - | http://fra2a-medos04:2379 is healthy: successfully committed proposal: took = 3.710884ms | + | http://pg-knoten-01:2379 is healthy: successfully committed proposal: took = 3.710884ms |
| - | http://fra2b-medos04:2379 is healthy: successfully committed proposal: took = 5.53501ms | + | http://pg-knoten-02:2379 is healthy: successfully committed proposal: took = 5.53501ms |
| - | http://fra2c-medos04:2379 is healthy: successfully committed proposal: took = 7.426682ms | + | http://pg-knoten-03:2379 is healthy: successfully committed proposal: took = 7.426682ms |
| </ | </ | ||
| Zeile 203: | Zeile 203: | ||
| === Hinweis === | === Hinweis === | ||
| - | **//Solange der Cluster unhealthy ist, sind Verwaltungsoperationen wie etcdctl member add absichtlich verboten.// | + | **//Solange der Cluster unhealthy ist, sind Verwaltungsoperationen wie '' |
| <code bash> | <code bash> | ||
| Zeile 300: | Zeile 300: | ||
| http-check expect status 200 | http-check expect status 200 | ||
| default-server inter 3s fall 3 rise 2 on-marked-down shutdown-sessions | default-server inter 3s fall 3 rise 2 on-marked-down shutdown-sessions | ||
| - | server pg1 fra2a-medos04:5432 check port 8008 maxconn 100 | + | server pg1 pg-knoten-01:5432 check port 8008 maxconn 100 |
| - | server pg2 fra2b-medos04:5432 check port 8008 maxconn 100 | + | server pg2 pg-knoten-02:5432 check port 8008 maxconn 100 |
| - | server pg3 fra2c-medos04:5432 check port 8008 maxconn 100 | + | server pg3 pg-knoten-03:5432 check port 8008 maxconn 100 |
| # ============================ | # ============================ | ||
| Zeile 333: | Zeile 333: | ||
| http-check expect status 200 | http-check expect status 200 | ||
| default-server inter 3s fall 3 rise 2 | default-server inter 3s fall 3 rise 2 | ||
| - | server pg1 fra2a-medos04:5432 check port 8008 maxconn 100 | + | server pg1 pg-knoten-01:5432 check port 8008 maxconn 100 |
| - | server pg2 fra2b-medos04:5432 check port 8008 maxconn 100 | + | server pg2 pg-knoten-02:5432 check port 8008 maxconn 100 |
| - | server pg3 fra2c-medos04:5432 check port 8008 maxconn 100 | + | server pg3 pg-knoten-03:5432 check port 8008 maxconn 100 |
| </ | </ | ||
| Zeile 371: | Zeile 371: | ||
| Content-Type: | Content-Type: | ||
| - | {" | + | {" |
| Zeile 381: | Zeile 381: | ||
| Content-Type: | Content-Type: | ||
| - | {" | + | {" |
| Zeile 392: | Zeile 392: | ||
| # HELP patroni_version Patroni semver without periods. | # HELP patroni_version Patroni semver without periods. | ||
| # TYPE patroni_version gauge | # TYPE patroni_version gauge | ||
| - | patroni_version{scope=" | + | patroni_version{scope=" |
| ... | ... | ||
| Zeile 402: | Zeile 402: | ||
| Content-Type: | Content-Type: | ||
| - | {" | + | {" |
| Zeile 420: | Zeile 420: | ||
| ==== KeepaliveD ==== | ==== KeepaliveD ==== | ||
| - | |||
| - | // | ||
| <file bash Knoten 1 – / | <file bash Knoten 1 – / | ||
| Zeile 460: | Zeile 458: | ||
| } | } | ||
| - | mcast_src_ip 10.145.43.31 | + | |
| - | # | + | |
| - | # | + | unicast_peer { |
| - | # # | + | # |
| - | # | + | 10.145.43.32 |
| - | # | + | 10.145.43.33 |
| - | # } | + | } |
| } | } | ||
| </ | </ | ||
| Zeile 508: | Zeile 506: | ||
| } | } | ||
| - | mcast_src_ip 10.145.43.32 | + | |
| - | # | + | |
| - | # | + | unicast_peer { |
| - | # | + | 10.145.43.31 |
| - | # # | + | # |
| - | # | + | 10.145.43.33 |
| - | # } | + | } |
| } | } | ||
| </ | </ | ||
| Zeile 556: | Zeile 554: | ||
| } | } | ||
| - | mcast_src_ip 10.145.43.33 | + | |
| - | # | + | |
| - | # | + | unicast_peer { |
| - | # | + | 10.145.43.31 |
| - | # | + | 10.145.43.32 |
| - | # # | + | # |
| - | # } | + | } |
| } | } | ||
| </ | </ | ||
| Zeile 622: | Zeile 620: | ||
| <code bash Netzwerkzugriffe erlauben> | <code bash Netzwerkzugriffe erlauben> | ||
| - | > echo " | + | > echo " |
| > echo " | > echo " | ||
| > echo " | > echo " | ||
| Zeile 727: | Zeile 725: | ||
| scope: pgcluster | scope: pgcluster | ||
| # name auf Host anpassen | # name auf Host anpassen | ||
| - | name: fra2a-medos04 | + | name: pg-knoten-01 |
| restapi: | restapi: | ||
| listen: 0.0.0.0: | listen: 0.0.0.0: | ||
| # connect_address auf Host anpassen | # connect_address auf Host anpassen | ||
| - | connect_address: | + | connect_address: |
| etcd3: | etcd3: | ||
| hosts: | hosts: | ||
| - | - fra2a-medos04:2379 | + | - pg-knoten-01:2379 |
| - | - fra2b-medos04:2379 | + | - pg-knoten-02:2379 |
| - | - fra2c-medos04:2379 | + | - pg-knoten-03:2379 |
| bootstrap: | bootstrap: | ||
| Zeile 763: | Zeile 761: | ||
| listen: 0.0.0.0: | listen: 0.0.0.0: | ||
| # connect_address auf Host anpassen | # connect_address auf Host anpassen | ||
| - | connect_address: | + | connect_address: |
| bin_dir: | bin_dir: | ||
| data_dir: / | data_dir: / | ||
| Zeile 785: | Zeile 783: | ||
| scope: pgcluster | scope: pgcluster | ||
| # name auf Host anpassen | # name auf Host anpassen | ||
| - | name: fra2b-medos04 | + | name: pg-knoten-02 |
| restapi: | restapi: | ||
| listen: 0.0.0.0: | listen: 0.0.0.0: | ||
| # connect_address auf Host anpassen | # connect_address auf Host anpassen | ||
| - | connect_address: | + | connect_address: |
| etcd3: | etcd3: | ||
| hosts: | hosts: | ||
| - | - fra2a-medos04:2379 | + | - pg-knoten-01:2379 |
| - | - fra2b-medos04:2379 | + | - pg-knoten-02:2379 |
| - | - fra2c-medos04:2379 | + | - pg-knoten-03:2379 |
| bootstrap: | bootstrap: | ||
| Zeile 821: | Zeile 819: | ||
| listen: 0.0.0.0: | listen: 0.0.0.0: | ||
| # connect_address auf Host anpassen | # connect_address auf Host anpassen | ||
| - | connect_address: | + | connect_address: |
| bin_dir: | bin_dir: | ||
| data_dir: / | data_dir: / | ||
| Zeile 843: | Zeile 841: | ||
| scope: pgcluster | scope: pgcluster | ||
| # name auf Host anpassen | # name auf Host anpassen | ||
| - | name: fra2c-medos04 | + | name: pg-knoten-03 |
| restapi: | restapi: | ||
| listen: 0.0.0.0: | listen: 0.0.0.0: | ||
| # connect_address auf Host anpassen | # connect_address auf Host anpassen | ||
| - | connect_address: | + | connect_address: |
| etcd3: | etcd3: | ||
| hosts: | hosts: | ||
| - | - fra2a-medos04:2379 | + | - pg-knoten-01:2379 |
| - | - fra2b-medos04:2379 | + | - pg-knoten-02:2379 |
| - | - fra2c-medos04:2379 | + | - pg-knoten-03:2379 |
| bootstrap: | bootstrap: | ||
| Zeile 879: | Zeile 877: | ||
| listen: 0.0.0.0: | listen: 0.0.0.0: | ||
| # connect_address auf Host anpassen | # connect_address auf Host anpassen | ||
| - | connect_address: | + | connect_address: |
| bin_dir: | bin_dir: | ||
| data_dir: / | data_dir: / | ||
| Zeile 917: | Zeile 915: | ||
| <code text Clusterstatus prüfen> | <code text Clusterstatus prüfen> | ||
| - | > curl http://fra2a-medos04:8008 | + | > curl http://pg-knoten-01:8008 |
| - | > curl http://fra2b-medos04:8008 | + | > curl http://pg-knoten-02:8008 |
| - | > curl http://fra2c-medos04:8008 | + | > curl http://pg-knoten-03:8008 |
| </ | </ | ||
| Zeile 1013: | Zeile 1011: | ||
| " | " | ||
| " | " | ||
| - | " | + | " |
| } | } | ||
| } | } | ||
| > patronictl -c / | > patronictl -c / | ||
| - | + Cluster: pgcluster (7637152973093863500) | + | + Cluster: pgcluster (7637152973093863500) -------+----+-----------+ |
| - | | Member | + | | Member |
| - | +---------------+---------------+---------+---------+----+-----------+ | + | +--------------+--------------+---------+---------+----+-----------+ |
| - | | fra2a-medos04 | + | | pg-knoten-01 |
| - | +---------------+---------------+---------+---------+----+-----------+ | + | +--------------+--------------+---------+---------+----+-----------+ |
| </ | </ | ||
| Zeile 1028: | Zeile 1026: | ||
| > patronictl -c / | > patronictl -c / | ||
| Current cluster topology | Current cluster topology | ||
| - | + Cluster: pgcluster (7637152973093863500) | + | + Cluster: pgcluster (7637152973093863500) -------+----+-----------+ |
| - | | Member | + | | Member |
| - | +---------------+---------------+---------+---------+----+-----------+ | + | +--------------+--------------+---------+---------+----+-----------+ |
| - | | fra2a-medos04 | + | | pg-knoten-01 |
| - | +---------------+---------------+---------+---------+----+-----------+ | + | +--------------+--------------+---------+---------+----+-----------+ |
| - | Candidate ['fra2a-medos04'] []: fra2a-medos04 | + | Candidate ['pg-knoten-01'] []: pg-knoten-01 |
| Are you sure you want to failover cluster pgcluster? [y/N]: y | Are you sure you want to failover cluster pgcluster? [y/N]: y | ||
| </ | </ | ||
| Zeile 1049: | Zeile 1047: | ||
| > patronictl -c / | > patronictl -c / | ||
| - | + Cluster: pgcluster (7637598528541987072) | + | + Cluster: pgcluster (7637598528541987072) -------+----+-----------+ |
| - | | Member | + | | Member |
| - | +---------------+---------------+---------+---------+----+-----------+ | + | +--------------+--------------+---------+---------+----+-----------+ |
| - | | fra2a-medos04 | + | | pg-knoten-01 |
| - | | fra2b-medos04 | + | | pg-knoten-02 |
| - | | fra2c-medos04 | + | | pg-knoten-03 |
| - | +---------------+---------------+---------+---------+----+-----------+ | + | +--------------+--------------+---------+---------+----+-----------+ |
| Wenn das so aussieht, dann kann von den Replicas nicht gelesen werden. | Wenn das so aussieht, dann kann von den Replicas nicht gelesen werden. | ||
| - | Um Problem | + | Um das Problem |
| - | > patronictl -c / | + | > patronictl -c / |
| - | + Cluster: pgcluster (7637598528541987072) | + | + Cluster: pgcluster (7637598528541987072) -------+----+-----------+ |
| - | | Member | + | | Member |
| - | +---------------+---------------+---------+---------+----+-----------+ | + | +--------------+--------------+---------+---------+----+-----------+ |
| - | | fra2a-medos04 | + | | pg-knoten-01 |
| - | | fra2b-medos04 | + | | pg-knoten-02 |
| - | | fra2c-medos04 | + | | pg-knoten-03 |
| - | +---------------+---------------+---------+---------+----+-----------+ | + | +--------------+--------------+---------+---------+----+-----------+ |
| - | Are you sure you want to reinitialize members | + | Are you sure you want to reinitialize members |
| - | Failed: reinitialize for member | + | Failed: reinitialize for member |
| Do you want to cancel it and reinitialize anyway? [y/N]: y | Do you want to cancel it and reinitialize anyway? [y/N]: y | ||
| - | Success: reinitialize for member | + | Success: reinitialize for member |
| - | > patronictl -c / | + | > patronictl -c / |
| - | + Cluster: pgcluster (7637598528541987072) | + | + Cluster: pgcluster (7637598528541987072) -------+----+-----------+ |
| - | | Member | + | | Member |
| - | +---------------+---------------+---------+---------+----+-----------+ | + | +--------------+--------------+---------+---------+----+-----------+ |
| - | | fra2a-medos04 | + | | pg-knoten-01 |
| - | | fra2b-medos04 | + | | pg-knoten-02 |
| - | | fra2c-medos04 | + | | pg-knoten-03 |
| - | +---------------+---------------+---------+---------+----+-----------+ | + | +--------------+--------------+---------+---------+----+-----------+ |
| - | Are you sure you want to reinitialize members | + | Are you sure you want to reinitialize members |
| - | Failed: reinitialize for member | + | Failed: reinitialize for member |
| Do you want to cancel it and reinitialize anyway? [y/ | Do you want to cancel it and reinitialize anyway? [y/ | ||
| Zeile 1092: | Zeile 1090: | ||
| > patronictl -c / | > patronictl -c / | ||
| - | + Cluster: pgcluster (7637598528541987072) | + | + Cluster: pgcluster (7637598528541987072) ---------+----+-----------+ |
| - | | Member | + | | Member |
| - | +---------------+---------------+---------+-----------+----+-----------+ | + | +--------------+--------------+---------+-----------+----+-----------+ |
| - | | fra2a-medos04 | + | | pg-knoten-01 |
| - | | fra2b-medos04 | + | | pg-knoten-02 |
| - | | fra2c-medos04 | + | | pg-knoten-03 |
| - | +---------------+---------------+---------+-----------+----+-----------+ | + | +--------------+--------------+---------+-----------+----+-----------+ |
| > curl -s " | > curl -s " | ||
| Zeile 1116: | Zeile 1114: | ||
| <code bash IST-Zustand> | <code bash IST-Zustand> | ||
| > patronictl -c / | > patronictl -c / | ||
| - | + Cluster: pgcluster (7637598528541987072) | + | + Cluster: pgcluster (7637598528541987072) -------+----+-----------+ |
| - | | Member | + | | Member |
| - | +---------------+---------------+---------+---------+----+-----------+ | + | +--------------+--------------+---------+---------+----+-----------+ |
| - | | fra2a-medos04 | + | | pg-knoten-01 |
| - | | fra2b-medos04 | + | | pg-knoten-02 |
| - | | fra2c-medos04 | + | | pg-knoten-03 |
| - | +---------------+---------------+---------+---------+----+-----------+ | + | +--------------+--------------+---------+---------+----+-----------+ |
| </ | </ | ||
| - | <code bash reparieren> | + | <code bash einen zum Leader bestimmen> |
| > patronictl -c / | > patronictl -c / | ||
| - | + Cluster: pgcluster (7637598528541987072) | + | + Cluster: pgcluster (7637598528541987072) -------+----+-----------+ |
| - | | Member | + | | Member |
| - | +---------------+---------------+---------+---------+----+-----------+ | + | +--------------+--------------+---------+---------+----+-----------+ |
| - | | fra2a-medos04 | + | | pg-knoten-01 |
| - | | fra2b-medos04 | + | | pg-knoten-02 |
| - | | fra2c-medos04 | + | | pg-knoten-03 |
| - | +---------------+---------------+---------+---------+----+-----------+ | + | +--------------+--------------+---------+---------+----+-----------+ |
| - | Candidate ['fra2a-medos04', 'fra2b-medos04', 'fra2c-medos04'] []: fra2a-medos04 | + | Candidate ['pg-knoten-01', 'pg-knoten-02', 'pg-knoten-03'] []: pg-knoten-01 |
| Are you sure you want to failover cluster pgcluster? [y/N]: y | Are you sure you want to failover cluster pgcluster? [y/N]: y | ||
| - | 2026-05-13 13: | + | 2026-05-13 13: |
| - | + Cluster: pgcluster (7637598528541987072) | + | + Cluster: pgcluster (7637598528541987072) -------+----+-----------+ |
| - | | Member | + | | Member |
| - | +---------------+---------------+---------+---------+----+-----------+ | + | +--------------+--------------+---------+---------+----+-----------+ |
| - | | fra2a-medos04 | + | | pg-knoten-01 |
| - | | fra2b-medos04 | + | | pg-knoten-02 |
| - | | fra2c-medos04 | + | | pg-knoten-03 |
| - | +---------------+---------------+---------+---------+----+-----------+ | + | +--------------+--------------+---------+---------+----+-----------+ |
| > patronictl -c / | > patronictl -c / | ||
| - | + Cluster: pgcluster (7637598528541987072) | + | + Cluster: pgcluster (7637598528541987072) ---------+----+-----------+ |
| - | | Member | + | | Member |
| - | +---------------+---------------+---------+-----------+----+-----------+ | + | +--------------+--------------+---------+-----------+----+-----------+ |
| - | | fra2a-medos04 | + | | pg-knoten-01 |
| - | | fra2b-medos04 | + | | pg-knoten-02 | pg-knoten-02 |
| - | | fra2c-medos04 | + | | pg-knoten-03 |
| - | +---------------+---------------+---------+-----------+----+-----------+ | + | +--------------+--------------+---------+-----------+----+-----------+ |
| </ | </ | ||
| Zeile 1343: | Zeile 1341: | ||
| | | ||
| </ | </ | ||
| - | |||
| - | //Wie das beste Vorgehen bei Wartungsarbeiten ist, muß erst noch ermittelt ausgelotet werden.// | ||
| <code bash> | <code bash> | ||
| Zeile 1387: | Zeile 1383: | ||
| # EtcD abfragen | # EtcD abfragen | ||
| - | etcdctl --endpoints=" | + | etcdctl --endpoints=" |
| # Patroni abfragen | # Patroni abfragen | ||
| Zeile 1589: | Zeile 1585: | ||
| ==== Replica reinitialisieren ==== | ==== Replica reinitialisieren ==== | ||
| - | <code bash fra2a-medos04 | + | <code bash pg-knoten-01 |
| - | > patronictl -c / | + | > patronictl -c / |
| - | + Cluster: pgcluster (7637598528541987072) | + | + Cluster: pgcluster (7637598528541987072) -------+----+-----------+ |
| - | | Member | + | | Member |
| - | +---------------+---------------+---------+---------+----+-----------+ | + | +--------------+--------------+---------+---------+----+-----------+ |
| - | | fra2a-medos04 | + | | pg-knoten-01 |
| - | | fra2b-medos04 | + | | pg-knoten-02 |
| - | | fra2c-medos04 | + | | pg-knoten-03 |
| - | +---------------+---------------+---------+---------+----+-----------+ | + | +--------------+--------------+---------+---------+----+-----------+ |
| - | Are you sure you want to reinitialize members | + | Are you sure you want to reinitialize members |
| - | Failed: reinitialize for member | + | Failed: reinitialize for member |
| Do you want to cancel it and reinitialize anyway? [y/N]: y | Do you want to cancel it and reinitialize anyway? [y/N]: y | ||
| - | Success: reinitialize for member | + | Success: reinitialize for member |
| </ | </ | ||
| Zeile 1611: | Zeile 1607: | ||
| [~]# patronictl -c / | [~]# patronictl -c / | ||
| Current cluster topology | Current cluster topology | ||
| - | + Cluster: pgcluster (7637598528541987072) -----------+----+-----------+ | ||
| - | | Member | ||
| - | +---------------+---------------+---------+-----------+----+-----------+ | ||
| - | | fra2a-medos04 | fra2a-medos04 | Replica | streaming | 8 | 0 | | ||
| - | | fra2b-medos04 | fra2b-medos04 | Leader | ||
| - | | fra2c-medos04 | fra2c-medos04 | Replica | streaming | 8 | 0 | | ||
| - | +---------------+---------------+---------+-----------+----+-----------+ | ||
| - | Candidate [' | ||
| - | Are you sure you want to failover cluster pgcluster, demoting current leader fra2b-medos04? | ||
| - | 2026-05-12 14: | ||
| + Cluster: pgcluster (7637598528541987072) ---------+----+-----------+ | + Cluster: pgcluster (7637598528541987072) ---------+----+-----------+ | ||
| - | | Member | + | | Member |
| - | +---------------+---------------+---------+---------+----+-----------+ | + | +--------------+--------------+---------+-----------+----+-----------+ |
| - | | fra2a-medos04 | + | | pg-knoten-01 | pg-knoten-01 | Replica | streaming | 8 | 0 | |
| - | | fra2b-medos04 | + | | pg-knoten-02 | pg-knoten-02 | Leader |
| - | | fra2c-medos04 | + | | pg-knoten-03 | pg-knoten-03 | Replica | streaming | 8 | 0 | |
| - | +---------------+---------------+---------+---------+----+-----------+ | + | +--------------+--------------+---------+-----------+----+-----------+ |
| + | Candidate [' | ||
| + | Are you sure you want to failover cluster pgcluster, demoting current leader pg-knoten-02? | ||
| + | 2026-05-12 14: | ||
| + | + Cluster: pgcluster (7637598528541987072) | ||
| + | | Member | ||
| + | +--------------+--------------+---------+---------+----+-----------+ | ||
| + | | pg-knoten-01 | pg-knoten-01 | Leader | ||
| + | | pg-knoten-02 | ||
| + | | pg-knoten-03 | ||
| + | +--------------+--------------+---------+---------+----+-----------+ | ||
| [root@FRA2C-MEDOS04]---------------------------------------------------------------------[0]-[0]-[2026-05-12 14:26:55] | [root@FRA2C-MEDOS04]---------------------------------------------------------------------[0]-[0]-[2026-05-12 14:26:55] | ||
| [~]# patronictl -c / | [~]# patronictl -c / | ||
| - | + Cluster: pgcluster (7637598528541987072) | + | + Cluster: pgcluster (7637598528541987072) ---------+----+-----------+ |
| - | | Member | + | | Member |
| - | +---------------+---------------+---------+-----------+----+-----------+ | + | +--------------+--------------+---------+-----------+----+-----------+ |
| - | | fra2a-medos04 | + | | pg-knoten-01 |
| - | | fra2b-medos04 | + | | pg-knoten-02 |
| - | | fra2c-medos04 | + | | pg-knoten-03 |
| - | +---------------+---------------+---------+-----------+----+-----------+ | + | +--------------+--------------+---------+-----------+----+-----------+ |
| </ | </ | ||
| Zeile 1654: | Zeile 1650: | ||
| Aber wozu brauche ich HAProxy? KeepaliveD kann doch direkt Patroni prüfen und dann dort, wo der Leader ist, die VIP hochfahren. | Aber wozu brauche ich HAProxy? KeepaliveD kann doch direkt Patroni prüfen und dann dort, wo der Leader ist, die VIP hochfahren. | ||
| # patronictl -c / | # patronictl -c / | ||
| - | + Cluster: pgcluster (7637598528541987072) | + | + Cluster: pgcluster (7637598528541987072) -------+----+-----------+ |
| - | | Member | + | | Member |
| - | +---------------+---------------+---------+---------+----+-----------+ | + | +--------------+--------------+---------+---------+----+-----------+ |
| - | | fra2a-medos04 | + | | pg-knoten-01 |
| - | | fra2b-medos04 | + | | pg-knoten-02 |
| - | | fra2c-medos04 | + | | pg-knoten-03 |
| - | +---------------+---------------+---------+---------+----+-----------+ | + | +--------------+--------------+---------+---------+----+-----------+ |
| HAProxy hat zusätzliche Funktionen, die KeepaliveD nicht bieten kann: | HAProxy hat zusätzliche Funktionen, die KeepaliveD nicht bieten kann: | ||
| Zeile 1948: | Zeile 1944: | ||
| nvme3n1 | nvme3n1 | ||
| ----------- | ----------- | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Testdaten einspielen ==== | ||
| + | |||
| + | <code bash> | ||
| + | > echo "COPY tabelle FROM '/ | ||
| + | |||
| + | oder | ||
| + | |||
| + | > cat / | ||
| + | </ | ||
| + | |||
| + | <code bash Datensätze zählen> | ||
| + | > echo " | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Verbindungen SSL/ | ||
| + | |||
| + | |||
| + | ==== Verschlüsselung konfigurieren ==== | ||
| + | |||
| + | <code bash postgresql.conf> | ||
| + | > patronictl -c / | ||
| + | loop_wait: 10 | ||
| + | maximum_lag_on_failover: | ||
| + | postgresql: | ||
| + | parameters: | ||
| + | hot_standby: | ||
| + | max_replication_slots: | ||
| + | max_wal_senders: | ||
| + | wal_level: replica | ||
| + | ssl: on | ||
| + | ssl_ca_file: | ||
| + | ssl_cert_file: | ||
| + | ssl_key_file: | ||
| + | ssl_min_protocol_version: | ||
| + | ssl_ciphers: | ||
| + | ssl_prefer_server_ciphers: | ||
| + | use_pg_rewind: | ||
| + | retry_timeout: | ||
| + | ttl: 30 | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Verschlüsselung erzwingen ==== | ||
| + | |||
| + | <code bash pg_hba.conf> | ||
| + | > vim / | ||
| + | ... | ||
| + | pg_hba: | ||
| + | - hostnossl all all 0.0.0.0/0 reject | ||
| + | - hostnossl all all ::/0 reject | ||
| + | - hostssl replication all 0.0.0.0/0 scram-sha-256 | ||
| + | - hostssl replication all ::/0 scram-sha-256 | ||
| + | - hostssl all all 0.0.0.0/0 scram-sha-256 | ||
| + | - hostssl all all ::/0 scram-sha-256 | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Verschlüsselung aktivieren ==== | ||
| + | |||
| + | <code bash kompletten Cluster restarten> | ||
| + | > patronictl -c / | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== temp_tablespaces ===== | ||
| + | |||
| + | <code bash temp_tablespaces-Verzeichnis anlegen> | ||
| + | > mkdir -p / | ||
| + | > chown postgres: | ||
| + | > chmod 0700 / | ||
| + | </ | ||
| + | |||
| + | <code bash temp_tablespaces konfigurieren> | ||
| + | > echo " | ||
| + | > echo " | ||
| + | > echo " | ||
| + | |||
| + | > patronictl -c / | ||
| + | ... | ||
| + | postgresql: | ||
| + | parameters: | ||
| + | temp_file_limit: | ||
| + | temp_tablespaces: | ||
| + | ... | ||
| </ | </ | ||
/home/http/wiki/data/attic/datenbank/ha-postgresql-cluster.1778707360.txt · Zuletzt geändert: von manfred
