Sunucu ve Veritabanı İçin Otomatik Yedekleme Sistemi

Yedeğiniz var mı sorusundan daha önemli olan, o yedekten gerçekten geri dönüp dönemeyeceğinizdir. Sunucu ve veritabanı için güvenilir bir otomatik yedekleme düzenini anlattım.

İçindekiler
  1. Neden manuel yedek yeterli değil?
  2. Neleri yedeklemelisiniz?
  3. 3-2-1 kuralı: Yedeği nerede tutmalı?
  4. Otomatik yedekleme sistemi nasıl kurulur?
  5. Geri yükleme testi: Yedeğin tek gerçek kanıtı
  6. Bu işi nasıl birlikte yaparız?
  7. Sık sorulan sorular
  8. Sonuç

Bir sabah sitenizin açılmadığını, veritabanının bozulduğunu ya da yanlışlıkla silinen bir tablonun son üç ayın siparişlerini götürdüğünü düşünün. O anda soracağınız tek soru şudur: en son ne zaman yedek alındı ve bu yedek çalışıyor mu? Bu yazıda sunucu ve veritabanı için güvenilir bir otomatik yedekleme sistemi kurarken nelere karar vermeniz gerektiğini, sık yapılan hataları ve geri yükleme testinin neden vazgeçilmez olduğunu anlatıyorum.

Neden manuel yedek yeterli değil?

“Ayda bir panelden yedek indiriyorum” yaklaşımı, iyi niyetli ama kırılgandır. İnsanlar unutur, yoğun dönemlerde ertelenir ve indirilen dosya çoğu zaman aynı bilgisayarda, test edilmeden durur. Üstelik veri kaybı genellikle en son yedekten haftalar sonra yaşanır.

Otomatik yedekleme bu riski kişiye bağlı olmaktan çıkarır. Yedek her gün aynı saatte alınır, belirlenen yere gönderilir, eski kopyalar kurala göre silinir ve bir şey ters giderse size haber verilir. WordPress özelinde eklenti tabanlı yöntemleri WordPress yedekleme yazısında anlattım; bu yazı ise sunucu düzeyinde, her tür uygulama için geçerli bir yapıya odaklanıyor.

Neleri yedeklemelisiniz?

Bir web uygulamasında yedeklenmesi gereken her şey tek bir yerde durmaz. Eksiksiz bir yedek şu parçaları kapsar:

  • Veritabanı: Siparişler, üyeler, randevular, içerikler; işletmenin en değerli ve en hızlı değişen verisi.
  • Kullanıcıların yüklediği dosyalar: Ürün görselleri, belgeler, faturalar.
  • Yapılandırma dosyaları: Web sunucusu ayarları, ortam değişkenleri, Docker Compose dosyaları.
  • Uygulama kodu: Kod bir sürüm kontrol deposunda tutuluyorsa oradan geri alınabilir; tutulmuyorsa yedeğe dahil edilmelidir.
  • SSL ve erişim bilgileri: Güvenli bir şekilde, ayrı tutulmak kaydıyla.

Veritabanını dosya gibi kopyalamayın

Çalışan bir veritabanının dosyalarını doğrudan kopyalamak, tutarsız ve geri yüklenemeyen bir yedekle sonuçlanabilir. Bunun yerine veritabanının kendi döküm (dump) araçları ya da tutarlı anlık görüntü yöntemleri kullanılmalıdır. MySQL ve MariaDB için mysqldump, PostgreSQL için pg_dump bu işin yaygın araçlarıdır.

3-2-1 kuralı: Yedeği nerede tutmalı?

Yedekleme dünyasında sık anılan bir ilke vardır: 3-2-1 kuralı. Verinin en az üç kopyası olmalı, bu kopyalar en az iki farklı ortamda bulunmalı ve en az biri farklı bir fiziksel konumda saklanmalıdır.

Pratikte bu, sunucudaki canlı veriye ek olarak bir kopyanın aynı sağlayıcının farklı bir depolama alanında, bir kopyanın da tamamen farklı bir sağlayıcıda veya konumda tutulması anlamına gelir. Yedeği yalnızca aynı sunucuda tutmak, sunucu çöktüğünde ya da ele geçirildiğinde yedeği de kaybetmek demektir.

Yedek konumu Avantajı Riski
Aynı sunucu Hızlı geri dönüş Sunucuyla birlikte kaybolur
Sağlayıcının anlık görüntüsü Tüm sunucuyu tek adımda geri alma Sağlayıcı hesabına bağlıdır
Harici nesne depolama Sunucudan bağımsız, uygun maliyetli Erişim anahtarları korunmalı
Farklı sağlayıcı veya ofis Hesap veya bölge sorunlarına karşı koruma Kurulumu biraz daha zahmetli

Otomatik yedekleme sistemi nasıl kurulur?

Sağlam bir yapı, birkaç basit parçanın doğru birleştirilmesinden oluşur:

  1. Yedek betiği: Veritabanı dökümünü alır, dosyaları arşivler, sıkıştırır ve tarihle adlandırır.
  2. Şifreleme: Yedekler sunucudan çıkmadan önce şifrelenir; böylece depolama alanı ele geçirilse bile veri okunamaz.
  3. Zamanlama: Betik, yoğunluğun az olduğu bir saatte otomatik çalıştırılır.
  4. Uzak konuma gönderme: Arşiv, sunucu dışındaki depolama alanına aktarılır.
  5. Saklama politikası: Örneğin son birkaç günün günlük, son birkaç haftanın haftalık ve son birkaç ayın aylık kopyaları tutulur.
  6. Bildirim: Yedek başarısız olursa e-posta veya mesajla haber verilir.

