Felhasználói eszközök

Eszközök a webhelyen


kubernetes:stackgres:monitoring

Összehasonlítás

A kiválasztott és az jelenlegi változat között az alábbi különbségek fordulnak elő:

Összehasonlító nézet hivatkozása

Előző változat mindkét oldalonElőző változat
Következő változat
Előző változat
kubernetes:stackgres:monitoring [2026/06/10 13:10] – riba.zoltankubernetes:stackgres:monitoring [2026/06/10 14:38] (aktuális) – riba.zoltan
Sor 1: Sor 1:
-====== Kubernetes StackGres ======+====== Kubernetes StackGres/PostgreSQL ======
  
 ===== Állapot ellenőrzés ===== ===== Állapot ellenőrzés =====
Sor 819: Sor 819:
 </code> </code>
  
 +===== Mentés, helyreállítás =====
 +
 +=== Előkészítő műveletek ===
 +
 +== Felhasználó és adatbázis létrehozás ==
 +
 +A mentés teszteléséhez szükséges felhasználó és adatbázisok létrehozása.
 +
 +<code>
 +$ kubectl exec -n $NAMESPACE -it pg-cluster-0 -c postgres-util -- bash
 +bash-4.4$ createuser eesztuser
 +bash-4.4$ createdb -O eesztuser eesztdb
 +bash-4.4$ createdb -O eesztuser eesztdb_restore
 +bash-4.4$ exit
 +exit
 +</code>
 +
 +Teszt tábla létrehozása, adatok feltöltése
 +
 +<code>
 +$ kubectl exec -n $NAMESPACE -it pg-cluster-0 -c postgres-util -- psql -U eesztuser -d eesztdb
 +psql (18.3 (OnGres 18.3-build-6.49))
 +Type "help" for help.
 +
 +eesztdb=> CREATE TABLE backup_test (
 +eesztdb(>     id           BIGSERIAL PRIMARY KEY,
 +eesztdb(>     created_at   TIMESTAMPTZ NOT NULL DEFAULT now(),
 +eesztdb(>     username     VARCHAR(50) NOT NULL,
 +eesztdb(>     email        VARCHAR(100),
 +eesztdb(>     amount       NUMERIC(12,2),
 +eesztdb(>     active       BOOLEAN DEFAULT true,
 +eesztdb(>     note         TEXT
 +eesztdb(> );
 +CREATE TABLE
 +eesztdb=> INSERT INTO backup_test
 +eesztdb-> (username,email,amount,active,note)
 +eesztdb-> SELECT
 +eesztdb->     'user' || g,
 +eesztdb->     'user' || g || '@example.com',
 +eesztdb->     round((random()*10000)::numeric,2),
 +eesztdb->     random() > 0.2,
 +eesztdb->     md5(random()::text)
 +eesztdb-> FROM generate_series(1,10000) g;
 +INSERT 0 10000
 +eesztdb=> SELECT count(*) FROM backup_test;
 + count 
 +-------
 + 10000
 +(1 row)
 +
 +eesztdb=> \q
 +</code>
 +
 +==== Mentő szkript ====
 +
 +A szkript kiolvassa a használt névteret, és az elsődleges POD-ot.
 +
 +<file bash 03-stackgres-postgresql-backup.sh>
 +#!/usr/bin/env bash
 +
 +DEBUG=1
 +TIMESTAMP=$(date +%Y%m%d_%H%M%S)
 +
 +PGDATABASE=eesztdb
 +PGUSER=eesztuser
 +
 +NAMESPACE=$(kubectl get sgcluster --no-headers -A | awk '{ print $1 }')
 +PRIMARY=$(kubectl get pod -n $NAMESPACE -l app=StackGresCluster,role=primary -o jsonpath='{.items[0].metadata.name}')
 +
 +if [ $DEBUG -gt 0 ] ; then
 +    echo "NAMESPACE: $NAMESPACE"
 +    echo "PRIMARY: $PRIMARY"
 +fi
 +
 +if [ -z "$PRIMARY" ] ; then
 +    echo "Nem található primary pod"
 +    exit 1
 +fi
 +
 +kubectl exec -n "$NAMESPACE" "$PRIMARY" -c postgres-util -- pg_dump -U "$PGUSER" -d "$PGDATABASE" --no-owner --no-privileges > "$PGDATABASE"_"$TIMESTAMP".sql
 +</file>
 +
 +Futtatás eredménye
 +
 +<code>
 +$ ./03-stackgres-postgresql-backup.sh 
 +NAMESPACE: lapodb-postgres
 +PRIMARY: pg-cluster-0
 +
 +$ ls -1
 +eesztdb_20260610_162054.sql
 +</code>
 +
 +==== Helyreállító szkript ====
 +
 +A helyreállítás az ''eesztdb_restore'' adatbázist használja.
 +
 +<file bash 03-stackgres-postgresql-restore.sh>
 +#!/usr/bin/env bash
 +
 +DEBUG=1
 +
 +if [ $# -ne 1 ] ; then
 +    echo "Használat: $0 backupfile.sql"
 +    exit 1
 +fi
 +
 +BACKUP_FILE="$1"
 +
 +if [ ! -f "$BACKUP_FILE" ] ; then
 +    echo "Nem található a mentési fájl: $BACKUP_FILE"
 +    exit 1
 +fi
 +
 +PGDATABASE=eesztdb_restore
 +PGUSER=eesztuser
 +
 +NAMESPACE=$(kubectl get sgcluster --no-headers -A | awk '{ print $1 }')
 +PRIMARY=$(kubectl get pod -n "$NAMESPACE" -l app=StackGresCluster,role=primary -o jsonpath='{.items[0].metadata.name}')
 +
 +if [ $DEBUG -gt 0 ] ; then
 +    echo "NAMESPACE: $NAMESPACE"
 +    echo "PRIMARY: $PRIMARY"
 +    echo "BACKUP_FILE: $BACKUP_FILE"
 +fi
 +
 +if [ -z "$PRIMARY" ] ; then
 +    echo "Nem található primary pod"
 +    exit 1
 +fi
 +
 +kubectl exec -i -n "$NAMESPACE" "$PRIMARY" -c postgres-util -- psql -U "$PGUSER" -d "$PGDATABASE" < "$BACKUP_FILE"
 +</file>
 +
 +Futtatás eredménye
 +
 +<code>
 +$ ./03-stackgres-postgresql-restore.sh eesztdb_20260610_162054.sql 
 +NAMESPACE: lapodb-postgres
 +PRIMARY: pg-cluster-0
 +BACKUP_FILE: eesztdb_20260610_162054.sql
 +SET
 +SET
 +SET
 +SET
 +SET
 +SET
 + set_config 
 +------------
 + 
 +(1 row)
 +
 +SET
 +SET
 +SET
 +SET
 +SET
 +SET
 +CREATE TABLE
 +CREATE SEQUENCE
 +ALTER SEQUENCE
 +ALTER TABLE
 +COPY 10000
 + setval 
 +--------
 +  10000
 +(1 row)
 +
 +ALTER TABLE
 +</code>
 +
 +==== Ellenőrzés ====
 +
 +<code>
 +$ kubectl exec -n $NAMESPACE -it pg-cluster-0 -c postgres-util -- psql -U eesztuser -d eesztdb -c "SELECT count(*) FROM backup_test"
 + count 
 +-------
 + 10000
 +(1 row)
 +
 +$ kubectl exec -n $NAMESPACE -it pg-cluster-0 -c postgres-util -- psql -U eesztuser -d eesztdb_restore -c "SELECT count(*) FROM backup_test"
 + count 
 +-------
 + 10000
 +(1 row)
 +</code>
kubernetes/stackgres/monitoring.1781097054.txt.gz · legutóbbi módosítás: – Szerkesztő: riba.zoltan