backup

mysql репликация

в случае падения репликации, а такое иногда бывает в непредвиденных обстоятельствах, заново поднимать её ацки лень бывает.
поэтому сделал механизм, с помощью которого можно восстановить всё одной командой.

НА МАСТЕРЕ:
добавить в /etc/mysql/my.conf

[mysqld]
server-id               = 1
log_bin                 = /var/log/mysql/mysql-bin.log
expire_logs_days        = 10
max_binlog_size         = 100M

по крону раз в сутки запускается скрипт, который дампит базу и записывает в файл номер bin-лога и позицию

скрипт backup_db.sh:

rsync incremental backup

mv backup.3 backup.tmp
mv backup.2 backup.3
mv backup.1 backup.2
mv backup.0 backup.1
mv backup.tmp backup.0
cp -al backup.1/. backup.0   #make hard links
rsync -a --delete source_directory/ backup.0/   #rsync always unlinks before overwriting