MySQL Hızlı Yedek Alma

  • 15.50.2015
  • tayyipyetis
  • MySQL

mysql hizli yedek alma Merhaba, bu makalede MySQL ile kolay ve hızlı yedek alma yönteminden bahsedeceğim. Normalde yedek almak için daha fazla kod yazmanız gerek ama bu problemi bizden önce farkeden bazı geliştiriciler çözümü de bizden önce bulmuşlar. Codeplex üzerinde açık kaynak kodlu olarak dağıtılan MySqlBackup.net projesi ile tek bir dll ile kolayca yedek alıp yedeğinizi de veritabanınıza import edebiliyorsunuz. Örneği inceleyin.

string connectionstring= "server=localhost;user=kullanici;pwd=sifre;database=veritabani;";
string yedek= "C:\\backup.sql";
MySqlConnection conn = new MySqlConnection(connectionstring);
MySqlCommand k = new MySqlCommand("", conn);
MySqlBackup back = new MySqlBackup(cmd);
conn.Open();
back.ExportToFile(yedek);
conn.Close();

Yukarıdaki örnek ile belirtilen sql dosyası oluşturularak veritabanınızı export edebilirsiniz. Eğer uzun süren işlemlerde durumu takip etmek istiyorsanız ExportProgressChanged event'ini kullanabilirsiniz

string connectionstring= "server=localhost;user=kullanici;pwd=sifre;database=veritabani;";
string yedek= "C:\\backup.sql";
MySqlConnection conn = new MySqlConnection(connectionstring);
MySqlCommand k = new MySqlCommand("", conn);
MySqlBackup back = new MySqlBackup(cmd);
back.ExportProgressChanged += new MySqlBackup.exportProgressChange(degisti);
conn.Open();
back.ExportToFile(yedek);
conn.Close();

private void degisti(object obj, ExportProgressArgs arg)
{
   string simdikitablo = arg.CurrentTableName;
}

CurrentTableName property ile o an işlenen tablonun ismini alabilirsiniz. Ayrıca ExportCompleted ile export işlemi tamamlandığında ImportCompleted ile import işlemi tamamlandığında ImportProgressChanged ile import yaparken event'lar oluşturabilirsiniz. ExportInfo sınıfını kullanarak export ile ilgili konfigürasyonları sağlayabilirsiniz. örneğin tabloların, view'ların, fonksiyonların vs. export edilip edilmeyeceğini ve bir çok ayarları yapabilirsiniz. Diğer bir özellik ise ExportToMemoryStream, ExportToString, ExportToTextWriter sınıfları ile değişik objelere export yapabilirsiniz. import işlemi için ise aşağıdaki örneği inceleyin

string connectionstring= "server=localhost;user=kullanici;pwd=sifre;database=veritabani;";
string yedek= "C:\\backup.sql";
MySqlConnection conn = new MySqlConnection(connectionstring);
MySqlCommand k = new MySqlCommand("", conn);
MySqlBackup back = new MySqlBackup(cmd);
conn.Open();
back.ImportFromFile(yedek);
conn.Close();

yukarıdaki şekilde de veritabanına sql dosyası import edebilirsiniz. EncryptDumpFile ve DecryptDumpFile fonksiyonları ile yedek dosyalarını şifreleyip şifreyi çözebilirsiniz. Umarım faydalı olmuştur. yorumlarınızı bekliyorum.

Mustafa Tayyip YETİŞ
Yazılım Geliştirme Uzmanı

Yorum Yap