Have Copies, Old Files and Images — How Can They Be Used Together?
Recover Data from Multiple Sources
Scenario Description
Frozen directories, old collection files, disk images and other evidence have been found. Sources differ in version, freeze state and usable methods. Register and recover them together while keeping results independent to avoid incorrect merging by namespace or _id.
Possible Causes
- Evidence comes from different copies, devices or times.
- One incident contains directories, files and images.
- Execution, pause and native-result summaries must span multiple sources.
Challenges
Conventional recovery often requires complete files, a running instance or a usable backup. In these situations, choose a method based on the evidence that survives.
Common Errors and Symptoms
- - Some sources are recoverable while others are missing or unsupported.
- - Sources share _id values or collection names.
- - A child task has an unfinished output unit.
Why Traditional Methods Fail
- - Business merging loses source and version distinctions.
- - Success elsewhere cannot hide one source’s failure.
- - Manual STOP markers must be distinguished from case-command markers.
PDU Solution
Use PDU case commands to register each file source, fix its settings and create an independent child task. Run, pause, resume or view reports by source and mode. Batch execution records failures. Matching identifiers do not cause business data to be merged automatically.
Recovery Principle
- Create Case
- Register Independent Sources
- Recover by Mode
- Summarize Native Results
PDU Core Capabilities
- Register source IDs, frozen settings and evidence types separately.
- Use distinct modes for directories and files/images.
- Create separate child tasks and outputs per source.
- Retain a failed source’s reason while processing other sources.
- pause/resume preserve manual STOP markers.
- Reports read native records rather than exported bodies.
Recovery Steps
- 1
Create the Recovery Case
Case creation permits initially unknown versions, incident time and source states. Successful registration records evidence; it is not completed parsing or recovery.
- 2
Register Each Source
Each registration freezes current parsing parameters. Repeated submissions with matching identity, stat and configuration reuse a source ID. Register changed sources or configuration with a new ID while retaining old results.
- 3
Run Independent Recovery
Take source IDs from current registrations. Directories support current/history/all. Files and images support all/deep/deep-fields/deep-structures. deep rejects directory sources; register a concrete file or image first.
Each source uses its frozen parameters. Missing, unfrozen or unreadable sources retain original errors while other sources continue. The batch returns non-success without hiding failures.
- 4
Pause and Continue Recovery
pause stops the case and registered child tasks. resume clears only paired STOP markers created by this command, retaining manually created STOP markers. resume permits continuation; run still starts execution.
- 5
Handle Unfinished Output Units
resolve abandons the selected unfinished output and keeps completed results. Directory mode requires a namespace. ACTIVE units are not automatically read, discarded or marked complete.
- 6
View Summary Results
Identical _id, namespace or definitions do not trigger cross-source deduplication, overwrite or business merging. dump/rollback/config/log/platform/unknown can be registered as evidence. Sources lacking content adapters report unsupported explicitly; registration is not recovery.
Quick Command Examples
Preserve frozen sources and launch PDU outside them. Write configuration snippets to pdu.ini and execute PDU commands after startup. Replace example paths, versions, times and task identities with actual evidence.
# Create the Recovery Case
ds case create unknown "recover-surviving-data" UTC;
ds case note incident_time unknown;# Register Each Source
param sourceversion 8.0.0;
param sourcekind copy;
param sourcefrozen true;
ds case source add directory /recovery-input/mongodb/source/dbpath node-directory;
ds case source add wt_file /recovery-input/mongodb/source/collection-source.wt surviving-file;
param sourcekind imagecopy;
param extentmap /recovery-input/mongodb/source/extents.json;
ds case source add image /recovery-input/mongodb/source/image-source mapped-image;# Run Independent Recovery
ds case run all all;
ds case run 2 deep;
ds case run 2 deep-fields;
ds case report;# Pause and Continue Recovery
ds case pause;
ds case report;
ds case resume;
ds case run all all;# Handle Unfinished Output Units
ds case resolve 2 deep;
ds case run 2 deep;
ds case resolve 1 current appdb.orders;
ds case run 1 current;# View Summary Results
ds case status;
ds case report;Export Results
Case Register
incident.sqlite3 retains sources and independent attempt states.
Independent Child Tasks
source-<id>/<mode>-<format> retains each source’s output and checkpoints.
Case Report
Summarize native success, failure, unknown and unsupported states.
After export, record PDU’s native success and failure counts and original errors, retaining checkpoints. Resume uses native records and file metadata without rereading exported data or automatic trial import.
Prerequisites
- This documentation applies to Linux and source versions MongoDB 6.0.0, 7.0.0 and 8.0.0. Freeze source copies and launch PDU from a directory outside the sources. State and output use the launch directory without separate path settings. Confirm other versions and special layouts separately.
- Each source retains its own version, freeze declaration, mapping and scan parameters. Unknown information remains unknown.
- Prepare a matching program, license and sufficient space. Keep original evidence read-only and place the PDU launch directory outside the sources.
Important Notes
- Matching _id, namespace or layouts do not trigger cross-source deduplication, overwrite or merging.
- Registering evidence does not establish a content-recovery adapter for it.
- Use resolve only after deciding to abandon the selected unfinished output. Completed results are retained.