Files
dbbackup/OPENSOURCE_ALTERNATIVE.md
Alexander Renz fd5edce5ae
All checks were successful
CI/CD / Test (push) Successful in 1m18s
CI/CD / Lint (push) Successful in 1m28s
CI/CD / Build & Release (push) Has been skipped
Fix license: Apache 2.0 not MIT
2026-01-12 10:57:55 +01:00

6.0 KiB

dbbackup: The Real Open Source Alternative

Killing Two Borgs with One Binary

You have two choices for database backups today:

  1. Pay $2,000-10,000/year per server for Veeam, Commvault, or Veritas
  2. Wrestle with Borg/restic - powerful, but never designed for databases

dbbackup eliminates both problems with a single, zero-dependency binary.

The Problem with Commercial Backup

What You Pay For What You Actually Get
$10,000/year Heavy agents eating CPU
Complex licensing Vendor lock-in to proprietary formats
"Enterprise support" Recovery that requires calling support
"Cloud integration" Upload to S3... eventually

The Problem with Borg/Restic

Great tools. Wrong use case.

Borg/Restic Reality for DBAs
Deduplication Works great
File backups Works great
Database awareness None
Consistent dumps DIY scripting
Point-in-time recovery Not their problem
Binlog/WAL streaming What's that?

You end up writing wrapper scripts. Then more scripts. Then a monitoring layer. Then you've built half a product anyway.

What Open Source Really Means

dbbackup delivers everything - in one binary:

Feature Veeam Borg/Restic dbbackup
Deduplication Native CDC
Database-aware MySQL + PostgreSQL
Consistent snapshots LVM/ZFS/Btrfs
PITR (Point-in-Time) Sub-second RPO
Binlog/WAL streaming Continuous
Direct cloud streaming S3/GCS/Azure
Zero dependencies Single binary
License cost Free Free (Apache 2.0)

Deduplication: We Killed the Borg

Content-defined chunking, just like Borg - but built for database dumps:

# First backup: 5MB stored
dbbackup dedup backup mydb.dump

# Second backup (modified): only 1.6KB new data!
# 100% deduplication ratio
dbbackup dedup backup mydb_modified.dump

How It Works

  • Gear Hash CDC - Content-defined chunking with 92%+ overlap detection
  • SHA-256 Content-Addressed - Chunks stored by hash, automatic dedup
  • AES-256-GCM Encryption - Per-chunk encryption
  • Gzip Compression - Enabled by default
  • SQLite Index - Fast lookups, portable metadata

Storage Efficiency

Scenario Borg dbbackup
Daily 10GB database 10GB + ~2GB/day 10GB + ~2GB/day
Same data, knows it's a DB Scripts needed Native support
Restore to point-in-time Built-in

Same dedup math. Zero wrapper scripts.

Enterprise Features, Zero Enterprise Pricing

Physical Backups (MySQL 8.0.17+)

# Native Clone Plugin - no XtraBackup needed
dbbackup backup single mydb --db-type mysql --cloud s3://bucket/

Filesystem Snapshots

# <100ms lock, instant snapshot, stream to cloud
dbbackup backup --engine=snapshot --snapshot-backend=lvm

Continuous Binlog/WAL Streaming

# Real-time capture to S3 - sub-second RPO
dbbackup binlog stream --target=s3://bucket/binlogs/

Parallel Cloud Upload

# Saturate your network, not your patience
dbbackup backup --engine=streaming --parallel-workers=8

Real Numbers

100GB MySQL database:

Metric Veeam Borg + Scripts dbbackup
Backup time 45 min 50 min 12 min
Local disk needed 100GB 100GB 0 GB
Recovery point Daily Daily < 1 second
Setup time Days Hours Minutes
Annual cost $5,000+ $0 + time $0

Migration Path

From Veeam

# Day 1: Test alongside existing
dbbackup backup single mydb --cloud s3://test-bucket/

# Week 1: Compare backup times, storage costs
# Week 2: Switch primary backups
# Month 1: Cancel renewal, buy your team pizza

From Borg/Restic

# Day 1: Replace your wrapper scripts
dbbackup dedup backup /var/lib/mysql/dumps/mydb.sql

# Day 2: Add PITR
dbbackup binlog stream --target=/mnt/nfs/binlogs/

# Day 3: Delete 500 lines of bash

The Commands You Need

# Deduplicated backups (Borg-style)
dbbackup dedup backup <file>
dbbackup dedup restore <id> <output>
dbbackup dedup stats
dbbackup dedup gc

# Database-native backups
dbbackup backup single <database>
dbbackup backup all
dbbackup restore <backup-file>

# Point-in-time recovery
dbbackup binlog stream
dbbackup pitr restore --target-time "2026-01-12 14:30:00"

# Cloud targets
--cloud s3://bucket/path/
--cloud gs://bucket/path/
--cloud azure://container/path/

Who Should Switch

From Veeam/Commvault: Same capabilities, zero license fees
From Borg/Restic: Native database support, no wrapper scripts
From "homegrown scripts": Production-ready, battle-tested
Cloud-native deployments: Kubernetes, ECS, Cloud Run ready
Compliance requirements: AES-256-GCM, audit logging

Get Started

# Download (single binary, ~48MB static linked)
curl -LO https://github.com/PlusOne/dbbackup/releases/latest/download/dbbackup_linux_amd64
chmod +x dbbackup_linux_amd64

# Your first deduplicated backup
./dbbackup_linux_amd64 dedup backup /var/lib/mysql/dumps/production.sql

# Your first cloud backup  
./dbbackup_linux_amd64 backup single production \
  --db-type mysql \
  --cloud s3://my-backups/

The Bottom Line

Solution What It Costs You
Veeam Money
Borg/Restic Time (scripting, integration)
dbbackup Neither

This is what open source really means.

Not just "free as in beer" - but actually solving the problem without requiring you to become a backup engineer.


Apache 2.0 Licensed. Free forever. No sales calls. No wrapper scripts.

GitHub | Releases | Changelog