Home > Database > Mysql Tutorial > MySQL二进制日志管理脚本

MySQL二进制日志管理脚本

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-06-07 17:35:44
Original
1010 people have browsed it

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

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

#!/bin/bash
#Purpose:管理mysql二进制日志,,每小时刷新二进制日志,并将日志复制到nfs服务器上,方便以后恢复和问题分析!
#Author:carl_zhang
#Date:2012-5-15

#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
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

linux

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template