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 komutu 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.
