Bu Sayfayı Paylaş:

Kavram

mysqldump Komutu

Tanım: MySQL'de veritabanının verilerini almak (bir dosyaya veya başka bir veritabanına aktarmak için) için kullanılan komut. mysqldump [seçenekler] database_adi [tablo adları] veya mysqldump [seçenekler] --databases database_adi veya mysqldump [seçenekler] --all-databases şeklinde kullanılabilir. İlk örnekte tablolar, ikincisinde bir veritabanı, üçüncü örnekte ise tüm veritabanlarını alınmaktadır

İpucu

Windows'ta MySQL'de Backup Alan Batch Dosyası

MySQL'de Windows'ta backup alan , backup dosyalarını zipleyen ve oluşan sql uzantılı dosyaları silen ve belirli bir gün önceki backup dosyasını diskten silen batch dosyası aşağıdaki gibidir : 

set hr=%TIME:~0,2%

set min=%TIME:~3,2%

IF %hr% LSS 10 SET hr=0%hr:~1,1%
IF %min% LSS 10 SET min=0%min:~1,1%

set backupdate=%DATE%-%hr%-%min%

set dbuser=username
set dbpass=yourpassword

pushd "C:\Program Files\MySQL\MySQL Server 5.5\data"

"C:\MySQL\bin\mysqldump.exe" --user=%dbuser% --password=%dbpass% --databases veritabani_adi > "C:\MySQLBackups\backupfiles\veritabani_adi.%backupdate%.sql"

"C:\MySQLBackups\zip\7za.exe" a -tzip
"c:\MySQLBackups\backupfiles\FullBackup.%backupdate%.zip"

"C:\MySQLBackups\backupfiles\*.sql"

del "C:\MySQLBackups\backupfiles\*.sql" 

Forfiles -p C:\MySQLBackups\backupfiles\ -s -m *.* -d -5 -c "cmd /c del /q @path"

echo "Backup OK..."

backupdate değişkeni sistemin tarihini oluşturulan backup dosyasında kullanmak içindir. Bu değişkeni istediğiniz formatta oluşturacak şekilde değişiklik yapabilirsiniz. 

dbuser , dbuser değişkenlerine veritabanındaki kullanıcı adı ve şifresi set edilmelidir.

pushd ile mysql'in data dosyalarının bulunduğu klasöre gidilmelidir. Varsayılan olarak data dosyaları C:\Program Files\MySQL\MySQL Server 5.5\data klasöründe olacaktır. Ancak ayarlardan değiştirilmiş olabilir. 

mysqldump.exe komutu ile bir veritabanın backup'ı alınmaktadır. İstenirse buradaki satır çoğaltılarak birden fazla veritabanının backup alınması sağlanabilir. 

Oluşan .zip dosyalarını ziplemek için 7za .exe kullanılabilir. Veya başka bir zip aracını komut satırından kullanabilirsiniz. .sql uzantılı backup dosyalar sıkıştırıldıktan sonra silinir. Son satırda ise (ForFiles ile) 5 günden daha önceki dosyalar silinirler.

Oluşturulan bu bat dosyası Windows'tan zamanlanmış görevler (Scheduled Task) ile her gün düzenli çalışacak şekle getirilebilir. 

NOT : Bu ipucu http://www.redolivedesign.com/utah-web-designers-blog/2011/05/23/automated-mysql-backup-for-windows/ adresinden yararlanılmıştır. Bu adresteki script basitleştirilmiştir. Bu sayfadaki dosyadan hem batch dosyası hem de 7za.exe indirilebilmektedir. 

 


İpucu

Restore İşleminde ERROR 2006 (HY000) at line 217: MySQL server has gone away Hatasının Çözümü

MySQL'de bir veritabanı restore edilirken aşağıdaki gibi bir hata alınabilir :


ERROR 2006 (HY000) at line 217: MySQL server has gone away


Bu hatanın çözümü için my.conf dosyasında (Linux'da etc klasörü altndadır) [mysqld] bölümü altına aşağıdaki gibi ekleme yapılabilir :


[mysqld]
max_allowed_packet = 12000000


Bu işlemden sonra mysql restart edilmelidir. Restrart işleminden sonra restore işlemi yapılabilir :


mysql -u root -psifre db < db.sql

İpucu

Linux'ta mysqldump İle Bir Veritabanın Backup'ının Alınması

Linux'ta bir veritabanının backup'ı aşağıdaki gibi alınabilir : 
 
mysqldump -u root -pxxx database_adi > /dosya_adi.sql
 
xxx olan yere şifre yazılması gerekir
 
Sıkıştırarak backup alınması da sağlanabilir. Aşağıdaki gibi sıkıştırılmış olarak backup alınabilir :
 
mysqldump -u root -pxxx database_adi | gzip > /dosya_adi.sql
 
Backup işlemi belirli zamanlarda otomatik (crontab kullanarak) yapılması sağlanabilir : 
 
crontab -e 
 
ile dosya edit edilecek şekilde açılır. 
 
0 9 * * * mysqldump -u root -pxxx database_adi | gzip > /dosya_adi.sql.gz
 
insert edilerek dosya kaydedilmesi yeterlidir. Her gün 9'da veritabanı bir dosyaya sıkıştırılarak yazılacaktır.
 
Not : Açılacak editor değişik bir editor olabilir ancak çoğunlukla Vim veya Vi editörü açılmaktadır




Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir