zoukankan      html  css  js  c++  java
  • MySQL mysqldump与innobackupex 组合备份

    此脚本,在01点进行一次逻辑全备份,03点进行一次物理全备份,中午12点进行一次增量物理备份

    #! /bin/bash
    #05  01,03,12 * * *  mysql /data/mysqldata/scripts/mysql_backup_dump_xtra.sh  >> /data/mysql/backup/log/mysql_back2.log 2>&1
    ############################################################
    # Define the variables the script used for executing.
    #mysql backup by hongquan on 2017
    #day=`date +%u`
    curHour=`date +%H`
    curDate=`date +'%Y%m%d'`
    backupDir=/data/mysqldata/backup
    defaultFile=/data/mysqldata/backup
    mysqlHost=127.0.0.1
    port=3306
    logicuser=**
    logicpass=**
    logicalBackupDir=/data/mysqldata/backup/logical
    fullBackupDir=/data/mysqldata/backup/full
    incBackupDir=/data/mysqldata/backup/inc
    logfile=/data/mysqldata/backup/mysql_backup.log
    sockfile=/data/mysqldata/3306/mysql.sock
    
    full_inbkpex_day=/data/mysqldata/backup/full/full_ipx$curDate$curHour
    inc_inbkpex=/data/mysqldata/backup/inc/inc_ipx$curDate$curHour
    
    MYSQL_PATH=/usr/local/mysql/bin
    MYSQL_CMD="${MYSQL_PATH}/mysql -u${logicuser} -p${logicpass} -h${mysqlHost} -S /data/mysqldata/${HOST_PORT}/mysql.sock"
    MYSQL_DUMP="${MYSQL_PATH}/mysqldump -u${logicuser} -p${logicpass} -h${mysqlHost} -P${HOST_PORT}  -R -S  
                ${sockfile} --single-transaction  --master-data=2 --default-character-set=utf8 --set-gtid-purged=OFF -q "
    
    case ${curHour}  in
             01)
                    type=logical
                    ;;
             03)
                    type=full
                    ;;
             12)
                    type=inc
                    ;;
            "*")
                    exit 
    esac
    
    echo "NOW is : Backup type=$type" >> ${logfile}
    
        if [ ! -d "${backupDir}" ]; then
        mkdir -p "${backupDir}"
        echo -e "===${backupDir} does not exsits,created them!" >> ${logfile}
        fi
    
         if [ ! -d "${logicalBackupDir}" ]; then
        mkdir -p "${logicalBackupDir}"
        echo -e "===${logicalBackupDir} does not exsits,created them!" >> ${logfile}
        fi
    
         if [ ! -d "${fullBackupDir}" ]; then
        mkdir -p "${fullBackupDir}"
        echo -e "===${fullBackupDir} does not exsits,created them!" >> ${logfile}
        fi
    
        if [ ! -d "${incBackupDir}" ]; then
        mkdir -p "${incBackupDir}"
        echo -e "===${incBackupDir} does not exsits,created them!" >> ${logfile}
        fi
    
    extra_lsndir=${backupDir}
    ori_conf_file=/data/mysqldata/${port}/my.cnf
    new_conf_file=${backupDir}/my_${port}_`date +%Y%m%d%H%M%S`.cnf
    
    echo "backup start" `date` >> ${logfile}
    echo -e "===first cp my.cnf file to backup directory ===" >> ${logfile}
    /bin/cp ${ori_conf_file} ${new_conf_file}
    
    echo >> ${logfile}
    
    if [[ "${type}" = "logical" ]]; then
        # -------------------------- logical backup with mysqldump --------------------------
        echo -e "mysqldumpbk per db list= ${list} " >> ${logfile}
       for dbs in `${MYSQL_CMD} 2>/dev/null  -e "show databases" | sed '1d' | egrep -v "information_schema|performance_schema|sys"`
        do
          echo -e "echo $dbs is appoint ; " >> ${logfile}
          ${MYSQL_DUMP} ${dbs} 2>/dev/null | gzip >  ${logicalBackupDir}/${dbs}_${curDate}.sql.gz
          echo -e " **** database :${dbs} backup stop_time :`date +%F' '%T' '%w` **** 
    ">> ${logfile}
          echo -e "**** backup file size:`du -sh ${logicalBackupDir}/`**** 
    " >> ${logfile}
        done
    elif [[ "${type}" = "full" ]]; then
        # -------------------------- full backup with xtrabackup --------------------------
        cd ${backupDir}
        #rm -rf /data/mysql/backup/full/
        if [ ! -d "${full_inbkpex_day}" ]; then
        mkdir -p "${full_inbkpex_day}"
        echo -e "===${full_inbkpex_day} does not exsits,created them!" >> ${logfile}
        fi
        #tar -zcvf  $tar_full.tar.gz  ${full_inbkpex_day}
        cd ${full_inbkpex_day}
    
        /usr/bin/innobackupex  --defaults-file=${ori_conf_file} --user=${logicuser} --password=${logicpass} 
        --host=${mysqlHost}  --port=${port} --no-timestamp --extra-lsndir=${extra_lsndir}  --stream=tar  ${backupDir} 
        2>/tmp/full_ipx$curDate$curHour.log | gzip 1>${full_inbkpex_day}/`date +%Y%m%d%H%M%S`.tar.gz 
    
     echo -e "mysql full backup full_ipx$curDate$curHour" >> ${logfile}
    
    elif [[ "${type}" = "inc" ]]; then
        # -------------------------- incremental backup with xtrabackup --------------------------
        if [ ! -d "${inc_inbkpex}" ]; then
        mkdir -p "${inc_inbkpex}"
        echo -e "===${inc_inbkpex} does not exsits,created them!" >> ${logfile}
        fi
        /usr/bin/innobackupex --defaults-file=${ori_conf_file} --user=${logicuser} --password=${logicpass} 
        --host=${mysqlHost}  --port=${port} --no-timestamp --extra-lsndir=${extra_lsndir} --incremental 
        --incremental-basedir=${backupDir} ${inc_inbkpex}  2>/tmp/inc_ipx$curDate$curHour.log
        echo -e "mysql inc backup inc_ipx$curDate$curHour" >> ${logfile}
    else
        echo -e "wrong backup type!" >> ${logfile}
        exit 1
    fi
    
    #echo -e "----find expired backup and delete those files ----">> ${logfile}
    #for tfile in $(/usr/bin/find ${backupDir}/ -mtime +7)
    #do
    #  if [ -d $tfile ] ; then
    #    rmdir $tfile
    #   elif [ -f $tfile ]; then
    #   #rm -f $tfile
    #    echo -e "---not backupDir found ----">>  ${logfile}
    #  fi
    #   echo -e "----delete file:$tfile ----">>  ${logfile}
    #done
    
    echo -e "
    === backup dened at `date +%F' '%T' '%w`===
    " >> ${logfile}
  • 相关阅读:
    leetcode--Populating Next Right Pointers in Each Node II
    leetcode—Populating Next Right Pointers in Each Node
    Pascal's Triangle II
    leetcode—pascal triangle
    leetcode—triangle
    October 23rd, 2017 Week 43rd Monday
    October 22nd, 2017 Week 43rd Sunday
    October 21st 2017 Week 42nd Saturday
    October 20th 2017 Week 42nd Friday
    October 19th 2017 Week 42nd Thursday
  • 原文地址:https://www.cnblogs.com/yhq1314/p/9947521.html
Copyright © 2011-2022 走看看