Zamanlama genellikle Linux’un cron aracıyla yapılır. Her gece saat 03:00’te bir yedek betiğini çalıştıran satır şöyle görünür:

0 3 * * * /opt/yedek/yedek-al.sh

Burada asıl iş betiğin içindedir: hatalara karşı kontrol, şifreleme, gönderim ve bildirim. Bu satır yalnızca “ne zaman” sorusunu cevaplar.

Ne sıklıkla yedek almalısınız?

Doğru sıklık, ne kadar veri kaybını göze alabileceğinize bağlıdır. Haftada bir güncellenen bir kurumsal site için günlük yedek fazlasıyla yeterlidir. Gün boyu sipariş alan bir e-ticaret sitesi veya randevu sistemi içinse veritabanının gün içinde birkaç kez yedeklenmesi düşünülmelidir. Soruyu şöyle sorun: “Son kaç saatin verisini kaybetsem işim etkilenir?”

Geri yükleme testi: Yedeğin tek gerçek kanıtı

Yıllarca düzenli alınan yedeklerin, ihtiyaç anında boş ya da bozuk çıktığı vakalar hiç de nadir değildir. Bir yedeğin çalıştığını kanıtlamanın tek yolu, ondan gerçekten geri yükleme yapmaktır.

  • Belirli aralıklarla bir yedeği ayrı bir test ortamına geri yükleyin.
  • Sitenin açıldığını, son siparişlerin veya kayıtların yerinde olduğunu kontrol edin.
  • Geri yüklemenin ne kadar sürdüğünü not edin; bu süre, kriz anında sitenizin ne kadar kapalı kalacağını gösterir.
  • Adımları yazılı hale getirin; kriz anında hatırlamaya çalışmak hataya açıktır.

Bu işi nasıl birlikte yaparız?

Sunucunuz veya uygulamanız için güvenilir bir otomatik yedekleme sistemi kurmak istiyorsanız birlikte şöyle ilerleriz:

  1. Veri haritası: Hangi verilerin nerede durduğunu, ne sıklıkla değiştiğini ve ne kadar kayba tahammül edebileceğinizi konuşuruz.
  2. Plan ve teklif: Yedek sıklığı, saklama süresi, depolama konumları ve şifreleme yöntemini içeren yazılı bir plan ve teklif hazırlarım.
  3. Kurulum ve geri yükleme testi: Yedek betiklerini ve zamanlamayı kurar, ilk yedeği ayrı bir ortama geri yükleyerek doğrularım.
  4. Teslim ve takip: Geri yükleme adımlarını belgeler, başarısız yedek bildirimlerini ayarlar ve isterseniz periyodik testleri sizin için yaparım.

Mevcut yedek düzeninizi birlikte değerlendirmek için bana yazabilirsiniz. Yeni bir sunucu kuruyorsanız yedeklemeyi baştan planın parçası yapmak için sunucu kurulumu kontrol listesine de göz atabilirsiniz.

Sık sorulan sorular

Hosting firmam zaten yedek alıyor, yine de gerekli mi?

Sağlayıcı yedekleri faydalıdır ama kapsamı, saklama süresi ve geri yükleme koşulları her zaman sizin ihtiyacınıza uymayabilir. Ayrıca aynı hesaba bağlı oldukları için hesap sorunlarında erişilemez hale gelebilirler. Kendi kontrolünüzdeki bağımsız bir kopya, güvenli tarafta kalmanızı sağlar.

Otomatik yedekleme sistemi siteyi yavaşlatır mı?

Yedekler yoğunluğun az olduğu saatlerde ve doğru araçlarla alındığında ziyaretçiler etkilenmez. Büyük veritabanlarında tutarlı döküm yöntemleri kullanmak, tabloların kilitlenmesini önler.

Yedekler ne kadar süre saklanmalı?

İşletmenin ihtiyacına ve yasal yükümlülüklere göre değişir. Hatalı bir değişikliğin ancak haftalar sonra fark edilebileceğini düşünerek yalnızca son birkaç günü değil, daha eski dönemleri de kapsayan bir saklama düzeni kurmak mantıklıdır. Kişisel veri içeren yedeklerde saklama süreleri için hukuki destek almanızı öneririm.

Fidye yazılımına karşı yedekler nasıl korunur?

Yedeklerin sunucudan silinemeyecek veya değiştirilemeyecek şekilde ayrı bir konumda tutulması, erişim anahtarlarının yalnızca yazma yetkisine sınırlanması ve eski kopyaların saklanması en etkili önlemlerdir.

Sonuç

İyi bir otomatik yedekleme sistemi; doğru verileri kapsar, şifreler, sunucu dışına taşır, eski kopyaları düzenli tutar ve en önemlisi düzenli olarak geri yüklenerek test edilir. Verilerinizi güvence altına almak için destek isterseniz iletişim sayfasından ulaşabilirsiniz.