广

MYSQL

  • MYSQL
  • MSSQL
  • Redis
  • MongoDB
  • oracle数据库
  • 数据管理

    如何才能实现MySQL的自动备份

    2018-04-09 07:42:10 次阅读 稿源:互联网
    零七网广告
    全网推广平台,软文发布

      MySql自动备份是非常关键的,特别是对于DBA来说。这里主要用代码来说明这个问题,希望对各位有所帮助。可以将这个脚本放进crontab,每天凌晨执行一次,自动备份。

      这个脚本每天最多只执行一次,而且只保留最近五天的备份在服务器上。

      代码:

      

    #!/bin/bash#This is a ShellScript For Auto DB Backup#Powered by aspbiz#2004-09 

      #Setting#设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,以及备份方式#默认情况下备份方式是tar,还可以是mysqldump,mysqldotcopy#默认情况下,用root(空)登录mysql数据库,备份至/root/dbxxxxx.tgzDBName=mysqlDBUser=rootDBPasswd=BackupPath=/root/LogFile=/root/db.logDBPath=/var/lib/mysql/#BackupMethod=mysqldump#BackupMethod=mysqlhotcopy#BackupMethod=tar#Setting End

      NewFile="$BackupPath"db$(date +%y%m%d).tgzDumpFile="$BackupPath"db$(date +%y%m%d)OldFile="$BackupPath"db$(date +%y%m%d --date='5 days ago').tgz

      echo "-------------------------------------------" >> $LogFileecho $(date +"%y-%m-%d %H:%M:%S") >> $LogFileecho "--------------------------" >> $LogFile#Delete Old Fileif [ -f $OldFile ]then  rm -f $OldFile >> $LogFile 2>&1  echo "[$OldFile]Delete Old File Success!" >> $LogFileelse  echo "[$OldFile]No Old Backup File!" >> $LogFilefi

      if [ -f $NewFile ]then  echo "[$NewFile]The Backup File is exists,Can't Backup!" >> $LogFileelse  case $BackupMethod in  mysqldump)   if [ -z $DBPasswd ]   then     mysqldump -u $DBUser --opt $DBName > $DumpFile   else     mysqldump -u $DBUser -p$DBPasswd --opt $DBName > $DumpFile   fi   tar czvf $NewFile $DumpFile >> $LogFile 2>&1   echo "[$NewFile]Backup Success!" >> $LogFile   rm -rf $DumpFile   ;;  mysqlhotcopy)   rm -rf $DumpFile   mkdir $DumpFile   if [ -z $DBPasswd ]   then     mysqlhotcopy -u $DBUser $DBName $DumpFile >> $LogFile 2>&1   else     mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >>$LogFile 2>&1   fi   tar czvf $NewFile $DumpFile >> $LogFile 2>&1   echo "[$NewFile]Backup Success!" >> $LogFile   rm -rf $DumpFile   ;;  *)   /etc/init.d/mysqld stop >/dev/null 2>&1   tar czvf $NewFile $DBPath$DBName >> $LogFile 2>&1   /etc/init.d/mysqld start >/dev/null 2>&1   echo "[$NewFile]Backup Success!" >> $LogFile   ;;  esacfi

      echo "-------------------------------------------" >> $LogFile

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七网广告
    零七网广告
    零七网广告
    零七网广告