Büyük Database’leri Sql Dump İle Yedekleme Ve Geri Yükleme
Mysql de adını bildiğimiz bir veritabanının yedeğini almak için mysqldump komutunu kullanabiliriz, basitçe kullanımı
mysqldump -u kullanici_adi -p parola veritabani_ismi > yedeklenecek_dosya.sql
mesela vpopmail adlı veritabanımı yedeklemek istersem aşağıdakine benzer bir komut kullanmam yeterli.
root@maviyan~> mysqldump -u root -p cinali vpopmail > qmail_yedek.sql
Bir sistemde bulunan tüm veritabanlarının yedeğini almak istersek basitçe aşağıdaki komut işimizi görecektir.
root@maviyan~> mysqldump –all-databases -u root -p cinali > tum_yedek.sql
alınan yedegin icine bakacak olursak…
root@maviyan~> cat qmail_yedek.sql
– MySQL dump 8.23
–
– Host: localhost Database: vpopmail
———————————————————
– Server version 3.23.58
–
– Table structure for table `dir_control`
–
CREATE TABLE dir_control (
domain char(64) NOT NULL defa
…..
SQL dump mevcut kullandığınız veritabanının bir nevi metne veya text haline getirmektir. Aslında phpMyAdmin ile de bu işlemi yapabilirsiniz, fakat 5-10 Mb’dan büyük veritabanlarını aktarmanın ne kadar zor olduğunu sanırım biliyorsunuzdur Ayrıca Türkçe verilerinizin karakterlerinin bozulmasıda yüksek bir ihtimaldir. Eğer bir hosting kullanıyorsanız bunu yapmanız elbette mümkün değil, peki büyük veri içeren dosyalarınızı yeni hosting taşıdığınızda nasıl yapacaksınız ? Onuda bir sonraki yazımda :) İşte yapmanız gerekenler ve örnek komutlar ;
Yedek Almak için ;
”
bash : mysqldump -u db_kullanıcı_adınız -h localhost -p –opt db_adınız > db_yedeğim.sql ( Enter)
Enter Password :
”
Şimdi elbette Enter Password bölümünü yazmıyorsunuz enter yazan yerde ne yapacağınızı sanırım biliyorsunuzdur Komutu girdikten sonra şifrenizi sorucak ve veritabanızın büyüklüğüne göre bir kaç saniye ile bir kaç dakika arasında işlemi yapacaktır. Yukarıda kırmızı renkle işaretlediğim yerlere kendi bilgilerinizi yazacaksınız.
Yedeği geri yüklemek için ;
”
bash : mysql -u db_kullanıcı_adınız -h localhost yüklenicek_db_adı -p < db_yedegim.sql ( Enter )
Enter Password :
”
Burada yine kırmızı bölümle işaret ettiğim noktaları, kendi bilgilerinizle değiştireceksiniz. Ben 500 Mb’lik bir yedek almıştım, ama bundan daha büyük veritabanları için gzip ile sıkıştırma yöntemini kullanabiliriz.
Gzip ile yedek Almak için ;
”
bash : mysqldump -u db_kullanıcı_adınız -h localhost -p –opt db_adınız | gzip > db_yedeğim.sql ( Enter)
Enter Password :
”
Gzip yedeğini geri yüklemek için ;
”
bash : cat gzip_db_yedegim.gz | gunzip | mysql -u db_kullanıcı_adı -h localhost db_adı ( Enter )
Enter Password :
”
Not : Yukarıda ” bash ” ile belirttiğim bölüm, linux konsolu anlamına gelmektedir.