Plugin enterprise-grade para Oracle Database 11g R2 → 23ai no Bacula Community 15.0.3+, escrito 100% em Rust. Cinco modos de backup (Data Pump, RMAN local, RMAN-SBT direto via libobk-rs.so, CDP archivelog contínuo, replicação DR via Active Data Guard). Live-validado em Oracle 23ai com 523 cargo tests verdes. Zero AGPLv3 do Bacula vinculada estaticamente. Drop-in compatível com plugin do Bacula Enterprise — mesma sintaxe de FileSet.
Cinco modos de backup
| Modo | Descrição |
|---|---|
mode=dump |
Oracle Data Pump (expdp) em 12c+, legacy exp em 11g. Schema, tablespace ou full database. |
mode=rman |
RMAN para staging local, depois streamed ao Bacula SD. Opção FIFO zero-staging. |
mode=rman_sbt |
RMAN escreve direto no Bacula via libobk-rs.so SBT v2 — sem staging local. |
mode=cdp |
Daemon de archivelog shipping contínuo com tracking de RPO e métricas Prometheus. |
mode=replicate |
Replicação DR via RMAN DUPLICATE FROM ACTIVE DATABASE (EE) ou archivelog-apply (SE2). |
Comparativo vs Bacula Enterprise Oracle 18.2.3
| Recurso | Bacula Enterprise Oracle 18.2.3 | PodHeitor v1.1.0 |
|---|---|---|
| Linguagem | Perl + shell + C proprietário libobk.so |
Pure Rust (cdylib + musl static-pie) |
| Versões Oracle | 11g R2 → 21c | 11g R2 → 23ai |
Implementação libobk |
Proprietária, callback bconsole | libobk-rs.so — Rust cdylib |
| Modos de backup | dump, rman, rman_sbt | dump, rman, rman_sbt, cdp, replicate |
| Restore automation | bs_oracle_restore.pl (SSH + shell menu) |
RestoreObject / pluginrestoreconf (bconsole/Bacularis) |
| Replicação DR nativa | ❌ (licença separada) | ✅ mode=replicate (Active DG ou archivelog-apply) |
| CDP / archivelog contínuo | ❌ | ✅ daemon mode=cdp |
| Detector ransomware (anti-canary) | ❌ | ✅ Block-hash mass-change detector |
| Observabilidade Prometheus | ❌ | ✅ endpoint /metrics |
| Throttle I/O cgroups v2 | ❌ | ✅ |
| SBOM + audit CVE | ❌ | ✅ make audit + make sbom |
Validação ao vivo (registrada em log de jobs Bacula reais)
- F1: Topology discovery — versão, CDB/PDB, role DG, RAC detection ✅ 7/7 checks
- F2: Data Pump expdp backup — schema PHTEST 416 KB ✅ 1m27s
- F3: RMAN non-SBT 2-channel backup — 9 pieces / 451 MB ✅ 43 s
- F4: RMAN SBT via
libobk-rs— PTCOMM socket + multi-channel mpsc ✅ - F5: BCT auto-enable + SCN chain validation ✅
- F6: RESTORE PREVIEW 4 s, SCN 2090220–2090264 ✅
- F7: CDB/PDB topology + plano per-PDB ✅
- F8: Data Guard role gate (
prefer_standby=noprossegue,=yespula) ✅ - F9: TDE wallet + ASM topology; cross-endian wired ✅
- F10: VALIDATE DATABASE 16.8 s zero corrupt; DBVERIFY 131k pages 0 fail ✅
- F11: CDP daemon + Prometheus
/metrics+ cgroups v2 throttle ✅ - F12: archivelog_apply bootstrap T1 PASS; duplicate_active T2 PASS ✅ (parcial)
- F13: Canary sampler + PODHEITOR-ORACLE-AUDIT no job log ✅
- F14: RPM install em OL9.6, full backup job 4989 — T OK 26m10s ✅
- F16–F18: integração bacula-fd, restore PITR full (job 4956: 477 MB / 19 s) ✅
- F20: cargo audit 0 CVEs; cargo deny all-pass ✅
Configuração mínima
# /opt/bacula/etc/podheitor-oracle.conf
sid = ORCL
mode = rman_sbt
oracle_home = /u01/app/oracle/product/19c/dbhome_1
oracle_user = oracle
auth = os
channels = auto
compress = zstd:3
bct = auto
archivelog = include
# Symlink libobk-rs no Oracle home (somente modo rman_sbt)
sudo ln -sf /opt/bacula/lib/libobk-rs.so "$ORACLE_HOME/lib/libobk.so"
# Validar offline
/opt/bacula/bin/podheitor-oracle-backend --dry-run /opt/bacula/etc/podheitor-oracle.conf
# Reload FD
sudo systemctl restart bacula-fd
Instalação
# EL8/EL9 (RHEL, OL, Rocky, Alma)
sudo dnf install zstd
sudo dnf install podheitor-oracle-plugin-1.1.0-1.el9.x86_64.rpm
# Debian 12 / Ubuntu 24.04
sudo apt install ./podheitor-oracle-plugin_1.1.0-1_amd64.deb
Pronto para mudar?
Traga sua proposta de renovação ou contratação do Bacula Enterprise, Veeam, Commvault ou NetBackup. Garantimos no mínimo 50% de desconto, com mais funcionalidades inclusas.
Heitor Faria — Fundador, PodHeitor International
✉ [email protected]
☎ +1 (789) 726-1749 · +55 (61) 98268-4220 (WhatsApp)
Whitepaper técnico
📘 Ler o whitepaper técnico completo — arquitetura, modos de backup, integrações, anti-patterns e modelo de licenciamento.
Disponível em:
Português
English (Inglês)
Español (Espanhol)