ITPub博客

首页 > Linux操作系统 > Linux操作系统 > mysql5.5.20备份

mysql5.5.20备份

原创 Linux操作系统 作者:zhouwf0726 时间:2019-07-02 21:09:04 0 删除 编辑
同事整理的备份脚本,在从库上执行。Xtrabackup目前还不支持5.5.20。
 
[mysql@MYSQL-DB02 ~]$ crontab -l
0 1  * * * /home/mysql/cron/backup_db.sh >> /home/mysql/cron/backup_db.log 2>&1
[mysql@MYSQL-DB02 ~]$ more /home/mysql/cron/backup_db.sh
. ~/.bash_profile
#mysqldump=/data/mysql/bin/mysqldump
#mysqlbinlog=/data/mysql/bin/mysqlbinlog
#mysqladmin=/data/mysql/bin/mysqladmin
bak_dir=/data/mysql/backup
log_dir=/data/mysql/log
bak_opt="--single-transaction --flush-logs"
day=`date +%a`
hour=`date +%Y%m%d%H`
time=`date +%F%H%M%S`
deltime=`date "-d 3 day ago" +%Y%m%d%H%M%S`
db=thran
user=bak_user
passwd=BUteYhKEfVsqnnMSTOyo
bin_file_name=`ls /data/mysql/log | grep "mysql-bin" | grep -v "index" | awk -F"/" '{print $1}' | tail -n1`

#Sunday: full backup
full()
{
  mysqldump -u$user -p$passwd $bak_opt $db|gzip >$bak_dir/$db/full_$hour.gz
}
#Others: incr backup
incr()
{
  mysqladmin -u$user -p$passwd flush-logs
  mysqlbinlog -u$user -p$passwd $log_dir/$bin_file_name|gzip >$bak_dir/$db/incr_$hour.gz
  #Record Last Backup binlog scn
  echo $bin_file_name $time >> $bak_dir/binlog.index
  #delete old binlog file, use root privelegs
  bin_file_name=`ls /data/mysql/log | grep "mysql-bin" | grep -v "index" | awk -F"/" '{print $1}' | tail -n1`
  mysql -uroot -prs0JpKfvhjSIvknHQQRv -e"purge master logs to '${bin_file_name}' "
}

if [ $day = "Sun" ]
then
 full 
else
 incr
fi

# delete 10 days ago database backup
find $bak_dir/$db -mtime +10 -type f -exec rm -rf {} \;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/756652/viewspace-716001/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2006-02-22

  • 博文量
    458
  • 访问量
    416638