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.