如何在不删除增量目录的情况下使用mysqlbackup进行增量备份?

时间:2016-05-17 19:27:24

标签: mysql mysql-backup

我的想法是创建一个cronjob,每隔半小时左右就可以对我的数据库进行增量备份。

根据mysqlbackup文档,我必须首先对我的数据库进行完整备份,然后再进行增量备份以便我这样做:

mysqlbackup --defaults-file=.my.cnf --compress \
   --socket=/var/lib/mysql/mysql.sock --no-locking \
   --compress-level=9 --databases=employees \
   --show-progress=stdout --backup-dir=/home/user/backup backup

然后我进入备份目录并创建一个增量目录,然后运行以下命令来获取增量:

mysqlbackup --defaults-file=.my.cnf --incremental --no-locking \
  --databases=employees --socket=/var/lib/mysql/mysql.sock \
  --incremental-base=dir:backup/ \
  --incremental-backup-dir=backup/incrementals/ \
  backup

一切看起来都是预期的,然后当我想再次运行它时,我收到了这个错误:

 mysqlbackup: ERROR: Backup directory already exists and is not empty.
 Remove backup directory and retry.

我做增量的主要原因是我不会只有一个备份文件所以这对我来说不是一个理想的场景,特别是因为我不想创建一个cronjob每次我必须获得新的增量备份时删除增量目录。

所以我的问题是,每次执行命令时如何创建增量备份并使用数据库中的更改创建新文件?

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,需要添加另一个选项--with-timestamp在备份目录中创建唯一的文件名。