Sobes.tech
Junior

PostgreSQL ile ilgili deneyiminiz nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

PostgreSQL ile ilgili deneyimim şunları içermektedir:

  • Veri yönetimi: Şemaların, tabloların, indekslerin, görünümlerin oluşturulması ve değiştirilmesi. Veri ihracı ve ithali. JSONB dahil olmak üzere çeşitli veri tipleriyle çalışma.
  • Performans optimizasyonu: Sorgu yürütme planlarının analizi (EXPLAIN ANALYZE). Yavaş sorguların optimize edilmesi, PostgreSQL sunucu parametrelerinin ayarlanması (postgresql.conf), otomatik vacuum (autovacuum) ile çalışma.
  • Yüksek erişilebilirlik ve arıza toleransı: Replikasyonun yapılandırılması (Stream Replikasyon, Mantıksal Replikasyon), Patroni kullanımıyla otomatik failover (failover). Yedekleme ve veri kurtarma uygulamaları (örneğin, pg_dump, pgbackrest kullanarak).
  • İzleme: Prometheus Exporter kullanarak PostgreSQL örneklerinin durumunun izlenmesi, metriklerin analizi (CPU/bellek yükü, bağlantı sayısı, kilitler, replikasyon durumu).
  • Otomasyon: Bash veya Python ile yönetim görevleri için betikler yazma, Ansible veya Terraform kullanarak dağıtım otomasyonu.
  • Kubernetes kümesi üzerinde çalışma: Operatorler kullanarak PostgreSQL dağıtımı (örneğin, Crunchy Data, Zalando), StatefulSets ve PersistentVolumes yönetimi.

pg_dump kullanarak yedekleme örneği:

#!/bin/bash

# Bağlantı ayarları
DB_NAME="your_database"
DB_USER="your_user"
DB_HOST="localhost"
DB_PORT="5432"

# Yedekleme dizini
BACKUP_DIR="/mnt/backups/postgresql"
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
BACKUP_FILE="$BACKUP_DIR/$DB_NAME-$TIMESTAMP.sql.gz"

# Yedekleme dizini oluştur (varsa)
mkdir -p "$BACKUP_DIR"

# Sıkıştırmalı yedekleme yap
pg_dump -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" | gzip > "$BACKUP_FILE"

if [ $? -eq 0 ]; then
  echo "Veritabanı '$DB_NAME' yedeği başarıyla oluşturuldu: $BACKUP_FILE"
else
  echo "Veritabanı yedeği oluşturulurken hata oluştu"
  exit 1
fi

# Eski yedekleri sil (örneğin, 7 günden eski olanlar)
find "$BACKUP_DIR" -type f -name "*.sql.gz" -mtime +7 -delete
echo "Eski yedekler başarıyla silindi."

Kubernetes'te PostgreSQL Pod'ları hakkında bilgi almak için kubectl kullanımı:

# Belirli bir namespace'teki podların listesi
kubectl get pods -n your-namespace | grep postgres

# Belirli bir PostgreSQL pod'unun detaylarını görüntüleme
kubectl describe pod your-postgres-pod-name -n your-namespace

# PostgreSQL pod'unun loglarını görüntüleme
kubectl logs your-postgres-pod-name -n your-namespace

Veritabanlarının stabil çalışmasının uygulamalar için önemini anlıyorum ve bu hedefe ulaşmak için en iyi uygulamaları uygulamaya çalışıyorum.