zoukankan      html  css  js  c++  java
  • MYSQL二进制日志管理脚本

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

    点击(此处)折叠或打开

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


    5. #some variables 一些参数
    6. #定义数据库的相关信息
    7. USERNAME=root
    8. PASSWORD=zhang@123
    9. HOSTIP=localhost
    10. MYSQL=/usr/local/mysql/bin/mysql

    11. #设置二进制日志的路径
    12. BIN_LOG_DIR=/data/dbdata
    13. #设置二进制日志备份的路径
    14. BIN_LOG_BACKUP_DIR=/data/binlog_backup
    15. #定义一个常量来跳过最后一个日志文件
    16. COUNT=0
    17. #定义一个日志文件
    18. LOGFILE=/data/binlog_backup/binlog_backup.log
    19. #找出二进制日志的名称前缀
    20. BINLOG_PREFIX=`grep "log-bin=" /etc/my.cnf | awk -F'=' '{print $2}'`
    21. #比较二进制日志文件列表和已备份的二进制文件列表
    22. if [ ! -f "$BIN_LOG_BACKUP_DIR/backup.file" ];then
    23. touch $BIN_LOG_BACKUP_DIR/backup.file
    24. fi
    25. #运行文件比较之前先执行一下flush logs
    26. $MYSQL -u$USERNAME -p$PASSWORD -h$HOSTIP -e "flush logs"
    27. FILE_LIST=`comm -23 $BIN_LOG_DIR/$BINLOG_PREFIX.index $BIN_LOG_BACKUP_DIR/backup.file`
    28. #统计日志文件的个数
    29. FILE_COUNT=`comm -23 $BIN_LOG_DIR/$BINLOG_PREFIX.index $BIN_LOG_BACKUP_DIR/backup.file|wc -l`



    30. #程序正文
    31. #开始备份二进制日志文件
    32. for file in $FILE_LIST
    33. do
    34. BINLOG_NAME=`basename $file`
    35. let COUNT=$COUNT+1
    36. if [ $COUNT -eq $FILE_COUNT ];then
    37. #跳过最新的那个二进制日志文件
    38. echo "skip the lastest binlog file" >> $LOGFILE
    39. else
    40. cp $BIN_LOG_DIR/$BINLOG_NAME $BIN_LOG_BACKUP_DIR/
    41. if [ $? -eq 0 ];then
    42. echo "`date -d "today" +%Y-%m-%d-%H-%M-%S` $BINLOG_NAME backup success" >> $LOGFILE
    43. else
    44. echo "`date -d "today" +%Y-%m-%d-%H-%M-%S` $BINLOG_NAME backup faild, Please check it out" >> $LOGFILE
    45. exit 5
    46. fi
    47. #对二进制日志进行压缩存放
    48. gzip $BIN_LOG_BACKUP_DIR/$BINLOG_NAME
    49. if [ $? -eq 0 ];then
    50. echo "`date -d "today" +%Y-%m-%d-%H-%M-%S` $BINLOG_NAME gzip success" >> $LOGFILE
    51. else
    52. echo "`date -d "today" +%Y-%m-%d-%H-%M-%S` $BINLOG_NAME gzip faild, Please check it out" >> $LOGFILE
    53. exit 5
    54. fi
    55. echo ./$BINLOG_NAME >> $BIN_LOG_BACKUP_DIR/backup.file
    56. fi
    57. done


  • 相关阅读:
    【leetcode】Partition List
    【USACO】Transformations
    【USACO】Milking Cows
    R语言学习笔记——Base Graphics
    【Tech】YCSB-0.1.3安装使用
    【Tech】Ganglia安装配置
    【leetcode刷题笔记】Remove Duplicates from Sorted List
    【leetcode】Populating Next Right Pointers in Each Node
    【leetcode刷题笔记】Spiral Matrix
    js中定时器的使用
  • 原文地址:https://www.cnblogs.com/feihongwuhen/p/7169843.html
Copyright © 2011-2022 走看看