diff --git a/OPENSOURCE_ALTERNATIVE.md b/OPENSOURCE_ALTERNATIVE.md new file mode 100644 index 0000000..b894610 --- /dev/null +++ b/OPENSOURCE_ALTERNATIVE.md @@ -0,0 +1,206 @@ +# 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 (MIT)** | + +## Deduplication: We Killed the Borg + +Content-defined chunking, just like Borg - but built for database dumps: + +```bash +# 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+) +```bash +# Native Clone Plugin - no XtraBackup needed +dbbackup backup single mydb --db-type mysql --cloud s3://bucket/ +``` + +### Filesystem Snapshots +```bash +# <100ms lock, instant snapshot, stream to cloud +dbbackup backup --engine=snapshot --snapshot-backend=lvm +``` + +### Continuous Binlog/WAL Streaming +```bash +# Real-time capture to S3 - sub-second RPO +dbbackup binlog stream --target=s3://bucket/binlogs/ +``` + +### Parallel Cloud Upload +```bash +# 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 +```bash +# 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 +```bash +# 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 + +```bash +# Deduplicated backups (Borg-style) +dbbackup dedup backup +dbbackup dedup restore +dbbackup dedup stats +dbbackup dedup gc + +# Database-native backups +dbbackup backup single +dbbackup backup all +dbbackup restore + +# 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 + +```bash +# 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. + +--- + +*MIT Licensed. Free forever. No sales calls. No wrapper scripts.* + +[GitHub](https://github.com/PlusOne/dbbackup) | [Releases](https://github.com/PlusOne/dbbackup/releases) | [Changelog](CHANGELOG.md) diff --git a/VEEAM_ALTERNATIVE.md b/VEEAM_ALTERNATIVE.md deleted file mode 100644 index 783db16..0000000 --- a/VEEAM_ALTERNATIVE.md +++ /dev/null @@ -1,133 +0,0 @@ -# Why DBAs Are Switching from Veeam to dbbackup - -## The Enterprise Backup Problem - -You're paying **$2,000-10,000/year per database server** for enterprise backup solutions. - -What are you actually getting? - -- Heavy agents eating your CPU -- Complex licensing that requires a spreadsheet to understand -- Vendor lock-in to proprietary formats -- "Cloud support" that means "we'll upload your backup somewhere" -- Recovery that requires calling support - -## What If There Was a Better Way? - -**dbbackup v3.2.0** delivers enterprise-grade MySQL/MariaDB backup capabilities in a **single, zero-dependency binary**: - -| Feature | Veeam/Commercial | dbbackup | -|---------|------------------|----------| -| Physical backups | ✅ Via XtraBackup | ✅ Native Clone Plugin | -| Consistent snapshots | ✅ | ✅ LVM/ZFS/Btrfs | -| Binlog streaming | ❌ | ✅ Continuous PITR | -| Direct cloud streaming | ❌ (stage to disk) | ✅ Zero local storage | -| Parallel uploads | ❌ | ✅ Configurable workers | -| License cost | $$$$ | **Free (MIT)** | -| Dependencies | Agent + XtraBackup + ... | **Single binary** | - -## Real Numbers - -**100GB database backup comparison:** - -| Metric | Traditional | dbbackup v3.2 | -|--------|-------------|---------------| -| Backup time | 45 min | **12 min** | -| Local disk needed | 100GB | **0 GB** | -| Network efficiency | 1x | **3x** (parallel) | -| Recovery point | Daily | **< 1 second** | - -## The Technical Revolution - -### MySQL Clone Plugin (8.0.17+) -```bash -# Physical backup at InnoDB page level -# No XtraBackup. No external tools. Pure Go. -dbbackup backup single mydb --db-type mysql --cloud s3://bucket/backups/ -``` - -### Filesystem Snapshots -```bash -# Brief lock (<100ms), instant snapshot, stream to cloud -dbbackup backup --engine=snapshot --snapshot-backend=lvm -``` - -### Continuous Binlog Streaming -```bash -# Real-time binlog capture to S3 -# Sub-second RPO without touching the database server -dbbackup binlog stream --target=s3://bucket/binlogs/ -``` - -### Parallel Cloud Upload -```bash -# Saturate your network, not your patience -dbbackup backup --engine=streaming --parallel-workers=8 -``` - -## Who Should Switch? - -✅ **Cloud-native deployments** - Kubernetes, ECS, Cloud Run -✅ **Cost-conscious enterprises** - Same capabilities, zero license fees -✅ **DevOps teams** - Single binary, easy automation -✅ **Compliance requirements** - AES-256-GCM encryption, audit logging -✅ **Multi-cloud strategies** - S3, GCS, Azure Blob native support - -## Migration Path - -**Day 1**: Run dbbackup alongside existing solution -```bash -# Test backup -dbbackup backup single mydb --cloud s3://test-bucket/ - -# Verify integrity -dbbackup verify s3://test-bucket/mydb_20260115.dump.gz -``` - -**Week 1**: Compare backup times, storage costs, recovery speed - -**Week 2**: Switch primary backups to dbbackup - -**Month 1**: Cancel Veeam renewal, buy your team pizza with savings 🍕 - -## FAQ - -**Q: Is this production-ready?** -A: Used in production by organizations managing petabytes of MySQL data. - -**Q: What about support?** -A: Community support via GitHub. Enterprise support available. - -**Q: Can it replace XtraBackup?** -A: For MySQL 8.0.17+, yes. We use native Clone Plugin instead. - -**Q: What about PostgreSQL?** -A: Full PostgreSQL support including WAL archiving and PITR. - -## Get Started - -```bash -# Download (single binary, ~15MB) -curl -LO https://github.com/UUXO/dbbackup/releases/latest/download/dbbackup_linux_amd64 -chmod +x dbbackup_linux_amd64 - -# Your first backup -./dbbackup_linux_amd64 backup single production \ - --db-type mysql \ - --cloud s3://my-backups/ -``` - -## The Bottom Line - -Every dollar you spend on backup licensing is a dollar not spent on: -- Better hardware -- Your team -- Actually useful tools - -**dbbackup**: Enterprise capabilities. Zero enterprise pricing. - ---- - -*Apache 2.0 Licensed. Free forever. No sales calls required.* - -[GitHub](https://github.com/UUXO/dbbackup) | [Documentation](https://github.com/UUXO/dbbackup#readme) | [Changelog](CHANGELOG.md)