Table of Contents
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.
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:
- 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
ORCLnotorcl. - 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.
- 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
SHITANRUANJIANorSAMIL). Check thelog_dbrecover.txtlog 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:
- Download the free Community Edition
- Use the "Examine Records Count" feature to scan your datafiles
- 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.
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_HOMEenvironment 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:
- Add the DBRECOVER directory to your antivirus exclusion list
- Re-extract the ZIP file
- 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:
- Copy the datafiles (.dbf) from your Unix server to a Windows PC
- Load them in DBRECOVER on Windows
- 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:
- Switch Versions: If using version 23rc1, download and try the older but more stable 2009 version.
- Narrow Scope: Don't load all datafiles at once. Start with only the core business tablespace files.
- 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 ofT_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:
- Find the parent Table Segment that owns this LOB
- Recover the main table data first
- LOB data is typically extracted along with the main table (if the structure is intact)
In Non-Dictionary Mode, identification is manual forensic work:
- Export sample rows (first 10 rows) from an
OBJ(xxxxx) - Examine the data content (dates, amounts, names, etc.)
- Deduce which business table it represents
- 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:
- Check
log_dbrecover.txtto confirm what name was detected - Contact support — you will receive two keys: one for your real DB_NAME and one for the internal name
- 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:
- Download from DBRECOVER for Oracle page
- Load your datafiles
- Use "Examine Records Count" or browse tables
- 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
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.
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]