
MySQL Yedekleme ve Geri Yükleme
Veri, günümüz dijital dünyasının en değerli varlıklarından biridir ve bu verilerin güvenli bir şekilde saklandığı veritabanları, iş sürekliliği için hayati bir rol oynar. Popüler açık kaynaklı bir veritabanı yönetim sistemi olan MySQL, sayısız uygulamanın bel kemiğini oluşturur. Bu nedenle, olası donanım arızaları, yazılım hataları, siber saldırılar veya insan kaynaklı hatalar gibi beklenmedik durumlara karşı verilerinizi korumak amacıyla düzenli MySQL yedekleme ve geri yükleme prosedürleri uygulamak zorunludur. Etkili bir yedekleme stratejisi, veri bütünlüğünü korumanın yanı sıra, bir felaket anında sisteminizi hızlıca tekrar çalışır duruma getirmenizi sağlar. Bu kılavuz, MySQL veritabanlarınızı nasıl güvenli bir şekilde yedekleyeceğinizi, ihtiyaç anında nasıl geri yükleyeceğinizi ve bu süreçleri nasıl otomatikleştireceğinizi ayrıntılı olarak açıklamaktadır.
Veritabanı yedekleme işlemleri, yalnızca bir güvenlik önlemi olmanın ötesinde, aynı zamanda stratejik bir yönetim aracıdır. Düzenli olarak alınan yedekler, veri taşınabilirliği, sistem geçişleri ve yazılım güncellemeleri sırasında da kritik bir öneme sahiptir. Veritabanının belirli bir zamandaki anlık görüntüsünü oluşturan bu yedekler, herhangi bir sorun yaşandığında zaman içinde geriye dönme esnekliği sunar. Bu sayede, veri kaybı riski en aza indirilirken, sistemin güvenilirliği ve dayanıklılığı artırılır. Başarılı bir yedekleme ve geri yükleme planı, işletmenizin operasyonel devamlılığını garanti altına alan en temel adımlardan biridir.
MySQL veritabanlarının düzenli olarak yedeklenmesi, çeşitli risklere karşı bir güvence sağlar ve sistemin genel sağlığı için temel bir gerekliliktir. Yedeklemenin neden bu kadar önemli olduğunu anlamak, doğru bir strateji oluşturmanın ilk adımıdır. Veri koruma ve sistem sürekliliği açısından yedeklemenin sağladığı temel avantajlar şunlardır:
MySQL veritabanlarını yedeklemek için en yaygın ve güvenilir yöntemlerden biri, komut satırı üzerinden çalışan mysqldump aracıdır. Bu araç, veritabanının yapısını (tablolar, görünümler, prosedürler) ve içeriğini (kayıtlar) yeniden oluşturmak için gerekli olan SQL ifadelerini içeren bir `.sql` dosyası oluşturur. Bu dosya, hem taşınabilir hem de evrensel olarak okunabilir olduğu için oldukça kullanışlıdır. `mysqldump` aracının temel kullanımı oldukça basittir ve yedekleme işlemini tek bir komutla gerçekleştirmenize olanak tanır.
Belirli bir veritabanını yedeklemek için `mysqldump` komutu aşağıdaki formatta kullanılır. Bu komut, belirtilen kullanıcı adı ile veritabanına bağlanır, parola ister ve ardından veritabanının tüm içeriğini `yedekdosyasi.sql` adlı bir dosyaya aktarır. Komutun yapısı ve parametreleri hakkında daha fazla teknik bilgiye resmi MySQL dokümantasyonundan ulaşabilirsiniz.
Örnek Komut:
mysqldump -u kullanici_adi -p veritabani_adi > yedekdosyasi.sql
Bu komuttaki parametreler şu anlama gelir: -u kullanici_adi, MySQL sunucusuna bağlanmak için kullanılacak kullanıcı adını belirtir. -p parametresi, komut çalıştırıldıktan sonra parolanın güvenli bir şekilde sorulmasını sağlar. veritabani_adi, yedeği alınacak olan veritabanının adıdır. Son olarak, > yedekdosyasi.sql ifadesi, komutun çıktısını standart bir metin dosyası yerine belirtilen dosyaya yönlendirir. Bu işlem, veritabanının tam bir mantıksal yedeğini oluşturur ve veri kaybı durumunda sistemi eski haline getirmek için gereken tüm bilgileri içerir.

