Single Database Restores and Downloads, Data Retention Improvement, and Bug Fixes
⚠️ Breaking: Jobs that back up only databases now write a seekable
.tararchive instead of a single.sql.gz.encstyle file or a TAR of dumps. Restoring and downloading inside DBackup work for old and new backups alike, but scripts that pick up backup files directly have to handle the new layout. An encrypted archive is read with the Recovery Kit's--extractmode, so download a fresh Recovery Kit, since older kits do not verify dump checksums. An unencrypted archive unpacks with plaintar -xf.
✨ Features
- restore: Single databases can be restored out of a multi-database backup, and only that database is read from the destination. (#140)
- storage: A single database can be downloaded out of a backup from the Storage Explorer, the restore page or the API with the
storage:downloadpermission. (#138) - jobs: Microsoft SQL Server, Azure SQL Database and SQLite sources can now be combined with directory sources in one job.
- vault: Encryption profiles can be renamed and their description edited from the Encryption Vault. (#161)
- history: Execution logs and History entries can be cleaned up automatically after a set period under Settings → General → Data Retention. Runs that a job still builds on are always kept.
- settings: A new Database section under Settings → General shows the size of the DBackup database and optimizes it with VACUUM. SuperAdmins can also download a copy of the database file.
🐛 Bug Fixes
- backup: Backups with directory sources recorded their uncompressed size as the backup size. They now record the size of the stored archive.
- api: A
databaseMappingsent as an object of renames toPOST /api/storage/{id}/restoreis now applied. Restores of backups with directory sources ignored it before and restored every database under its original name. - storage: A prepared download that is cancelled in the browser no longer leaves its temp file behind on the server.
- backup: An incremental chain whose full backup is missing from the execution history now starts a new chain instead of growing past its maximum age.
- MySQL: Dumps against a MySQL server older than 5.5.3 no longer force the
utf8mb4character set, and a--default-character-setin the Additional Options now overrides the default. The job also warns when the detected version is below the supported minimum. (#151)
🔒 Security
- recovery-kit:
--extractno longer writes a database dump outside the output folder when the database name contains path separators.
🎨 Improvements
- history: History, the dashboard and the job queue stay fast on instances with tens of thousands of runs.
🔄 Changed
- backup: Every backup job now writes the seekable archive format, including jobs that back up only databases. Backups in the older formats stay restorable and downloadable.
- storage: Analyzing and browsing a backup accept the
storage:downloadpermission as well asstorage:restore. - mongodb: A job without a database selection now fails with a message asking to select the databases when the backup user cannot list them. Before,
mongodumpran without a database and backed up whatever that user could read. - settings: The retention settings moved from Job Execution into their own Data Retention card with clearer names, where the health check retention can now be set too. Detailed execution logs older than 90 days are now removed by default while the runs stay in History.
📝 Documentation
- docs: The restore, Storage Explorer, Recovery Kit, API and archive format guides describe single database restores and downloads out of a seekable archive. A new developer page lists the code that still serves the older backup formats.
- docs: The encryption guide describes renaming an encryption profile.
- docs: A new guide explains what each data retention setting removes and how to optimize or download the DBackup database.
🧪 Tests
- tests: New integration test dumps, packs, extracts and restores one database of every test container through the seekable archive.
- tests: New unit tests cover execution history cleanup, database maintenance, the database download route and cancelled downloads.
🐳 Docker
- Image:
skyfay/dbackup:v3.4.0 - Also tagged as:
latest,v3 - CI Image:
skyfay/dbackup:ci - Platforms: linux/amd64, linux/arm64