1. Introduction: The Last Line of Defense

In enterprise database management, data integrity and availability form the cornerstone of business continuity. When conventional backup strategies fail, and Oracle's Recovery Manager (RMAN) and Data Guard mechanisms cannot handle catastrophic failures such as ORA-01194 (control file and data file inconsistency), ORA-00600 (internal errors), or severe file header corruption, Database Administrators (DBAs) often find themselves at a dead end.

DBRECOVER (formerly known as PRM-DUL) serves as a forensic-level recovery tool that bypasses the Oracle SQL engine to directly read underlying data files (datafiles). It represents the last hope for many enterprises to salvage their critical data assets.

What is DBRECOVER?

DBRECOVER is a Java-based tool that can extract data directly from Oracle datafiles (.dbf) without requiring a running Oracle instance, control files, or redo logs. It supports Oracle versions from 8i through 23c and can handle severely corrupted databases that cannot be opened through normal means.

2. Licensing & Commercial Questions

I purchased a license, but the key shows "Invalid Key" error. What's wrong?

This is typically caused by one of three issues:

  1. Case Sensitivity: The license is bound to the DB_NAME in a case-sensitive manner. Oracle internally stores DB_NAME in uppercase. Ensure you entered ORCL not orcl.
  2. Version Mismatch: Your key may be generated for a specific version (e.g., 2009 version) while you're running a different version (e.g., 23rc1). Different versions may use different key algorithms. Download and try the matching software version.
  3. Internal Name Recognition: If your file headers are severely damaged, the software may not detect the real DB_NAME and will fall back to an internal default name (such as SHITANRUANJIAN or SAMIL). Check the log_dbrecover.txt log file to see what DB_NAME the software detected. If it shows an internal name, contact support for a special key matching that internal name.

Can I purchase a "Technician License" to service all my clients' databases?

No. DBRECOVER uses a strict "single-database-single-license" policy. The license key is algorithmically bound to the target database's DB_NAME. This means for every unique client database you service, you must purchase a separate license.

For service providers with high purchase frequency, contact our sales team at [email protected] to inquire about volume discounts.

What is the price? Can I get an invoice?

The Enterprise Edition is priced at $1,350 USD per database. Payment is processed through Stripe, and an electronic receipt is automatically sent.

If you require a formal invoice with company tax information (VAT number, company name, address), send your details to [email protected] after payment completion, and we will manually issue one.

Can I get a refund if the software fails to recover my data?

No refunds are provided. Due to the special nature of data recovery services, we enforce a "try before you buy" policy.

Before purchasing:

  1. Download the free Community Edition
  2. Use the "Examine Records Count" feature to scan your datafiles
  3. Verify that you can see table structures and preview data (limited to 10,000 rows per table)

If you can see data in the Community Edition, it confirms the data is recoverable. Once a license key is issued, the transaction is final.

Important: Validate Before Purchase

Always use the Community Edition to verify data recoverability before purchasing. The Enterprise license only removes the 10,000 row export limit — it does not add any additional recovery capabilities.

3. Technical Operations & Setup

Why does my exported data only show 10,000 rows? My table has millions of records.

You are currently running the Community Edition (trial version), which has a hard-coded limit of 10,000 rows per table for export. This is not a software bug or data loss.

After entering a valid Enterprise Edition license key and restarting the software, this restriction is automatically lifted, allowing full data export.

The startup script does nothing when I click it — or my antivirus deletes it.

Java Environment Issue (Legacy versions only):

  • DBRECOVER 2512 and later: Includes bundled JRE — no separate Java installation required
  • Older versions (23rc1 and earlier): Require Java Runtime Environment (JRE) 1.8 or higher
  • If using an older version, ensure JAVA_HOME environment variable is correctly configured

Antivirus False Positive:

DBRECOVER performs low-level disk sector reading operations that may trigger heuristic detection in security software. This behavioral pattern is similar to what ransomware does (reading raw disk data), causing Windows Defender and other antivirus programs to flag it as a threat.

This is a false positive. To resolve:

  1. Add the DBRECOVER directory to your antivirus exclusion list
  2. Re-extract the ZIP file
  3. Run the application

My database runs on AIX/HP-UX. Can I recover it on Windows?