Bir yedek dosyasının varlığı, ancak başarılı bir şekilde geri yüklenebildiği zaman anlamlıdır. MySQL’de geri yükleme işlemi, `mysqldump` ile oluşturulan `.sql` uzantılı yedek dosyasını kullanarak yapılır. Bu süreç için standart mysql komut satırı istemcisi kullanılır. Geri yükleme işlemi, yedek dosyasındaki SQL komutlarını hedef veritabanında sırayla çalıştırarak veritabanı yapısını ve verilerini yeniden oluşturur. Bu işlem, özellikle bir çökme sonrası kurtarma veya veritabanını yeni bir sunucuya taşıma senaryolarında kritik öneme sahiptir.
Geri yükleme işlemi için öncelikle yedeğin yükleneceği boş bir veritabanı oluşturmanız önerilir. Bu, mevcut verilerle çakışma riskini ortadan kaldırır. Ardından, aşağıdaki komut kullanılarak yedek dosyası bu yeni veritabanına aktarılır.
Örnek Komut:
mysql -u kullanici_adi -p yeni_veritabani_adi < yedekdosyasi.sql
Bu komut, `yedekdosyasi.sql` dosyasının içeriğini okur ve içerisindeki tüm SQL ifadelerini `yeni_veritabani_adi` olarak belirtilen veritabanında çalıştırır. < operatörü, dosya içeriğini komutun standart girdisine yönlendirir. İşlem tamamlandığında, yedek dosyasındaki tüm tablolar, veriler ve diğer yapılar hedef veritabanında oluşturulmuş olur. Bu yöntem, veri bütünlüğünü koruyarak hızlı ve güvenilir bir kurtarma sağlar.
Yedekleme işlemlerinin manuel olarak yapılması, unutulma ve insan hatası gibi riskler taşır. Bu nedenle, özellikle sürekli güncellenen ve kritik veriler barındıran büyük veritabanları için yedekleme sürecini otomatikleştirmek bir zorunluluktur. Otomatik bir yedekleme planı, yedeklerin düzenli ve tutarlı bir şekilde alınmasını garanti eder. Unix ve Linux tabanlı sistemlerde bu işlemi gerçekleştirmenin en yaygın yolu, cron adı verilen görev zamanlayıcıyı kullanmaktır.
Cron, belirli komutların veya betiklerin önceden tanımlanmış zamanlarda otomatik olarak çalıştırılmasını sağlayan güçlü bir araçtır. Cron kullanarak, `mysqldump` komutunu her gün, her hafta veya belirlediğiniz herhangi bir periyotta çalışacak şekilde programlayabilirsiniz. Örneğin, her gece yarısı veritabanınızı otomatik olarak yedeklemek için aşağıdaki gibi bir cron görevi tanımlayabilirsiniz.
Cron ile Otomatik Yedekleme Örneği:
0 0 * * * /usr/bin/mysqldump -u kullanici_adi -p'sifre' veritabani_adi > /yedekleme/yedekdosyasi_$(date +\%F).sql
Bu cron ifadesi, "her gün saat 00:00'da" belirtilen `mysqldump` komutunu çalıştırır. Komut, yedek dosyasının adını o günün tarihiyle (`yedekdosyasi_2026-01-23.sql` gibi) oluşturarak yedeklerin yönetimini ve takibini kolaylaştırır. Not: Güvenlik nedeniyle parolayı doğrudan komutun içine yazmak yerine, MySQL yapılandırma dosyalarını kullanmak daha güvenli bir yöntemdir.
Etkili bir otomatik yedekleme planı oluştururken dikkat edilmesi gereken bazı önemli faktörler bulunmaktadır:
Otomatik yedekleme sistemleri kurulduktan sonra "ayarla ve unut" yaklaşımı doğru değildir. Bu süreçlerin düzgün çalıştığından emin olmak için sürekli izleme ve bakım gereklidir. Yedekleme betiklerinin oluşturduğu günlük (log) dosyalarını düzenli olarak kontrol ederek olası hataları (örneğin, disk alanının dolması, izin sorunları) tespit edebilirsiniz. Başarısız olan yedekleme işlemleri için otomatik uyarılar ayarlamak, sorunlara anında müdahale etmenizi sağlar. Ayrıca, depolama alanını verimli kullanmak için eski yedek dosyalarını belirli bir süre sonra otomatik olarak silen bir rotasyon şeması (örneğin, son 30 günlük yedeği sakla) oluşturmak önemlidir.