🐘 PostgreSQL — الأساسيات
apt install postgresql postgresql-contrib -y
sudo -u postgres psql
CREATE DATABASE myapp;
CREATE USER devops WITH PASSWORD 'secret';
GRANT ALL PRIVILEGES ON DATABASE myapp TO devops;
\l
\c myapp
\dt
🔄 النسخ المتماثل (Replication)
Primary → Replica
النسخ المتماثل يسمح بنسخ البيانات من سيرفر رئيسي لآخر احتياطي. يضمن التوفر العالي ويوزع الحمل.
wal_level = replica
max_wal_senders = 3
wal_keep_size = 128
hot_standby = on
host replication replica 10.0.0.2/32 md5
💾 النسخ الاحتياطي والاستعادة
pg_dump -U postgres mydb > backup.sql
pg_dump -U postgres mydb | gzip > backup.sql.gz
pg_dump -U postgres -Fc mydb > backup.dump
psql -U postgres mydb < backup.sql
pg_restore -U postgres -d mydb backup.dump
pgbackrest --stanza=main backup
⚡ Redis — التخزين المؤقت
apt install redis-server -y
redis-cli
SET user:1 "Ahmed"
GET user:1
EXPIRE user:1 3600
HSET user:1 name "Ahmed" age 25
HGETALL user:1
PING
PONG
INFO server
requirepass mySecretPassword123
bind 127.0.0.1
maxmemory-policy allkeys-lru
🐳 قواعد البيانات في Docker
services:
postgres:
image: postgres:16-alpine
environment:
- POSTGRES_DB=myapp
- POSTGRES_USER=devops
- POSTGRES_PASSWORD=secret
volumes:
- pgdata:/var/lib/postgresql/data
ports:
- "5432:5432"
redis:
image: redis:7-alpine
command: redis-server --requirepass secret
volumes:
- redisdata:/data
ports:
- "6379:6379"
volumes:
pgdata:
redisdata:
✅ أفضل الممارسات
🎯
1. استخدم Volumes لحفظ بيانات قاعدة البيانات
2. فعّل النسخ الاحتياطي التلقائي يومياً
3. استخدم كلمات مرور قوية ولا تعرضها في الكود
4. راقب الأداء بـ pg_stat_activity
5. استخدم Connection Pooling (PgBouncer)
6. فعّل الـ Indexes على الأعمدة المستخدمة في البحث