2

我的想法是创建一个 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获取新的增量备份。

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

4

1 回答 1

1

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

于 2018-12-11T19:23:35.217 回答