![.sql ファイルのローリング バックアップ](https://rvso.com/image/770095/.sql%20%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E3%83%AD%E3%83%BC%E3%83%AA%E3%83%B3%E3%82%B0%20%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97.png)
さまざまなデータベースを含む docker コンテナが多数あります。各コンテナには、データベースのバックアップを .sql ファイルとして毎日実行し、このファイルを zip 圧縮する Jenkins ジョブがあります。ご想像のとおり、時間の経過とともに冗長なデータが大量に発生します。
-rw-r--r--. 1 admin admin 103475967 30. Aug 02:15 20210830021501_all-databases.sql.gz
-rw-r--r--. 1 admin admin 103475967 31. Aug 02:15 20210831021501_all-databases.sql.gz
-rw-r--r--. 1 admin admin 103475967 1. Sep 02:15 20210901021501_all-databases.sql.gz
通常は、データベース固有のローリング バックアップ ツールを使用します。ただし、.sql ファイルのみをエクスポートすることで、シンプルかつ汎用的な状態を維持したいと考えています。
今、.sqlファイルの差分を保存する方法を探しています。いくつか質問があります(ここそしてここたとえば、rdiff-backup は、このための優れたツールです。しかし、rdiff-backup は、SQL ファイル自体ではなく、データベースがデータを保存するフォルダーなど、フォルダー全体を扱うように設計されているように思えます。
データベースから独立した init .sql ファイルを保存し、そこから差分のみを保存するツールはありますか。
答え1
zpaq を使った別のアプローチも使えます。FreeBSD (非常に古いバージョン)、Debian (更新済み)、または作者のウェブサイトから直接入手できます。 http://mattmahoney.net/dc/zpaq.html
必要なSQLがすべて含まれた単一のファイルを取得し、その中に保存し、オプションで暗号化します。