您好,欢迎访问一九零五行业门户网

MYSQL二进制日志管理脚本_MySQL

bitscn.com
mysql二进制日志管理脚本 脚本原理是每小时对数据库进行flush生成新的二进制日志,将二进制日志备份至nfs,并压缩存放: #!/bin/bash#purpose:管理mysql二进制日志,每小时刷新二进制日志,并将日志复制到nfs服务器上,方便以后恢复和问题分析!#author:carl_zhang#date:   #some variables 一些参数#定义数据库的相关信息username=rootpassword=zhang@123hostip=localhostmysql=/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 ];thentouch $bin_log_backup_dir/backup.filefi#运行文件比较之前先执行一下flush logs$mysql -u$username -p$password -h$hostip -e flush logsfile_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_listdobinlog_name=`basename $file`let count=$count+1if [ $count -eq $file_count ];then#跳过最新的那个二进制日志文件echo skip the lastest binlog file >> $logfileelsecp $bin_log_dir/$binlog_name $bin_log_backup_dir/if [ $? -eq 0 ];thenecho `date -d today +%y-%m-%d-%h-%m-%s` $binlog_name backup success >> $logfileelseecho `date -d today +%y-%m-%d-%h-%m-%s` $binlog_name backup faild, please check it out >> $logfile    exit 5fi#对二进制日志进行压缩存放gzip $bin_log_backup_dir/$binlog_nameif [ $? -eq 0 ];thenecho `date -d today +%y-%m-%d-%h-%m-%s` $binlog_name gzip success >> $logfileelseecho `date -d today +%y-%m-%d-%h-%m-%s` $binlog_name gzip faild, please check it out >> $logfileexit 5fiecho ./$binlog_name >> $bin_log_backup_dir/backup.filefidone   作者 飞鸿无痕 bitscn.com
其它类似信息

推荐信息