我有一堆包含不同数据库的 docker 容器。对于每个容器,都有一个 Jenkins-Job,它每天将数据库备份为 .sql 文件,然后压缩该文件。正如您可以想象的那样,随着时间的推移,这会导致大量冗余数据:
-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 文件并从那里仅存储差异。
您可以使用不同的方法,使用 zpaq。您可以在 FreeBSD(非常旧的版本)、Debian(更新)或直接从作者的网站 http://mattmahoney.net/dc/zpaq.html上找到
您将获得一个包含您想要的所有 SQL 的文件,存储在其中,可选择加密