Junior
PostgreSQL ilə işləmə təcrübəniz nədir?
sobes.tech Süni İntellekt
AI-dan cavab
PostgreSQL ilə bağlı təcrübəm aşağıdakılardan ibarətdir:
- Məlumatların idarə olunması: Şemaların, cədvəllərin, indekslərin, görünüşlərin yaradılması və dəyişdirilməsi. Məlumatların ixracı və idxalı. JSONB daxil olmaqla müxtəlif məlumat tipləri ilə işləmək.
- Performansın optimallaşdırılması: Sorğuların icra planlarının analizi (
EXPLAIN ANALYZE). Yavaş sorğuların optimallaşdırılması, PostgreSQL server parametrlərinin tənzimlənməsi (postgresql.conf), autovacuum ilə işləmək (autovacuum). - Yüksək əlçatanlıq və nasazlığa davamlılıq: Replikasiya (Stream Replikasiya, Logik Replikasiya) qurulması, Patroni istifadə edərək avtomatik keçid (
failover). Yedəkləmə və məlumatların bərpası (məsələn,pg_dump,pgbackrestilə). - Monitorinq: Prometheus Exporter ilə PostgreSQL instansiyalarının vəziyyətinin monitorinqi, metriklərin analizi (CPU/yaddaş yüklənməsi, əlaqələrin sayı, kilidlər, replikasiya vəziyyəti).
- Avtomatlaşdırma: Bash və ya Python skriptləri yazmaq, Ansible və ya Terraform istifadə edərək yerləşdirməni avtomatlaşdırmaq.
- Kubernetes klasterində işləmək: Operatorlar vasitəsilə PostgreSQL yerləşdirmə (məsələn, Crunchy Data, Zalando), StatefulSets və PersistentVolumes idarə etmək.
pg_dump istifadə edərək ehtiyat nüsxə üçün nümunə skript:
#!/bin/bash
# Qoşulma parametrləri
DB_NAME="your_database"
DB_USER="your_user"
DB_HOST="localhost"
DB_PORT="5432"
# Ehtiyat nüsxə qovluğu
BACKUP_DIR="/mnt/backups/postgresql"
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
BACKUP_FILE="$BACKUP_DIR/$DB_NAME-$TIMESTAMP.sql.gz"
# Ehtiyat nüsxə qovluğunu yaradın, əgər mövcud deyilsə
mkdir -p "$BACKUP_DIR"
# Sıxılmış ehtiyat nüsxə alın
pg_dump -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" | gzip > "$BACKUP_FILE"
if [ $? -eq 0 ]; then
echo "Verilənlər bazasının '$DB_NAME' ehtiyat nüsxəsi uğurla yaradıldı: $BACKUP_FILE"
else
echo "Verilənlər bazasının ehtiyat nüsxəsinin yaradılmasında xəta baş verdi"
exit 1
fi
# Köhnə ehtiyat nüsxələri silinsin (məsələn, 7 gündən köhnə olanlar)
find "$BACKUP_DIR" -type f -name "*.sql.gz" -mtime +7 -delete
echo "Köhnə ehtiyat nüsxələr uğurla silindi."
Kubernetes-də PostgreSQL Pod-ları haqqında məlumat əldə etmək üçün kubectl istifadə:
# Müəyyən bir namespace-də podların siyahısı
kubectl get pods -n your-namespace | grep postgres
# Müəyyən bir PostgreSQL pod-u haqqında ətraflı məlumat
kubectl describe pod your-postgres-pod-name -n your-namespace
# PostgreSQL pod-unun loglarını göstər
kubectl logs your-postgres-pod-name -n your-namespace
Verilənlər bazasının stabil işləməsinin vacibliyini başa düşürəm və bu məqsədə çatmaq üçün ən yaxşı təcrübələri tətbiq etməyə çalışıram.