程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MYSQL二進制日志管理腳本

MYSQL二進制日志管理腳本

編輯:MySQL綜合教程


MYSQL二進制日志管理腳本   腳本原理是每小時對數據庫進行flush生成新的二進制日志,將二進制日志備份至NFS,並壓縮存放:   #!/bin/bash #Purpose:管理mysql二進制日志,每小時刷新二進制日志,並將日志復制到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       作者 飛鴻無痕

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved