MySQL Veritabanında Yedekleme


Herhangi bir veri kaybı yaşamadıysanız, yaşamayacağınız anlamına gelmez. Bu nedenle, kötü bir durumla karşılaşmadan, işi garantiye alınız ve hangi veritabanını kullanıyorsanız kullanın mutlaka yedekleme yapınız.
 
Ara sıra yaptığınız yedeklemeleri başka bilgisayarda geri yükleyerek de test ediniz. Çünkü sık karşılaşılan durumlardan biri yedeklere güvenerek, test etmeden yola devam etmektir. Günlük hayatta da illa ki başınıza gelmiştir, ya sıkıştırdığınız dosyada bozulma olur açamazsınız, ya yedekleme yaptığınız dosyalarda eksiklikler vardır, ya da yedekleme programı hata vermiştir fakat siz görmemişsinizdir. İşte bu durumlarla karşılaşmamak için yedeklerinizi bir de geri yüklemeyi seçin, içiniz rahat olsun.



Şimdi gelelim MySQL Veritabanını yedekleme işlemine. PhpMyAdmin kullanıyorsanız ya da böyle bir arayüze erişim yetkiniz varsa,  PhpMyAdmin'de ana pencerede Dışarı Aktar (Export) ile yedekleme yani backup işlemini yapıp, daha sonra İçeri Aktar (Import) ile geri yükleme yani restore işlemini yapabilirsiniz.






Peki komut satırından nasıl yedekleme yapacağız? Bu işlem için mysqldump aracını kullanacağız. MySQL'i kurduğunuz bin dizini içinde bu mysqldump.exe dosyasına rastlayacaksınız.

MySQL veritabanını yedekleme işletim sistemine göre farklılık gösterir. Genelde MySQL, Unix/Linux tabanlı sistemlere yaygınken, Windows tabanlı sistemlere de kurulduğunu ve kullanıldığını sıklıkla görüyoruz.

Windows türevi (Windows 2003, 2008, 2012) sunucularda ise aşağıdaki komut satırını PHP içinden çalıştırdığızda işinizi görecektir.

exec("mysqldump VeritabanıAdi  -u KullaniciAdi  -p Parola > yedekDosyaAdi.sql");

Bu şekilde çalıştırdığınızda yedekleme işlemi başlayacaktır. Örneğin kendi bilgisayarımda Wamp kurulu ve yedekleme yapmak için C:\wamp\bin\mysql\mysql5.6.17\bin klasörüne girdim. Bu klasöre sık sık girmek istemiyorsanız PATH komutu ile yol tanımı yapabilir, böylece mysqldump dosyasını direkt çalıştırabilirsiniz.


Yukarıdaki komut satırıyla webblog isimli veritabanını yedekleyerek yedekBlog.sql dosyasını oluşturduk. Dikkat ederseniz şifre yazmadık, çünkü wamp kurulurken kullanıcı adı root, şifre ise boşluktur. Bu nedenle şifre sorduğunda Enter'e basarak geçtik.





Linux/Unix türevi sistemlerde de benzer şekilde yedeklemeyi, terminal(console) ekranında, veritabanı yönetim yetkisine sahipseniz yapabilirsiniz. PHP içinden aşağıdaki şekilde çalıştırabilirsiniz.








$dosya = "yedekVeritabanı.sql" ;
system("mysqldump --opt -h -u KullanıcıAdi -p Parola  VeritabanıAdı | gzip >".$dosya ;);

Şimdilik anlatacaklarım bu kadar, farklı kodlar bulup, deneyebilirsiniz. Hatta Linux'de cronjob ile, Windows İşletim Sisteminde de Task Scheduler (Görev Zamanlayıcı) ile yedeklemenin belli bir zamanda başlamasını sağlayabilirsiniz. Örneğin her gün gece saat 04:00'de yedeklesin diyebilirsiniz.

İyi çalışmalar ve veri kayıpsız günler dileğiyle,

Ocak 2015
Oğuzhan TAŞ

 

Bookmark and Share