MySQL ile Otomatik Yedekleme Sistemi

Bu yazımızda MySQL ile otomatik yedekleme sistemi oluşturacağız. Linux üzerinde Cronjob ile otomatik işlemler yaptırabilirsiniz. Örneğin her saniye, her dakika, her gün, her hafta vb. istediğiniz aralıklarla çalışan yedekleme sistemi oluşturabilirsiniz. Linux üzerinde Cronjob, Windows üzerinde Zamanlanmış Görevler uygulamasına denk gelir, tam denk gelmese de hemen hemen aynı işi yapar. Yani belirlenen zamanda belirlenen komutu işletir.


 
MySQL Veritabanı Yönetim Sisteminde yedek almak için kullanacağımız komut mysqldump komutudur. Bu komut kullanılırken parametre olarak veritabanı kullanıcı adı, veritabanı şifresi ve veritabanı adı gerekir.
Bu bilgiler olmadan yedekleme yapamazsınız.

Kullanım formatı
mysqldump -P 3306 -h [ip_address] -u [uname] -p[pass] db_name > db_backup.sql

mysqldump komut Linux sistemlerde birçok komutun yer aldığı /usr/bin/ klasöründe yer alır. Genelde çalıştığı port 3306'dır. Fakat güvenlik amacıyla vs. bu port değiştirilmiş de olabilir, sunucu yöneticisinden bilgi alabilirsiniz. Eğer sunucu uzak bir makinede ise IP adresini de yukarıdaki gibi yazabilirsiniz, fakat çalıştıracağınız komut ile MySQL veritabanı aynı makinede ise IP adresine gerek yoktur.

/usr/bin/mysqldump -u kullanıcıadi -p sifre veritabani_adi > mysql_yedek_db.sql

MySQL'de otomatik yedekleme yapmak için birçok yedekleme programı da gelliştirilmiştir, Sunucu sisteminize bunları kurarak da yedekleme yaptırabilirsiniz.

Aşağıdaki kaynaklarda Perl, Php vb. dillerde scriptler oluşturarak yedekleme örneklerine de rastlayabilirsiniz. sh uzantılı toplu işlem dosyası oluşturarak ve bu dosyayı yine cronjob üzerinden çağırarak da yedekleme yaptırabilirsiniz. Eğer bir sh dosyası çalıştıracaksanız 755 yetkisini de vermelisiniz. Aşağıdaki gibi chmod komutunu kullanabilirsiniz.

chmod 755 mysql_yedek.sh

chmod vb. komutlar hakkında bilgi almak için daha önce hazırlamış olduğum aşağıdaki linux sunumunu inceleyebilirsiniz.
 
Linux sunum from Oğuzhan TAŞ Akademi

Kaynaklar
https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html
https://www.kinamo.be/en/support/faq/mysql-automatic-backup-of-database

Veri kayıpsiz günler,
Oğuzhan TAŞ
Nisan 2018 Bookmark and Share