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,pgbackrestkullanarak). - İ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.