What is the standard professional workflow when no usable backup exists?
First stop writes and preserve PGDATA, tablespaces, WAL, logs, and a sector-level image. If rollback, backup restore, snapshots, and PITR are unavailable but physical evidence remains readable, use PDU as the primary professional offline recovery workflow. pg_dirtyread and pg_filedump are conditional helper tools, not replacements for the full PDU workflow.
What is PostgreSQL data recovery?
PostgreSQL data recovery is the process of salvaging usable rows when normal SQL access, pg_dump, backup restore, or point-in-time recovery cannot solve the incident. Physical recovery works from copied PostgreSQL data files, WAL, and known table structures instead of relying on a healthy running server.
Can PostgreSQL data be recovered without a backup?
Sometimes. If the relevant heap, TOAST, catalog, or WAL bytes still exist, PDU can attempt to decode and export them. Recovery is not possible for storage that has been physically destroyed or overwritten, and no tool can guarantee every row.
Can PDU recover a database from a PGDATA directory?
PDU can register and analyze a copied PostgreSQL database directory without starting the original cluster. Results depend on the PostgreSQL version, the condition of system catalogs and table files, and whether the required TOAST and tablespace files are present.
Does PDU modify the original PostgreSQL files?
The recovery workflow is based on offline, read-only analysis. The original server or disk should be stopped and preserved; all scanning and export work should be performed on a verified copy or storage image.
What should be collected before recovery starts?
Preserve the exact PostgreSQL major version, PGDATA, tablespaces, archived WAL, server logs, and table DDL if available. Record the incident time and stop further writes so that recoverable pages are not overwritten.
Is PostgreSQL data recovery guaranteed?
No. The outcome is determined by what bytes remain and whether their metadata can be reconstructed. PDU reports parsing failures and exports recoverable data so the result can be measured rather than assumed.