다양한 데이터베이스를 포함하는 여러 개의 도커 컨테이너가 있습니다. 모든 컨테이너에는 데이터베이스를 매일 .sql 파일로 백업한 다음 이 파일을 압축하는 Jenkins-Job이 있습니다. 상상할 수 있듯이 이는 시간이 지남에 따라 많은 중복 데이터로 이어집니다.
-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 파일의 diff를 저장하는 방법을 찾고 있습니다. 몇 가지 질문이 있습니다 (여기그리고여기예를 들어) 이를 위한 좋은 도구로 rdiff-backup이 사용됩니다. 그러나 나에게는 rdiff-backup이 SQL 파일 자체가 아니라 데이터베이스가 데이터를 저장하는 폴더와 같은 전체 폴더에서 작동하도록 설계된 것 같습니다.
데이터베이스 독립적인 init .sql 파일을 저장하고 거기에서 diff만 저장하는 도구가 있습니까?
답변1
zpaq을 사용하여 다른 접근 방식을 사용할 수 있습니다. FreeBSD(매우 오래된 버전), Debian(업데이트됨) 또는 저자 웹사이트에서 직접 찾을 수 있습니다. http://mattmahoney.net/dc/zpaq.html
원하는 모든 SQL이 포함된 단일 파일을 내부에 저장하고 선택적으로 암호화할 수 있습니다.