Read datafiles. Without an instance.
Open Oracle .dbf datafiles straight off disk and rebuild every table block by block — with no running database, no license, and no SQL layer in between.
//What is verified here
- BASIC & OLTP compression, row chaining and partitions — decoded block by block GA
- Offline TDE:
ewallet.p12→ master key → AES-256, fail-closed on a wrong key; a missing key loses the row loudly, never silently GA - TDE auto-login wallet (
cwallet.sso) —-auto_login_localis refused with a clear message BETA - Autoscan across the SYSTEM tablespace (dictionary extraction) GA
- Point-in-time with redo / archive-log apply (
--as-of, INSERT/UPDATE/DELETE); a missing archive-log sequence refuses (REDO_INCOMPLETE) BETA - Consistency certificate (offline/online, point-in-time): Stop-SCN + fuzzy-bit per datafile, cross-file checkpoint check, tiered verdicts, chain-of-custody GA
Datafile recovery as a whole is Beta in v4.16 (residual DBF out-of-row LOB edge cases) — verified at OLTP scale (512M-row restores, 19c/26ai). Metadata detection, compression decode, row chaining, corruption resilience and multi-thread export are GA.
//Step by step
Discover databases & tables
With no existing metadata, autoscan finds all Oracle databases on the host and reads the dictionary straight from the SYSTEM tablespace; scan shows the schemas/tables of a single file.
# Find every DB on the host + read dictionary from SYSTEM reclaimdb autoscan /oradata # Or inspect a single file without the SYSTEM tablespace reclaimdb scan /data/users01.dbf
Verify readability
reclaimdb verify -m metadata.json /backup/*.dbf # With a sealed point-in-time consistency certificate: reclaimdb verify --consistency-cert -m metadata.json /backup/*.dbf echo $? # 0 = ok, >0 = see exit codes
Extract tables (CSV / 14 more formats)
reclaimdb restore -m meta.json --csv ./out/ /backup/*.dbf # Specific tables, different format: reclaimdb restore -m meta.json -t HR.EMPLOYEES --parquet ./out/ /data/*.dbf
BASIC- and OLTP-compressed blocks, chained rows and partitioned tables are reconstructed block by block.
Unlock encrypted tablespaces (TDE) offline
Wallet → master key → AES-256, fully offline. A wrong key is fail-closed (exit 11) — never a silent mis-decode.
reclaimdb --tde-wallet ewallet.p12 --tde-wallet-password *** \ restore -m meta.json --csv ./out/ /data/*.dbf
Point-in-time: state at a timestamp / SCN
With archive logs, INSERT/UPDATE/DELETE from the redo are applied offline (--as-of). A gap in the archive-log sequence refuses fail-closed; --allow-redo-gap is an explicit best-effort opt-in.
reclaimdb restore -m meta.json --as-of "2024-06-15 14:00:00" \ --archive-dir /backup/archives/ --csv ./restored/ /backup/*.dbf
//Relevant exit codes
Default = fast path. On intact datafiles with a dictionary, reclaimDB answers without a full block scan. The forensic full scan is the special case (see Module 03).
Test this case on your data
Send us the kind of source you actually have — a .dmp, a .dbf, an RMAN backup piece or a storage snapshot. You get a signed evaluation binary, a sample report, and an honest assessment of which paths apply to your case.