mysql用mysqldump进行增量备份,如何搞啊?有详细思路以及命令吗?我看网上的例子:echo "" > $eMailFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $eMailFile
#
# 刷新日志,使数据库使用新的二进制日志文件
$mysqlDir/bin/mysqladmin -u$user -p$userPWD flush-logs
cd $dataDir
# 得到二进制日志列表
fileList=`cat $HOSTNAME-bin.index`
iCounter=0
for file in $fileList
do
  iCounter=`expr $iCounter + 1`
done
nextNum=0
iFile=0
for file in $fileList
do
  binLogName=`basename $file`
  nextNum=`expr $nextNum + 1`
# 跳过最后一个二进制日志(数据库当前使用的二进制日志文件)
  if [[ $nextNum == $iCounter ]]; then
    echo "Skip lastest!" > /dev/null
  else
    dest=$dailyBackupDir/$binLogName
# 跳过已经备份的二进制日志文件
    if [[ -e $dest ]]; then
      echo "Skip exist $binLogName!" > /dev/null
    else
# 备份日志文件到备份目录
      cp $binLogName $dailyBackupDir
      if [[ $? == 0 ]]; then
        iFile=`expr $iFile + 1`
        echo "$binLogName Backup Success!" >> $eMailFile
      fi
    fi
  fi
done
if [[ $iFile == 0 ]];then
  echo "No Binlog Backup!" >> $eMailFile
else
  echo "Backup $iFile File(s)." >> $eMailFile
不知道他是在哪里使用mysqldump来进行增量备份的,好像是直接copy日志文件的吧!为什么不用mysqldump命令呢?

解决方案 »

  1.   

    mysql 增量备份就是备份其2进制日志文件.
      

  2.   

    mysqldump 一般是用于全备,并不是用于增量备份的。MYSQL中增备是用BINLOG来实现的。
      

  3.   

    $mysqlDir/bin/mysqladmin -u$user -p$userPWD flush-logs他在这里刷新日志文件了。后面的操作就是备份以前的日志文件而已。mysqldump用于全备,日志用于增备。
      

  4.   

    # 跳过最后一个二进制日志(数据库当前使用的二进制日志文件)
    if [[ $nextNum == $iCounter ]]; then
    echo "Skip lastest!" > /dev/null
    else
    dest=$dailyBackupDir/$binLogName
    # 跳过已经备份的二进制日志文件
    if [[ -e $dest ]]; then
    echo "Skip exist $binLogName!" > /dev/null
    else
    # 备份日志文件到备份目录最后一个正在使用的不备份,已经备份过的不备份。每天晚上3点做这个备份操作,都能够备份前一天3点到今天3点的。
      

  5.   


    那这些shell脚本是怎么知道哪些bin日志已经备份了,哪些还没有备份过呢?有什么标志?
      

  6.   

    无法知道。 一般是备份通过MYSQL完后删除已备份的BINLOG
      

  7.   


    删除?那么在/var/目录下,除数据文件,每次只有最新的未备份的日志文件了?