如何使用shell脚本获取mysql的增量备份

时间:2014-12-11 09:50:58

标签: mysql shell backup

这里给出了以下代码,它正确地用于备份,但我需要更改增量备份。我想每4小时备份一次。如何在shell脚本中设置时间表?

#!/bin/bash

    TIMESTAMP=$(date +"%F")
    BACKUP_DIR="/home/admin/$TIMESTAMP"
    MYSQL_USER="test"
    MYSQL=/usr/bin/mysql
    MYSQL_PASSWORD="******"
    MYSQLDUMP=/usr/bin/mysqldump

    mkdir -p "$BACKUP_DIR/mysql"

    databases=`$MYSQL --user=$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema)"`

    for db in $databases; do
      $MYSQLDUMP --force --opt --user=$MYSQL_USER -p$MYSQL_PASSWORD --databases $db | gzip > "$BACKUP_DIR/mysql/$db.gz"
    done

1 个答案:

答案 0 :(得分:0)

查看mysql二进制日志。基本上必须完成两个步骤

  1. 创建mysqldump
  2. 复制在最后一个mysqldump之后发生所有更改的二进制日志
  3. mysqldump为您提供完整备份。二进制记录发生的所有更改。这是最接近mysql中“增量”备份的。

    有关详细信息,请参阅http://dev.mysql.com/doc/refman/5.5/en/binary-log.html。请注意,您需要mysqldump的--master-data标志,否则您不知道在二进制日志中从哪里开始。