mehmetduran.com - Paylaşmak Güzeldir...
Asp.net ile MySql Veritabanının Yedeğini (Dump) Alma
Bu yazımda Mysql veritabanının yedeğini (dump) almayı göstermeye çalışacağım. Sınav dönemi pek bloğumla ilgilenemiyorum ancak sınavlara çalışma zamanı dışında aklımda olan uygulamaları tamamlamaya çalışıyorum. Bunlardan en önem verdiğim uygulama ise Asp.net ile MySql veritabanının yedeğini almaktı. Bunu da az bir uğraş sonucu başardım. Bunu yapmaktaki amacım ise; tamamen kendi yapımım olan bloğumun yönetim panelini de en iyi seviyeye getirmek. Bu bakımdan önemli eksikliklerden olan veritabanı yedek alma olayını sitemin yönetim panelinden yapabileceğim. Böylece her defasında hostumun sağlamış olduğu phpmyadmin uygulamasına bağlanmama gerek kalmayacak. Şimdi bu uygulama yapmak için yapmamız gerekenlere bakalım.

Öncelikle Mysql veritabanının yedeğini almak için Mysql'in içinde yer alan exe dosyalarından mysqldump.exe dosyasını kullanacağız. Bu dosya Mysql kurulumu ile gelen dosyalar ve Mysql'i kurduğumuz dizinin altında bin klasörü içinde yer alır. Asp.net ile Mysql'in yedeğini almak için bu exe dosyasının dizin adresini tam olarak bilmemiz gerekiyor. Aksi halde yedek alma olayını gerçekleşritemeyiz. Bu dizin adresini kendi bilgisayarımızda kolayca elde edebiliyoruz. Ancak serverda kullanabilmek için serverda kurulu olan Mysql'in dizinini bilmemiz gerekir. Bu dizini öğrenmek için hostumuzun phpmyadmin desteği varsa phpmyadmin ile öğrenebiliriz. Eğer öğrenemez isek host sahiplerinden destek alıp bu bilgiyi elde edebiliriz.

Diğer bir nokta da yedek aldığımız veritabanı bilgilerini sql uzantılı bir dosyada saklayacağız. Bu dosyayı nereye yerleştireceğimizi de kendimiz belirleyeceğiz.

Son olarak tüm bilgiler doğrultusunda kodumuzu yazmak kaldı. Kodumuzda Asp.net Process sınıfını kullanacağız.(System.Diagnostics namespace'ni eklemeliyiz.) Bu sınıf ile istediğimiz exe dosyalarını çalıştırabiliyoruz. Yedek için çalıştırmamız gereken exe dosyasını bu sınıf yardımı ile çalıştıracağız. Aşağıda çalışan  ve yedek alma sonucu elde ettiğimiz dosyayı okuyan kodları görebilirsiniz.

    Process.Start("c:\\program files\\mysql\\mysql server 5.0\\bin\\mysqldump.exe", "-ukullanici_adi -psifre veritabani_adi -rc:\\yedek.sql");
 
    FileStream st = new FileStream("c:\\yedek.sql", FileMode.Open);
    StreamReader sr = new StreamReader(st);
    string metin = sr.ReadToEnd();
    st.Close();
 
    Response.Write(metin);

Mysql ile yedek alma sorgumuz yukarıda görüldüğü gibidir. Bu sorgulamayı ve özelliklerini daha ayrıntılı biçimde belirtebiliriz. Ancak en temel kullanımlarından biri yukarıda yazmış olduğum biçimdir.

Böylelikle Asp.net uygulamalarımızda Mysql veritabanının yedeğini alabiliriz. Bu çalışmayı kendi hostumda denedim ve sorunsuzca çalışıyor. Sınavlarımın ardından yönetim paneline bu özelliği eklemeyi düşünüyorum. İlgilenenlere faydası olabilir düşüncesiyle de buradan paylaştım.

İyi Çalışmalar!
Mehmet Duran 11 Ocak Pazar 2009 4 15467 4,0
Bookmark and Share
Bu Yazıyı Değerlendirin.
Konuyla İlgili Olabilecek Diğer Yazılar Asus P565'imi Windows Mobile 6.5'e Yükselttim Jcrop ve Asp.net ile Resimleri Kesme (Örnek Dahil) Microsoft Yaz Okulu İkinci Haftanın Ardından Stajım Microsoft Yaz Okulu'nda Citroen C3 Picasso Sahibiyiz
Yorumlar
Yorum Yaz
RSS Yorum Takibi
Özgür 12 Ocak Pazartesi 2009 02:13 #1
Merhaba. Makale için teşekkürler. Mysql ile ilgili bir konuda bir kaç bişey söylemem lazım. MySql`i biraz kurcaladım. MySQL`de Stored Procedure ve View kavramları ya yok ya da çok yeni. Bu açıdan bakarsak MySQLin MSSQLden çok geride kaldığını düşünüyorum. Sırf bu iki özellik bile kullanıcıya çok büyük kolaylıklar sağlıyor. Sorgu karmaşasından kurtarıyor. Bu aralar forum yazmaya başlayacam. Çok da zamanım yok. Veritabanı olarak mysql kullanmayı düşünüyordum ama vazgeçeceğim galiba. Ne dersin?
Mehmet Duran 12 Ocak Pazartesi 2009 10:23 #2
Merhaba. Öncelikle Mysql`de view stored procedure gibi özellikler mevcuttur. Stored procedure hakkında yazım da var. Ancak bazı özellikler bakımından ms sql`e göre eksiklikleri olduğu doğru. Yaptığın projede hangisini kullanacağın sana kalmış. Ancak mysql oldukça performans sağlıyor. Tercih sana kalmış.
Enver 02 Kasım Salı 2010 11:45 #3
Merhaba Yukarıdaki işlemi uyguladığımda yedek almayı başardım ancak dosyayı okulaya çalıştığımda başka bir program tarafından kullanımda hatası alıyorum. Nerede yanlış olabilirim acaba
Mehmet Duran 02 Kasım Salı 2010 15:57 #4
@Enver, burada kullanmış olduğun ve metin dosyasına yazma işlemi yapan nesneden dolayı ahatyı alıyorsun sanırım. Nesneyi close veya flush metotları ile sonlandırmayı unutma.
İsim :
Site :
Yorum :

Buradan bu yazıya ait yorumları RSS olarak takip edebilirsiniz.

Bu servis ile yazılara eklenen yorumları RSS ile takip ederek konu ile ilgili başkaları tarafından yapılan yorumları veya konuyla ilgili sorduğunuz sorulara verilen cevapları görebilirsiniz.
Gençken bilgi ağacını dikmesek, yaşlandığımız zaman gölgesine sığınacak bir yerimiz olmayacaktır.
Bölümler
Yazılar
Arşiv
Arama
Linkler
Site İçi Arama
Son Zamanlarda Ne Yapıyorum ?
İstatistikler - Araçlar - Reklam
İstatistikler
Sayaç
Mehmet Duran | mehmetduran.com | Copyright © 2009