Jump to content
Sign in to follow this  
HeaveN

mysql database yedekleme

Recommended Posts

MySQL Yedekleme Teknikleri

YEREL:

Yedekle:

mysqldump -u user -p password database > yedek_database.sql

Sıkıştırılmış olarak Yedekle:

mysqldump -u user -p password database | gzip > yedek_database.sql.gz

Geri yükle:

mysql -u user -p password database < yedek_database.sql

INTERNET ÜZERİNDEN:

Yedekle:

mysqldump -u user -h HOST -p --opt database > yedek_database.sql

Sıkıştırarak yedekle:

mysqldump -u user -h HOST -p --opt database | gzip > yedek_database.sql.gz

Geri yükle:

mysql -u user -h HOST dbname -p < dbname.sql

Sıkıştırılmış dosyayı geri yükle:

cat dbname.sql.gz | gunzip | mysql -u user -h HOST dbname

Mysql'de bulunan bütün db'leri tek komutla yedeklemek için şu konutu kullanın;

mysqdump -uuser -ppass -A > all_db_yedek.sql

MySQL yedekleme önemli bir konu olduğu için bir kaç ekleme daha yapmakta fayda vardır diye düşünüyorum.

Diyelimki MySQL db'niz var ve bu db 'nin boyu çok büyük, bilgilerinizin tamamını değilde sadece çok kullanılan önemli bir tabloyu yedeklemek istiyoruz.

Sadece belirtilen tabloyu yedeklemek için;

mysqldump -uroot -p database tablo > tabloadi.sql

Tabloyu sıkıştırarak almak için eklememiz gerek parametse gzip;

mysqldump -uroot -p database tablo | gzip > tabloadi.sql

Durumdan da anlaşılacağı gibi gzip programının sisteminize yüklü olması gerekiyor.

Daha başka yöntemlerde var, mesela her seferinde tabloların almaya gerek olmayabilir, yani sadece verileri indirmek yeterli olacaktır. O zaman eklememiz gereke parametre --no-create-info

mysqldump -uroot -p --no-create-info database tablo > tabloadi.sql

Peki sadece tabloları boş olarak indirmek istersen o zaman stringimiz şu şekilde olacaktır;

mysqldump -uroot -p --no-data database tablo > tabloadi.sql l

Daha da çok işinize yarayacak bir yöntemi kullanabiliriz. Diyelim ki db'nize her gün yüzlerce kayıt giriyor ve db'niz günden güne büyüyor. DB'yi her gün yedeklemek çok olacaktır ve gereksiz bir sürü bw harçanmasına neden olacaktır.

Benimde kullandığım bir yöntemle onunda üstesinden gelmem mümkün. DB'yi bir kere indirdikten sonra sadece eklenen verileri indirmeye ne dersiniz. Değil mi çok mantıklı sadece yeni eklenen verileri indirmek ciddi bir zaman ve bw ekonomisi sağlayacaktır.

Verilerinizi girerken her db'de mutlaka verilerin kayıt olduğu tarihte db'ye girilmektedir. O zaman sadece o gün girilen verileri yedekleyelim;

Yedekleme yapmadan önce verilerin zaman bilgilerinin nasıl girildiğini bilmekte fayda vardır.

mysqldump -uroot -p db tablo --where zaman='20-10-2006' > gunlikveri.sql

Buradaki zaman db'deki zaman bilgisinin saklandığı hücrenin adıdır.

Verileri net üzerinden yedekliyorsanız -h sunucu parametresini eklemeniz gerektiğini yukarıda belirtmiştik.

MySQL yedekleme teknikleri daha ayrıntılı bilgilerini vermeye devam edeceğim.

Edited by Oscar

Share this post


Link to post
Share on other sites

.sql db yi geri yükleyeceğim. yukarıdaki kodları nereye yazmalıyım?

Share this post


Link to post
Share on other sites

.sql db yi geri yükleyeceğim. yukarıdaki kodları nereye yazmalıyım?

Burada verilen kodları Linux konsolundan root yetkileriniz veya db erişim bilgilerini varsa kullanabilirsiniz. ;)

Edited by Oscar

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×
×
  • Create New...