![Последовательное резервное копирование файлов .sql](https://rvso.com/image/770095/%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5%20%D1%80%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%BD%D0%BE%D0%B5%20%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%20.sql.png)
У меня есть куча 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-файл.
Теперь я ищу способ просто хранить diffs .sql-файлов. Есть несколько вопросов (здесьиздесьfor example) приводит к rdiff-backup как хорошему инструменту для этого. Но мне кажется, что rdiff-backup предназначен для работы с целыми папками, например, папкой, где база данных хранит свои данные, а не с самими файлами sql.
Есть ли инструмент для хранения независимого от базы данных init .sql-файла и оттуда только различий?
решение1
Вы можете использовать другой подход, используя zpaq. Вы можете найти на FreeBSD (очень старая версия), Debian (обновленная) или непосредственно на сайте автора http://mattmahoney.net/dc/zpaq.html
Вы получите один файл со всеми необходимыми вам SQL-кодами, сохраненными внутри, опционально зашифрованными.