26 Haziran 2012 Salı

mysqldump kullanımı

mysqldump komutu veritabanının yedeğini almak için ve bu yedekleri geri yüklemek için kullanılan bir komuttur. Veritabanının yedeğini almak derken, yapabileceğimiz işlemler kısıtlı değildir. Tek bir veritabanının yedeğini almak, birden çok veritabanının yedeğini almak, tüm veritabanlarının yedeğini almak, tek bir veritabanından seçtiğimiz tabloların yedeğini almak gibi işlemleri yapabiliriz. mysqldump komutunun kullanımı aşağıdaki 3 şekilde özetlenebilir.
  mysqldump [OPTIONS] database [tables]  mysqldump [OPTIONS] --databases [OPTIONS] DB1  mysqldump [OPTIONS] --all-databases [OPTIONS]  
Parametrelerinden bahsedecek olursak; --add-drop-database(--add-drop-database) ve --add-drop-table(--add-drop-table) parametreleri, alacağımız yedeğe CREATE DATABASE ve DROP DATABASE ekler. Böylece yedeği geri yüklerken, eğer tablo varsa, olası bi hatadan kurtulmuş oluruz. --default-character-set=utf8(--default-character-set=utf8) parametresi ile (dikkat: default kelimesinden önce 2 adet çizgi var, diğerleri tek çizgi)(utf8 yerine başka bir seçenek de yazabiliriz) dil seçeneğini belirleyebiliriz. Böylece geri yüklemelerde türkçe karakter problemi yaşamanın önüne geçeriz. --add-locks(--add-locks) parametresi ile yedekleme sırasında tabloları kilitleyebiliriz. Böylece yedeklerken tablolara yeni veri yüklenemez, böylece yedekleme işlemimizin süresi kısalabilir. Örnek vererek açıklamaya çalışayım. 3 adet veritabanımız, bunların içinde de 2'şer tane tablomuz olduğunu varsayalım. veritabanı : Log tabloları : mysql_error, php_error veritabanı : Users tablolaro : admin, customer veritabanı : Blog tabloları : options, comments Tek bir veritabanının yedeğini alalım;
  mysqldump -u root -p Log > log.sql  
Log veritabanındaki tüm tabloları log.sql olarak yedekledik. log.sql'in başına dosya yolu da ekleyebiliriz. Örneğin A:/test/yedekler/log.sql gibi bir yere de yedekleyebiliriz. Dil seçeneğini nasıl kullanacağımıza bakalım;
  mysqldump -u root -p --default-character-set=utf8 Log > log.sql  
--add-drop-database kullanarak yedekleyelim bir de
  mysqldump -u root -p --add-drop-database --default-character-set=utf8 Log > log.sql  
Tek veritabanından tek bir tabloyu yedekleyelim;
  mysqldump -u root -p Users customer > usersCustomer.sql  
Birden çok veritabanının yedeğini alalım;
  mysqldump -u root -p --databases Users Blog > usersAndBlog.sql  
Tüm veritabanlarının yedeğini alalım;
  mysqldump -u root -p --all-databases > allMysqlDb.sql  
Aldığımız yedekleri geri yüklemek istediğimiz zaman da yapmamız gereken çok basit;
  mysqldump -u root -p {veritabanı adı} < {yedek}    mysqldump -u root -p Log2 < log.sql  
Devamı için : mysqldump kullanımı

Hiç yorum yok:

Yorum Gönder

Yorumunuzu esirgemeyiniz..