Merhabalar, sistem yöneticileri için yedek almak oldukça önemli bir işlemdir. Yönettiğiniz sunucunun başına her hangi bir sorun geldiğinde, sistemi kısa sürede eski haline getirmeniz beklenir. Bu nedenle düzenli olarak sistemin yedeklenmesi gerekir. Bu yazıda Mysql veri tabanı yedeği almak için kullanılan kullanışlı bir uygulamadan bahsedeceğim.
NOT: Eğer mysql-client-5.7.8 ve üzeri sürümleri kullanıyorsanız mysqldump yerine mysqlpump komutunu kullanmanız performans açısından daha iyi olacaktır.
Mysqldump
Mysqldump uygulaması Mysql(mysql-client-5.7) kurulumu ile birlikte sisteminize kurulan bir uygulamadır. Benim düşünceme göre mysql yedeği almak için kullanılacak en kullanışlı uygulamadır. Mysqldump kullanımı oldukça basit. Mysqldump ile tüm veritabanlarını, belli veritebenlarını, bir veri tabanının tüm tablolarını yada istediğiniz tablolarını yedekleyebilirsiniz. Mysqldump uygulamasının temel söz dizimi aşağıdaki gibi,
mysqldump [arguments] > file_name
mysqldump uygulamasının mysql sunucusu ile bağlantı kurması için –host, –user ve -password parametrelerini kullanıyoruz. –host parametresini kullanmazsanız localhost üzerindeki mysql sunucusuna bağlanacaktır. –user parametresini kullanmazsanız konsolda aktif olan kullanıcı adı otomatik olarak kullanılacaktır. –password parametresini kullanmadığınızda şifre kullanmadan giriş yapmayı deneyecektir. Bu parametreler yerine – ve parametre ilk harfi şeklinde kullanabilirsiniz, –host için -h gibi.
Yedek Alma İşlemi
Şimdi gelelim yedek alma işlemine. Tüm veri tabanının yedeğini almak için:
mysqldump -u root -p --all-databases > yedek.sql
bu komutu çalıştırdığınızda root kullanıcısının şifresini girmesini isteyecektir. Şifreyi girdikten sonra şuan bulunduğunuz dizine yedek.sql dosyasına tüm veri tabanınızın yedeğini oluşturmuş olacaksınız. İstediğiniz bir veritabanının yedeğini almak için :
mysqldump -u root -p --databases veritabanıismi > veritabanı_yedek.sql
bir veri tabanı içerisindeki tüm tabloların yedeklerini almak için:
mysqldump -u root -p veritabanıismi > yedek_veritabani_tablolar.sql
belli bir veri tabanında sadece belli teabloları almak için:
mysqldump -u root -p veritabanıismi tablo1 tablo2 > yedek_tblo1_tablo2.sql
Yedeklerin Geri Yüklenmesi
Aldığımız veri tabanı yedeklerinin geri yüklenmesi oldukça kolay. Yedekleri geri yüklemek için mysql komutunu kullanacağız. daha önceden aldığımız tüm veri tabanı yedeğini yüklemek için
mysql -u root -p < yedek.sql
aldığımız bir veri tabanı yedeğini yüklemek için :
mysql -u root -p < veritabanı_yedek.sql
veri tabanı içerisindeki bir tabloları yada bir tabloyu içeren yedeği geri yüklemek için:
mysql -u root -p veritabanıismi < yedek_veritabani_tablolar.sql
yada
mysql -u root -p veritabanıismi < yedek_tblo1_tablo2.sql
komutlarını kullanarak yedeklerinizi yükleyebilirsiniz. Dikkat etmek gereken tek nokta eğer bir tablo yedeği yüklüyorsak tabloyu yükleyeceğimiz veritebanı nı belirtmemiz gerekiyor.
Umarım faydalı bir yazı olur. İyi günler, iyi çalışmlar.
işimize yaradı çok teşekkür ederim.
Bu komudu otomatik zamanlama ile çalıştırabilirmiyiz ? her gün akşam 20.00 yedek alsın
Cronjob ile yapılabilir. Nasıl yapıldığını yazacaktım ama vakit ayırıp yazamadım
İçeri alırken veri tabanı ismini değiştirebilir miyiz veya farklı isimdeki veri tabanına aktarım nasıl yapılır?