Yes, and this is the recommended approach.

DBRECOVER has built-in byte-order (endianness) conversion functionality. You can:

  1. Copy the datafiles (.dbf) from your Unix server to a Windows PC
  2. Load them in DBRECOVER on Windows
  3. The software automatically detects and handles Big Endian format from AIX/HP-UX/Solaris

This "off-site recovery" strategy avoids the risk of configuring Java on a damaged production server and provides a better GUI experience on Windows.

The software hangs or crashes during scanning. What should I do?

This typically occurs when the scanner encounters corrupted data blocks causing logical loops. Try these steps:

  1. Switch Versions: If using version 23rc1, download and try the older but more stable 2009 version.
  2. Narrow Scope: Don't load all datafiles at once. Start with only the core business tablespace files.
  3. Switch Modes: If Dictionary Mode hangs, the SYSTEM.DBF is likely corrupted. Switch to Non-Dictionary Mode.

4. Dictionary Mode vs Non-Dictionary Mode

Understanding these two modes is fundamental to using DBRECOVER effectively. The choice depends on whether your SYSTEM tablespace (containing Oracle's data dictionary) is intact.

Should I use Dictionary Mode or Non-Dictionary Mode?

Your choice depends on the health of your SYSTEM tablespace (typically SYSTEM.DBF):

Dictionary Mode:

  • When to use: When you have a healthy, intact SYSTEM.DBF file
  • What you get: Full table names, column names, and schema structure — just like browsing in a normal database
  • Experience: Navigate Schema → Table Name in a tree view, export tables by name

Non-Dictionary Mode:

  • When to use: When SYSTEM.DBF is lost, corrupted, or overwritten
  • What you get: Raw data segments identified only by DATA_OBJECT_ID (e.g., OBJ(12345) instead of T_ORDER)
  • Experience: You must manually identify tables by sampling data content and deducing what each object represents

In Non-Dictionary Mode, I see many "LOB Segment" entries. Are these my tables?

No. LOB Segments are storage areas for Large Objects (images, long text, BLOBs). They are attached to a parent table, not standalone tables.

You cannot extract meaningful structured data directly from a LOB segment. You must:

  1. Find the parent Table Segment that owns this LOB
  2. Recover the main table data first
  3. LOB data is typically extracted along with the main table (if the structure is intact)
Non-Dictionary Mode Recovery Process

In Non-Dictionary Mode, identification is manual forensic work:

  1. Export sample rows (first 10 rows) from an OBJ(xxxxx)
  2. Examine the data content (dates, amounts, names, etc.)
  3. Deduce which business table it represents
  4. Repeat for all objects you need to recover

This can be time-consuming for databases with thousands of objects.

5. Version Compatibility & Selection

Which DBRECOVER version should I use?

Two major versions are available:

Feature 2009 Legacy Version 2512 Modern Version (Current)
Oracle Support 8i, 9i, 10g, 11g 8i through 23ai/26c
Stability Extremely high, simple logic High (improved in 2512)
PDB/CDB Support No Yes (Multitenant architecture)
Bundled JRE No (requires Java 1.8+) Yes (no Java installation needed)
Scan Engine Basic linear scan Enhanced extent scanning with health checker
Best For Legacy systems (Oracle 11g and earlier) All Oracle versions, especially 12c+

Recommendation: Use version 2512 for most recovery scenarios. Keep the 2009 version as a fallback for Oracle 11g and earlier databases if the modern version encounters issues.

6. Troubleshooting Common Issues

The software detects DB_NAME as "SHITANRUANJIAN" instead of my actual database name.

This occurs when the datafile headers are severely corrupted and the software cannot read the real DB_NAME. The software falls back to internal default names like SHITANRUANJIAN or SAMIL.

Solution:

  1. Check log_dbrecover.txt to confirm what name was detected
  2. Contact support — you will receive two keys: one for your real DB_NAME and one for the internal name
  3. Use whichever key matches what the software detects

What does "File is fuzzy" mean?

A "fuzzy" file is one where the data blocks contain changes from different points in time — the file is internally inconsistent. This happens when:

  • Database crashed while datafiles were being written
  • Hot backup was interrupted before END BACKUP
  • Storage snapshots captured files at different moments

DBRECOVER can still read data from fuzzy files — it doesn't require consistency like the Oracle kernel does. You may lose uncommitted transactions, but committed data in the blocks can be recovered.

How do I check if my datafiles are usable before purchasing?

Use the Community Edition free trial:

  1. Download from DBRECOVER for Oracle page
  2. Load your datafiles
  3. Use "Examine Records Count" or browse tables
  4. If you can see tables and preview rows (up to 10,000), your data is recoverable

The Community Edition has identical recovery capabilities — only the export row count is limited.

7. Typical Recovery Scenarios

Understanding when DBRECOVER becomes the right tool helps set proper expectations. Here are the most common scenarios where customers turn to DBRECOVER.

ORA-01194: Archive Log Loss

ORA-01194: file %s needs more recovery to be consistent

The database crashed during recovery. Control file shows data files in "fuzzy" state requiring more redo logs, but those logs are physically lost.

Context: Customer has already tried hidden parameters like _ALLOW_RESETLOGS_CORRUPTION to force the database open, but failed.

DBRECOVER's Role: Acts as a "dirty read" tool. It ignores SCN consistency checks and reads data directly from blocks. Uncommitted transactions and unflushed redo data will be lost, but all data already written to datafile blocks can be recovered.

ORA-00600: Internal Errors

Context: Oracle instance repeatedly crashes due to internal logic errors (assertion failures). The database cannot mount or open. Official Oracle Support may require lengthy SR processing.

DBRECOVER's Role: Since DBRECOVER runs as a standalone Java program outside the Oracle instance, it is not affected by Oracle's internal validation logic. It's the only way to bypass Oracle's self-defense mechanisms and access the data.

ASM Diskgroup Failures

Context: ASM (Automatic Storage Management) diskgroup is damaged. You cannot see the .dbf files directly — only ASM disk devices.

DBRECOVER's Role: Use DBRECOVER's ASM extraction functionality (or companion PRMSCAN tool) to browse the ASM diskgroup like a file explorer and extract the datafiles. This is typically the first step before actual data recovery.

8. Quick Reference Tables

Version Feature Comparison

Dimension 2009 Legacy 23rc1 / 2512 Modern Selection Guidance
Oracle Version Support 8i, 9i, 10g, 11g 12c, 18c, 19c, 21c, 23c 11g or earlier → 2009; 12c+ → Modern
Stability Extremely high Occasional hangs on severe corruption If modern version hangs, try 2009
Multitenant (PDB/CDB) Not supported Fully supported PDB recovery requires modern version
Scan Engine Basic linear Enhanced extent scanning Modern scans deeper but is more sensitive

Common Error Codes and DBRECOVER Intervention

Oracle Error Meaning Standard Fix When to Use DBRECOVER
ORA-01194 Data file needs more recovery (SCN gap) Apply archived/online logs When archive logs are physically lost
ORA-00600 Internal error (kernel assertion failure) Oracle Support SR, patching When data dictionary is corrupted and instance cannot start
ORA-01122 Data file verification failed (header corruption) Restore from backup, RECOVER When no valid backup exists or RMAN cannot recognize the file
ORA-01578 Data block physically corrupt (bad block) RMAN BLOCKRECOVER, DBMS_REPAIR When bad blocks are in SYSTEM tablespace preventing instance startup

Conclusion

DBRECOVER fills the gap left by Oracle's standard support system when facing structural physical corruption. By using "bypass reading" technology, it reduces complex database recovery problems to file-level data mining problems.

However, this approach also brings a high operational barrier — users need to understand not only the business logic but also underlying concepts like data block structure and segment management to reorganize data in Non-Dictionary Mode.

The Best Recovery Needs No DBRECOVER

DBRECOVER is an expensive but necessary "insurance policy" for enterprises. But the research behind this FAQ reveals a harsh truth: the best recovery is one that never needs DBRECOVER.

A robust RMAN backup strategy, regular recovery drills, and off-site disaster recovery mechanisms are the fundamental ways to avoid the technical nightmare of "guessing which OBJ(xxxxx) is which table."

Need Expert Assistance?

For complex recovery scenarios, especially when standard methods have failed and critical business data must be recovered, our experts are available 24/7 to help.

Contact us at [email protected]