Overview
PDU provides data recovery methods for various MongoDB failure scenarios. Choose the appropriate recovery method based on your situation.
Choose Your Recovery Scenario
Recover from Corrupted Instance
Read the frozen WiredTiger data directory when the instance cannot start.
Recover from Corrupted Data File
Probe one WiredTiger file and export parseable records.
Recover Single Database
Select one database for export from a complete WiredTiger directory.
Recover Metadata Relationships and Log Prefixes
Salvage independent collection relationships when metadata is missing and build read-only recovery views from continuous WT logs.
Recover Deleted Records (Historical Candidates)
Extract pre-delete data from retained historical versions and pre-images.
Recover Updated Records (Historical Candidates)
Extract pre-update data from retained historical versions and pre-images.
Recover Old Versions from History Store
Read catalog-bound WiredTigerHS.wt with missing-page and modification-chain dependencies retained.
Recover Pre-Image Old Documents
Extract retained old documents and filter operation ranges from oplog source chains.
Recover Data at an Incident Time
Select incident-time candidates using checkpoint, history-chain and original commit evidence.
Recover Data from Mapped Fragments
Read scattered pages, overflow and catalog dependencies through declared logical-file ranges.
Scan Isolated Complete Blocks in an Image
Extract complete WiredTiger blocks within explicit ranges, retaining unknown attribution and missing dependencies.
Recover Plaintext Deep Fragments
Export complete BSON document candidates, independent field fragments and suspected structures separately.
Recover Data from Multiple Sources
Register directories, files and images independently, with added sources, failure isolation, pause and native reporting.
Recovery Scenario Comparison
| Recovery Scenario | Materials | Output |
|---|---|---|
| Recover from Corrupted Instance | dbPath · catalog | Checkpoint data |
| Recover from Corrupted Data File | WT file · version | Physical-version candidates |
| Recover Single Database | dbPath · catalog | Collection data and records |
| Recover Metadata Relationships and Log Prefixes | catalog / WT logs · checkpoint LSN | Independent relationships and read-only views |
| Recover Deleted Records (Historical Candidates) | collection history · HS | Old-version candidates |
| Recover Updated Records (Historical Candidates) | collection history · HS | Old-version candidates |
| Recover Old Versions from History Store | WiredTigerHS.wt · catalog | Old values and missing-chain reasons |
| Recover Pre-Image Old Documents | pre-image · oplog | Old documents and attribution |
| Recover Data at an Incident Time | checkpoint / HS · commit evidence | Time-snapshot candidates |
| Recover Data from Mapped Fragments | image · extent map | Mapped records and dependencies |
| Scan Isolated Complete Blocks in an Image | image · scan range | Complete-block candidates |
| Recover Plaintext Deep Fragments | file / image · readable bytes | Documents/fields/structures |
| Recover Data from Multiple Sources | directories / files / images | Independent results and summaries |
Quick Start
Configure the source path, launch PDU outside the sources and initialize, then choose the database and recovery method. State and output use launch cwd.
MONGODBDATA=/recovery-input/mongodb/source/dbpathparam sourceversion 8.0.0;
param sourcekind copy;
param sourcefrozen true;
b;
\l;
use appdb;
\dt;