我的想法是创建一个 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获取新的增量备份。
所以我的问题是,每次执行命令并使用数据库中发生的任何更改创建一个新文件时,如何创建增量备份?