Enterprise plugin for Microsoft SQL Server 2022 (Linux + Windows + Azure MI) on Bacula Community 15.0.3+. Capabilities exceeding the Bacula Enterprise MSSQL plugin itself: up to 64-way parallel stripes, 3 native replication modes, Always On AG awareness with automatic replica selection, full integrity suite, instant recovery, single-item restore and cross-server TDE capture. Drop-in compatible — same namespace as Bacula Enterprise mssql-fd, zero FileSet rewrites. 16/16 E2E PASS on SQL Server 2022 + 2-node Always On AG.
Capabilities
- 🪟 Windows + Linux — VDI on Windows; TDS/FIFO on Linux; Azure Managed Instance via
BACKUP TO URL - ⚡ Parallel striped I/O — up to 64-way parallel stripes, 4× throughput on VLDB
- 🔁 3 native replication modes — log shipping, AG bootstrap, fanout (1→N regions)
- 🔄 Always On AG aware — automatic replica selection, failover resilience, secondary seeding
- ✅ Full integrity suite — VERIFYONLY, DBCC CHECKDB, checksum, page audit
- 🚀 Instant recovery — database queryable in minutes while restore continues
- 🔍 Single-item restore — table/row extraction via ephemeral sandbox instance
- 📊 BI server coverage — SSAS (XMLA), SSRS, SSIS (SSISDB)
- 🔐 TDE-aware — capture and restore TDE certificates cross-server
- 📈 Prometheus + OpenTelemetry — built-in observability, Grafana-ready
- 🎯 Drop-in compatible — exact same namespace as Bacula Enterprise
mssql-fd
GA validation
| Metric | Result |
|---|---|
| E2E test suite (T01–T13, 16 tests) | 16 / 16 PASS (3 consecutive runs) |
| OL9 cargo test | 311 passed, 0 failed |
| Win2025 cargo test | 381 passed, 0 failed |
| SQL Server tested | SQL Server 2022 on Windows Server 2025 |
| AG configuration | 2-node, CLUSTER_TYPE=NONE, SYNCHRONOUS_COMMIT |
| Bacula version | Community 15.0.3 |
Quick Start — Linux (TDS/FIFO)
FileSet {
Name = "MSSQL-Linux"
Include {
Options { Signature = SHA256 }
Plugin = "podheitor-mssql: mode=tds_fifo hostname=localhost user=backupuser passfile=/opt/bacula/etc/.mssql_pass stripes=4 compress=native+zstd"
}
}
Quick Start — Windows (VDI)
FileSet {
Name = "MSSQL-Windows"
Enable VSS = no
Include {
Options { Signature = SHA256 }
Plugin = "podheitor-mssql: checksum=yes verify_backup=yes compress=native+zstd"
}
}
Quick Start — Always On AG (backup from secondary)
Plugin = "podheitor-mssql: ag_preference=readable_secondary ag_failover_retry=3 copyonly stripes=4"
Quick Start — VLDB (1 TB+, 8-way stripes)
Plugin = "podheitor-mssql: database=warehouse stripes=8 parallel_dbs=2 compress=native+zstd buffercount=32 maxtransfersize=4194304"
Comparison
| Feature | Bacula Community | Bacula Enterprise MSSQL | Veeam SQL Plug-in | PodHeitor MSSQL |
|---|---|---|---|---|
| Linux MSSQL via TDS/FIFO | No | Limited | Limited | Yes |
| Parallel stripes > 4 | No | 4 max | 16 max | 64 |
| Always On AG aware | No | Partial | Yes | Yes |
| TDE cross-server capture | No | Manual | Manual | Yes |
| SSAS / SSRS / SSIS coverage | No | No | SSIS only | SSAS+SSRS+SSIS |
| 1→N fanout replication | No | No | No | Yes |
| Instant recovery | No | No | Yes | Yes |
| Cost | Free | $$$$ | $$$$ | ≥50% cheaper |
Compatibility
- SQL Server 2017, 2019, 2022, Azure Managed Instance
- Bacula Community 15.0.3+
- Linux: RHEL/Oracle/Rocky/Alma 8/9 · Debian 12 · Ubuntu 22.04/24.04
- Windows: Server 2019, 2022, 2025 (VDI)
Installation
# Linux RHEL/Oracle/Rocky/Alma 9
sudo dnf install podheitor-mssql-plugin-2.0.0-1.el9.x86_64.rpm
# Linux Debian/Ubuntu
sudo dpkg -i podheitor-mssql-plugin_2.0.0-1_amd64.deb
# Windows: extract zip into C:Program FilesBaculaplugins
Ready to switch?
Bring us your renewal or new-contract proposal from Bacula Enterprise, Veeam, Commvault or NetBackup. We commit to a minimum 50% discount, with more capabilities included.
Heitor Faria — Founder, PodHeitor International
✉ [email protected]
☎ +1 (789) 726-1749 · +55 (61) 98268-4220 (WhatsApp)
Technical whitepaper
📘 Read the full technical whitepaper — architecture, backup modes, integrations, anti-patterns and licensing model.
Disponível em:
Português (Portuguese (Brazil))
English
Español (Spanish)