mysql二进制日志管理_MYSQL二进制日志管理脚本

MYSQL二进制日志管理脚本脚本原理是每小时对进行flush生成新的二进制日志,将二进制日志备份至NFS,并压缩存放:#!/bin/bash#Purpose:管理二进制日志,每小时刷新二进制日志,并将日志复制到nfs服务器上,方便以后恢复和问题分析!#Author:carl_zhang#Date:

MYSQL二进制日志管理脚本

脚本原理是每小时对进行flush生成新的二进制日志,将二进制日志备份至NFS,并压缩存放:

#!/bin/bash

#Purpose:管理二进制日志,每小时刷新二进制日志,并将日志复制到nfs服务器上,方便以后恢复和问题分析!

#Author:carl_zhang

#Date:

www.2cto.com

#some variables 一些参数

#定义数据库的相关信息

USERNAME=root

PASSWORD=zhang@123

HOSTIP=localhost

MYSQL=/usr/local/mysql/bin/mysql

#设置二进制日志的路径

BIN_LOG_DIR=/data/dbdata

#设置二进制日志备份的路径

BIN_LOG_BACKUP_DIR=/data/binlog_backup

#定义一个常量来跳过最后一个日志文件

COUNT=0

#定义一个日志文件

LOGFILE=/data/binlog_backup/binlog_backup.log

#找出二进制日志的名称前缀

BINLOG_PREFIX=`grep "log-bin=" /etc/my.cnf | awk -F'=' '{print $2}'`

#比较二进制日志文件列表和已备份的二进制文件列表

if [ ! -f "$BIN_LOG_BACKUP_DIR/backup.file" ];then

touch $BIN_LOG_BACKUP_DIR/backup.file

fi

#运行文件比较之前先执行一下flush logs

$MYSQL -u$USERNAME -p$PASSWORD -h$HOSTIP -e "flush logs"

FILE_LIST=`comm -23 $BIN_LOG_DIR/$BINLOG_PREFIX.index $BIN_LOG_BACKUP_DIR/backup.file`

#统计日志文件的个数

FILE_COUNT=`comm -23 $BIN_LOG_DIR/$BINLOG_PREFIX.index $BIN_LOG_BACKUP_DIR/backup.file|wc -l`

#程序正文

#开始备份二进制日志文件

for file in $FILE_LIST

do

BINLOG_NAME=`basename $file`

let COUNT=$COUNT+1

if [ $COUNT -eq $FILE_COUNT ];then

#跳过最新的那个二进制日志文件

echo "skip the lastest binlog file" >> $LOGFILE

else

cp $BIN_LOG_DIR/$BINLOG_NAME $BIN_LOG_BACKUP_DIR/

if [ $? -eq 0 ];then

echo "`date -d "today" +%Y-%m-%d-%H-%M-%S` $BINLOG_NAME backup success" >> $LOGFILE

else

echo "`date -d "today" +%Y-%m-%d-%H-%M-%S` $BINLOG_NAME backup faild, Please check it out" >> $LOGFILE  www.2cto.com

exit 5

fi

#对二进制日志进行压缩存放

gzip $BIN_LOG_BACKUP_DIR/$BINLOG_NAME

if [ $? -eq 0 ];then

echo "`date -d "today" +%Y-%m-%d-%H-%M-%S` $BINLOG_NAME gzip success" >> $LOGFILE

else

echo "`date -d "today" +%Y-%m-%d-%H-%M-%S` $BINLOG_NAME gzip faild, Please check it out" >> $LOGFILE

exit 5

fi

echo ./$BINLOG_NAME >> $BIN_LOG_BACKUP_DIR/backup.file

fi

done

作者 飞鸿无痕

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值