
Veritabanı Yedekleme Stratejileri: Full, Incremental ve Diferansiyel Backup
Veritabanı yedekleme stratejileri karşılaştırması. Full, incremental ve diferansiyel backup. Otomatik yedekleme, uzak depolama ve geri yükleme testleri.
Veritabanı Yedekleme Stratejileri
"Yedek almıyorum" yerine "yedek geri yüklenemiyor" daha büyük bir felakettir. Veritabanı yedekleme hem düzenli alınmalı hem de düzenli test edilmelidir.
Yedekleme Türleri
Full Backup (Tam Yedek)
Tüm veritabanının eksiksiz kopyası.
Avantajlar:
- Geri yükleme en basit ve hızlı
- Bağımsız yedek dosyası
Dezavantajlar:
- En fazla depolama alanı
- Büyük veritabanlarında zaman alır
Ne zaman: Haftalık, yeni büyük değişiklik öncesi
Incremental Backup (Artımlı Yedek)
Son yedekten bu yana değişen veriler.
Avantajlar:
- En az depolama alanı
- En hızlı alma süreci
Dezavantajlar:
- Geri yükleme karmaşık (full + tüm incremental'lar)
- Bir yedek bozulursa sonrakiler de etkilenir
Diferansiyel Backup
Son full yedekten bu yana değişen tüm veriler.
Avantajlar:
- Incremental'dan daha kolay geri yükleme
- Full'dan daha az yer kaplar
Dezavantajlar:
- Zamanla büyür (full yedek sonrası)
3-2-1 Yedekleme Kuralı
3 kopya
├── 1 birincil (üretim)
├── 1 lokal yedek (farklı disk/server)
└── 1 uzak yedek (farklı lokasyon/bulut)
2 farklı medya
├── Disk + Tape
└── SSD + Object Storage
1 uzak lokasyon
└── Bulut (S3, Google Cloud, Backblaze)
MySQL/MariaDB Yedekleme
mysqldump (Mantıksal Yedek):
# Tek veritabanı
mysqldump -u root -p sitem_db > /backups/sitem_$(date +%Y%m%d_%H%M).sql
# Tüm veritabanları
mysqldump -u root -p --all-databases > /backups/all_$(date +%Y%m%d).sql
# Sıkıştırarak
mysqldump -u root -p sitem_db | gzip > /backups/sitem_$(date +%Y%m%d).sql.gz
# Transaction ile (InnoDB için tutarlı)
mysqldump -u root -p --single-transaction sitem_db > backup.sql
# Hızlı geri yükleme için
mysqldump -u root -p --single-transaction --quick sitem_db | gzip > backup.sql.gz
Percona XtraBackup (Fiziksel Yedek - Hızlı):
apt install percona-xtrabackup-80
# Full backup
xtrabackup --backup --target-dir=/backups/full --user=root --password=sifre
# Incremental backup
xtrabackup --backup --target-dir=/backups/inc1 --incremental-basedir=/backups/full
# Geri yükleme
xtrabackup --prepare --target-dir=/backups/full
xtrabackup --copy-back --target-dir=/backups/full
PostgreSQL Yedekleme
pg_dump:
# SQL format
sudo -u postgres pg_dump sitem_db > sitem_$(date +%Y%m%d).sql
# Custom format (daha hızlı restore)
sudo -u postgres pg_dump -Fc sitem_db > sitem_$(date +%Y%m%d).dump
# Sadece şema
sudo -u postgres pg_dump --schema-only sitem_db > schema.sql
# Sadece veri
sudo -u postgres pg_dump --data-only sitem_db > data.sql
# Tüm veritabanları
sudo -u postgres pg_dumpall > all_databases_$(date +%Y%m%d).sql
pg_basebackup (Fiziksel):
sudo -u postgres pg_basebackup -D /backups/pgbase -Fp -Xs -P -R
# WAL arşivleme ile PITR (Point-in-Time Recovery)
# postgresql.conf:
# archive_mode = on
# archive_command = 'cp %p /backups/wal/%f'
Otomatik Yedekleme Scripti
#!/bin/bash
# /usr/local/bin/db-backup.sh
BACKUP_DIR="/backups/databases"
DATE=$(date +%Y%m%d_%H%M)
RETENTION_DAYS=7
DB_PASS="veritabani_sifresi"
mkdir -p $BACKUP_DIR
# MySQL yedekle
for DB in sitem_db blog_db forum_db; do
mysqldump -u root -p$DB_PASS --single-transaction $DB | gzip > $BACKUP_DIR/mysql_${DB}_${DATE}.sql.gz
echo "Yedeklendi: $DB"
done
# Eski yedekleri sil (7 günden eski)
find $BACKUP_DIR -name "*.sql.gz" -mtime +$RETENTION_DAYS -delete
# Boyut raporu
echo "Yedek boyutu:"
du -sh $BACKUP_DIR
# Cron ile günde bir kez
chmod +x /usr/local/bin/db-backup.sh
echo "0 2 * * * root /usr/local/bin/db-backup.sh >> /var/log/db-backup.log 2>&1" | tee /etc/cron.d/db-backup
Bulut Depolama (S3/Rclone)
# rclone kurulumu
curl https://rclone.org/install.sh | sudo bash
rclone config # S3/Google Drive/Backblaze yapılandır
# Yedeği buluta gönder
rclone copy /backups/databases remote:buyukweb-backups/databases/
# Script'e entegre et
mysqldump -u root -p sitem_db | gzip | rclone rcat remote:backups/sitem_$(date +%Y%m%d).sql.gz
Geri Yükleme Prosedürü
# MySQL geri yükleme
mysql -u root -p sitem_db < backup.sql
# veya sıkıştırılmış
gunzip < backup.sql.gz | mysql -u root -p sitem_db
# PostgreSQL geri yükleme
sudo -u postgres psql sitem_db < backup.sql
# Custom format
sudo -u postgres pg_restore -d sitem_db backup.dump
Yedekleme Testi Kontrol Listesi
Aylık test prosedürü:
[ ] Test ortamında geri yükleme yapıldı
[ ] Tüm tablolar ve veriler kontrol edildi
[ ] Geri yükleme süresi ölçüldü ve RTO hesaplandı
[ ] Veri bütünlüğü doğrulandı
[ ] Test sonuçları kayıt altına alındı
RTO ve RPO:
- RTO (Recovery Time Objective): Maksimum kabul edilebilir kesinti süresi
- RPO (Recovery Point Objective): Maksimum kabul edilebilir veri kaybı süresi
Büyükweb hosting paketlerinde günlük otomatik veritabanı yedeklemesi standarttır.
Veritabani Performans Optimizasyonu
Veritabani web uygulamalarinin kalbidir.
MySQL/MariaDB Tuning
innodb_buffer_pool_size'i RAM'in %60-70'ine ayarlayin. slow_query_log ile yavas sorgulari tespit edin. max_connections optimize edin.
Indeksleme
WHERE, JOIN, ORDER BY sutunlarina indeks ekleyin. EXPLAIN ile sorgu planlari analiz edin. Composite index kullanin.
Baglanti Havuzu
ProxySQL ile gelismis baglanti yonetimi. Connection pooling ile maliyet azaltma. Persistent connections kullanin.
Replikasyon
Master-Slave ile okuma yukunu dagitin. Galera Cluster ile multi-master yuksek erisilebilirlik. Semi-senkron replikasyon degerlendirin.
Yedekleme
mysqldump mantiksal, xtrabackup fiziksel yedek. Binary log ile point-in-time recovery. Incremental yedekleme ile tasarruf.
Sik Sorulan Sorular
MySQL mi PostgreSQL mi?
MySQL cogu web uygulamasi ile uyumlu. PostgreSQL gelismis veri tipleri ve JSON icin ideal. CMS'ler genelde MySQL kullanir.
Veritabanim buyudu ne yapmaliyim?
Gereksiz verileri temizleyin, tablo optimize edin, arsivleme yapin, partitioning kullanin.
Ne siklikla yedek almaliyim?
Kritik veritabanlari saatlik, standart siteler gunluk. Buyuk degisikliklerden once manuel yedek.
Sonuc
Veritabani optimizasyonu uygulama performansini dogrudan etkiler. Indeksleme, tuning ve yedekleme ile veri katmaninizi guclendirin.
Veritabani Boyut Yonetimi
Buyuk Tablolar icin Stratejiler
- Partitioning: Tarihe gore tablolari bolumlendirin. Sorgu performansi artar.
- Arsivleme: Eski verileri arsiv tablolarina tasiyin.
- Sikistirma: InnoDB sikistirmasi ile disk kullanimini %50-75 azaltin.
WordPress Veritabani Optimizasyonu
- wp_options autoload: Gereksiz autoload kayitlari temizleyin.
- Post revisions: wp-config.php'de WP_POST_REVISIONS sinirlayin.
- Transient veriler: Suresi dolmus verileri duzenli temizleyin.
- Spam yorumlar: Toplu silin.
Veritabani Guvenlik
- Varsayilan portu degistirin
- Uygulama bazli kullanici olusturun
- Minimum gerekli yetki verin
- SSL ile baglanti sifreleyin
- Duzenli guvenlik taramasi yapin
Profesyonel Hosting icin Onemli Kriterler
Veri Merkezi Kalitesi
Veri merkezinin tier seviyesi, sunucu barindirma kalitesini dogrudan etkiler. Tier 3 veri merkezleri yedekli guc, soğutma ve ag altyapisi ile %99.982 uptime garantisi sunar. Buyukweb'in Bursa Pendc Tier 3 veri merkezi bu standartlari karsilamaktadir.
Teknik Destek Kalitesi
7/24 ulasılabilir, Turkce ve teknik bilgi sahibi destek ekibi hosting hizmetinin vazgecilmez parcasidir. E-posta, canli destek ve telefon kanallarindan hizli yanit almak ozellikle is surekliligi acisından kritiktir.
Olceklenebilirlik
Isletmeniz buyudukce hosting ihtiyaclariniz da degisir. Paylasimli hostingten VDS'e, VDS'den dedicated sunucuya sorunsuz gecis yapabilmek uzun vadeli planlamaniz icin onemlidir. Buyukweb tum bu gecis sureclerini ucretsiz olarak yonetir.
Yedekleme ve Felaket Kurtarma
Gunluk otomatik yedekleme, tek tikla geri yukleme ve uzak yedekleme secenekleri veri guvenliginiz icin sart. JetBackup ile profesyonel yedekleme cozumu tum Buyukweb hosting paketlerinde standarttir.
Guvenlik Katmanlari
SSL sertifikasi, WAF korumasi, malware tarama, DDoS korumasi ve guvenlik duvari - tum bu katmanlar birlikte calisiarak web sitenizi korur. Buyukweb bu guvenliklerin hepsini standart olarak sunar.
Uygulama ve Proje Ornekleri
Hosting ve sunucu hizmetleri farkli sektorlerde farkli ihtiyaclara karsilik gelir:
Kurumsal Web Sitesi
Sirket tanitim sitesi, blog, kariyer sayfasi ve iletisim formu icin paylasimli hosting yeterlidir. SSL, e-posta ve yedekleme dahil. cPanel ile kolay yonetim.
E-Ticaret Magaza
WooCommerce veya PrestaShop ile online magaza kurmak icin VDS oneriyoruz. Urun gorselleri, siparis yonetimi ve odeme entegrasyonu icin daha fazla kaynak gerekir.
SaaS Uygulamasi
Kendi yaziliminizi barindirmak icin dedicated sunucu veya VDS idealdir. Tam root erisim, ozel yapilandirma ve yuksek performans gerektirir.
Oyun Sunucusu
Multiplayer oyunlar icin dusuk gecikme suresi ve yuksek CPU performansi sart. GPU VDS ile grafik islem gerektiren oyun sunuculari calistirabilirsiniz.
Gelistirme Ortami
Test, staging ve CI/CD icin uygun fiyatli VDS paketleri kullanin. Docker ile gelistirme ortamlarinizi standartlastirin.
Her senaryo icin en uygun cozumu belirlemek icin Buyukweb teknik ekibine danisin: 0850 302 60 70.
Etiketler:

