私の考えは、cronjob を作成して、30 分ごとにデータベースの増分バックアップを取得することです。
ドキュメントによると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.
私がインクリメンタルを実行している主な理由は、バックアップ ファイルが 1 つしかないためです。これは理想的なシナリオではありません。特に、毎回インクリメンタル ディレクトリを削除する cronjob を作成したくないためです。新しい増分バックアップを取得します。
私の質問は、コマンドを実行するたびに増分バックアップを作成し、データベースで変更されたものを含む新しいファイルを作成するにはどうすればよいですか?