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

  1. Create Case
  2. Register Independent Sources
  3. Recover by Mode
  4. 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. 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. 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. 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. 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. 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. 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.
MongoDB 场景案例