Zum Inhalt

Runbook Datenbank

Runbook: Datenbank

Diagnose und Behebung von Datenbankproblemen: PostgreSQL, MongoDB, Qdrant und Redis.


PostgreSQL Verbindungsfehler

Symptom: Customer API oder Connector Service loggen Datenbankfehler (connection refused, timeout).

Diagnose:

kubectl get pods -n inovetra-platform | grep postgres
kubectl logs deployment/inovetra-postgres -n inovetra-platform

Lösung:

# PostgreSQL neustarten
kubectl rollout restart deployment/inovetra-postgres -n inovetra-platform

# Verbindung testen
kubectl exec -it deployment/inovetra-postgres -n inovetra-platform -- \
  psql -U inovetra-postgres -c "SELECT 1"

Verifikation:

curl https://<domain>/api/customer/ready

→ Erwartete Antwort: 200


MongoDB StatefulSet-Problem

Symptom: MongoDB Pod startet nicht oder ist in CrashLoop.

Diagnose:

kubectl get statefulset -n inovetra-platform | grep mongo
kubectl describe pod inovetra-mongodb-0 -n inovetra-platform
kubectl logs inovetra-mongodb-0 -n inovetra-platform

Häufige Ursache: Lock-File nach unsauberem Shutdown.

Lösung:

# StatefulSet mit orphan-Strategie löschen (behält Daten)
kubectl delete statefulset inovetra-mongodb -n inovetra-platform --cascade=orphan

Anschließend Helm Re-Deploy triggern: über Customer Portal → Update erneut anwenden.

Datenerhalt beachten

Niemals --cascade=foreground verwenden — das löscht auch die PVC und damit die Daten!

Verifikation: MongoDB Pod im Status Running, LibreChat funktioniert.


Qdrant nicht erreichbar

Symptom: RAG-Suche liefert keine Ergebnisse, RAG API loggt Qdrant-Verbindungsfehler.

Diagnose:

kubectl get pods -n inovetra-platform | grep qdrant
kubectl logs deployment/inovetra-vectordb -n inovetra-platform

Lösung:

kubectl rollout restart deployment/inovetra-vectordb -n inovetra-platform

Verifikation:

curl https://<domain>/api/rag/health

→ Erwartete Antwort: 200


Redis Speicher voll

Symptom: Conversation Memory funktioniert nicht, Redis loggt OOM-Fehler.

Diagnose:

kubectl exec deployment/inovetra-redis -n inovetra-platform -- redis-cli INFO memory

Lösung: Redis nutzt standardmäßig die Eviction-Policy allkeys-lru — alte Keys werden automatisch bereinigt. Bei Dauerproblem: maxmemory in Helm Values erhöhen (über Customer Portal).

Verifikation:

kubectl exec deployment/inovetra-redis -n inovetra-platform -- redis-cli INFO memory

used_memory liegt unter maxmemory.


Weiterführende Seiten