实现MySQL的自动备份

2025-01-05 12:42:16
推荐回答(1个)
回答1:

  MySQL数据库的备份是非常重要的工作之一 通过MySQL数据库的数据备份就能够实现MySQL数据库中数据的绝对安全 MySQL数据库中的数据不会因为什么小故障而丢失 自动备份则是更为方便的一种备份方式 下文中将给出详细的解析

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

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

  代码

  #!/bin/bash

  #ThisisaShellScriptForAutoDBBackup

  #Poweredbyaspbiz

  #

  #Setting

  #设置数据库名 数据库登录名 密码 备份路径 日志路径 数据文件位置 以及备份方式

  #默认情况下备份方式是tar 还可以是mysqldump mysqldotcopy

  #默认情况下 用root(空)登录mysql数据库 备份至/root/dbxxxxx tgz

  DBName=mysql

  DBUser=root

  DBPasswd=

  BackupPath=/root/

  LogFile=/root/db log

  DBPath=/var/lib/mysql/

  #BackupMethod=mysqldump

  #BackupMethod=mysqlhotcopy

  #BackupMethod=tar

  #SettingEnd

  NewFile= $BackupPath db$(date+%y%m%d) tgz

  DumpFile= $BackupPath db$(date+%y%m%d)

  OldFile= $BackupPath db$(date+%y%m%d date= daysago) tgz

  echo 》$LogFile

  echo$(date+ %y %m %d%H:%M:%S )》$LogFile

  echo 》$LogFile

  #DeleteOldFile

  if[ f$OldFile]

  then

  rm f$OldFile》$LogFile >&

  echo [$OldFile]DeleteOldFileSuccess! 》$LogFile

  else

  echo [$OldFile]NoOldBackupFile! 》$LogFile

  fi

  if[ f$NewFile]

  then

  echo [$NewFile]TheBackupFileisexists CantBackup! 》$LogFile

  else

  case$BackupMethodin

  mysqldump)

  if[ z$DBPasswd]

  then

  mysqldump u$DBUser opt$DBName>$DumpFile

  else

  mysqldump u$DBUser p$DBPasswd opt$DBName>$DumpFile

  fi

  tarczvf$NewFile$DumpFile》$LogFile >&

  echo [$NewFile]BackupSuccess! 》$LogFile

  rm rf$DumpFile

  ;;

  mysqlhotcopy)

  rm rf$DumpFile

  mkdir$DumpFile

  if[ z$DBPasswd]

  then

  mysqlhotcopy u$DBUser$DBName$DumpFile》$LogFile >&

  else

  mysqlhotcopy u$DBUser p$DBPasswd$DBName$DumpFile》$LogFile >&

  fi

  tarczvf$NewFile$DumpFile》$LogFile >&

  echo [$NewFile]BackupSuccess! 》$LogFile

  rm rf$DumpFile

  ;;

  *)

  /etc/init d/mysqldstop>/dev/null >&

  tarczvf$NewFile$DBPath$DBName》$LogFile >&

  /etc/init d/mysqldstart>/dev/null >&

  echo [$NewFile]BackupSuccess! 》$LogFile

  ;;

  esac

  fi

  echo 》$LogFile

lishixinzhi/Article/program/MySQL/201311/29400