{
    "api_version": "1",
    "kind": "dse_post",
    "self": "https://update.dsesecurity.com/api/v1/posts/use-postgresql-manifest-verification-before-an-actual-restore-rehearsal/",
    "item": {
        "id": "https://update.dsesecurity.com/updates/use-postgresql-manifest-verification-before-an-actual-restore-rehearsal/",
        "slug": "use-postgresql-manifest-verification-before-an-actual-restore-rehearsal",
        "url": "https://update.dsesecurity.com/updates/use-postgresql-manifest-verification-before-an-actual-restore-rehearsal/",
        "alternate_urls": {
            "markdown": "https://update.dsesecurity.com/updates/use-postgresql-manifest-verification-before-an-actual-restore-rehearsal.md",
            "json": "https://update.dsesecurity.com/api/v1/posts/use-postgresql-manifest-verification-before-an-actual-restore-rehearsal/"
        },
        "title": "Use PostgreSQL manifest verification before an actual restore rehearsal",
        "summary": "Record manifest checks and database restore acceptance as two separate recovery gates.",
        "format": {
            "slug": "guide",
            "name": "Guide"
        },
        "priority": {
            "slug": "info",
            "name": "Information"
        },
        "featured": false,
        "image": {
            "theme": "continuity-recovery",
            "label": "Continuity & recovery",
            "alt": "Paired infrastructure paths converging on a stable recovered service.",
            "card_url": "https://update.dsesecurity.com/assets/editorial/continuity-recovery-card.webp?v=1.8.20",
            "hero_url": "https://update.dsesecurity.com/assets/editorial/continuity-recovery-hero.webp?v=1.8.20",
            "social_url": "https://update.dsesecurity.com/assets/editorial/continuity-recovery-social-v2.jpg?v=1.8.20",
            "width": 2400,
            "height": 1350
        },
        "topics": [
            {
                "slug": "business-continuity",
                "name": "Business Continuity",
                "url": "https://update.dsesecurity.com/topic/business-continuity/"
            },
            {
                "slug": "it",
                "name": "IT",
                "url": "https://update.dsesecurity.com/topic/it/"
            }
        ],
        "author": {
            "name": "DSE Security Editorial Team",
            "url": "https://update.dsesecurity.com/#editorial-team",
            "type": "Organization"
        },
        "publisher": {
            "name": "Detection Systems & Engineering",
            "url": "https://dsesecurity.com/"
        },
        "published_at": "2026-10-15T13:32:28+00:00",
        "modified_at": "2026-10-15T13:36:15+00:00",
        "reviewed_on": "2026-10-15",
        "reading_minutes": 2,
        "word_count": 243,
        "potentially_affected": "This applies to PostgreSQL 17 base backups with a usable manifest. It does not describe pg_dump archives, application acceptance testing, or an unconditional guarantee of recoverability.",
        "dse_recommendation": "DSE recommends giving manifest verification its own recorded result before scheduling the restore rehearsal.",
        "primary_source": {
            "name": "PostgreSQL 17 — pg_verifybackup",
            "url": "https://www.postgresql.org/docs/17/app-pgverifybackup.html",
            "published_on": null,
            "authority": "www.postgresql.org"
        },
        "publishing_principles": "https://update.dsesecurity.com/updates/dse-updates-editorial-methodology/",
        "usage_info": "https://update.dsesecurity.com/usage/",
        "copyright_notice": "Copyright © 2026 Detection Systems & Engineering. All rights reserved.",
        "content_html": "<p>Record manifest checks and database restore acceptance as two separate recovery gates.</p>\n<h2>Source facts</h2>\n<p>PostgreSQL 17 pg_verifybackup checks a pg_basebackup backup against its server-generated backup_manifest. It expects plain-format files; a tar-format backup must first be extracted. Verification checks the manifest, the expected file set, file checksums, and required WAL information, with documented exceptions. It does not perform every check a running PostgreSQL server will perform. The project explicitly recommends test restores and checking that the resulting databases work as expected even when manifest verification succeeds.</p>\n<p>Source: <a href=\"https://www.postgresql.org/docs/17/app-pgverifybackup.html\">PostgreSQL 17 — pg_verifybackup</a>.</p>\n<h2>Applicability</h2>\n<p>This applies to PostgreSQL 17 base backups with a usable manifest. It does not describe pg_dump archives, application acceptance testing, or an unconditional guarantee of recoverability.</p>\n<h2>DSE recommendation</h2>\n<p>DSE recommends giving manifest verification its own recorded result before scheduling the restore rehearsal. Preserve the manifest with the backup, retain all verification errors, and investigate unexpected files or changes rather than dismissing them as harmless. Keep the backup identity identical through verification and rehearsal so the evidence refers to the same artifact. Define application-level checks separately, including the records and relationships that matter to the service owner.</p>\n<h2>Verification</h2>\n<p>On an isolated copy, run the verification tool and retain its exit status. Then restore that same backup, allow recovery to complete, and perform the agreed application checks. Document a failed integrity check and a failed application check differently; each requires investigation before accepting the recovery point.</p>\n<h2>Official reference</h2>\n<p><a href=\"https://www.postgresql.org/docs/17/app-pgverifybackup.html\">PostgreSQL 17 — pg_verifybackup</a>. Reviewed October 15, 2026.</p>",
        "content_text": "Record manifest checks and database restore acceptance as two separate recovery gates.\nSource facts\nPostgreSQL 17 pg_verifybackup checks a pg_basebackup backup against its server-generated backup_manifest. It expects plain-format files; a tar-format backup must first be extracted. Verification checks the manifest, the expected file set, file checksums, and required WAL information, with documented exceptions. It does not perform every check a running PostgreSQL server will perform. The project explicitly recommends test restores and checking that the resulting databases work as expected even when manifest verification succeeds.\nSource: PostgreSQL 17 — pg_verifybackup.\nApplicability\nThis applies to PostgreSQL 17 base backups with a usable manifest. It does not describe pg_dump archives, application acceptance testing, or an unconditional guarantee of recoverability.\nDSE recommendation\nDSE recommends giving manifest verification its own recorded result before scheduling the restore rehearsal. Preserve the manifest with the backup, retain all verification errors, and investigate unexpected files or changes rather than dismissing them as harmless. Keep the backup identity identical through verification and rehearsal so the evidence refers to the same artifact. Define application-level checks separately, including the records and relationships that matter to the service owner.\nVerification\nOn an isolated copy, run the verification tool and retain its exit status. Then restore that same backup, allow recovery to complete, and perform the agreed application checks. Document a failed integrity check and a failed application check differently; each requires investigation before accepting the recovery point.\nOfficial reference\nPostgreSQL 17 — pg_verifybackup. Reviewed October 15, 2026.",
        "content_markdown": "Record manifest checks and database restore acceptance as two separate recovery gates.\n\n## Source facts\n\nPostgreSQL 17 pg_verifybackup checks a pg_basebackup backup against its server-generated backup_manifest. It expects plain-format files; a tar-format backup must first be extracted. Verification checks the manifest, the expected file set, file checksums, and required WAL information, with documented exceptions. It does not perform every check a running PostgreSQL server will perform. The project explicitly recommends test restores and checking that the resulting databases work as expected even when manifest verification succeeds.\n\nSource: [PostgreSQL 17 — pg_verifybackup](https://www.postgresql.org/docs/17/app-pgverifybackup.html).\n\n## Applicability\n\nThis applies to PostgreSQL 17 base backups with a usable manifest. It does not describe pg_dump archives, application acceptance testing, or an unconditional guarantee of recoverability.\n\n## DSE recommendation\n\nDSE recommends giving manifest verification its own recorded result before scheduling the restore rehearsal. Preserve the manifest with the backup, retain all verification errors, and investigate unexpected files or changes rather than dismissing them as harmless. Keep the backup identity identical through verification and rehearsal so the evidence refers to the same artifact. Define application-level checks separately, including the records and relationships that matter to the service owner.\n\n## Verification\n\nOn an isolated copy, run the verification tool and retain its exit status. Then restore that same backup, allow recovery to complete, and perform the agreed application checks. Document a failed integrity check and a failed application check differently; each requires investigation before accepting the recovery point.\n\n## Official reference\n\n[PostgreSQL 17 — pg_verifybackup](https://www.postgresql.org/docs/17/app-pgverifybackup.html). Reviewed October 15, 2026."
    },
    "json_ld": {
        "@context": "https://schema.org",
        "@graph": [
            {
                "@type": "Organization",
                "@id": "https://dsesecurity.com/#organization",
                "name": "Detection Systems & Engineering",
                "alternateName": "DSE Security",
                "url": "https://dsesecurity.com/",
                "logo": {
                    "@type": "ImageObject",
                    "url": "https://update.dsesecurity.com/assets/dse-logo-20260812.png?v=1.8.20"
                }
            },
            {
                "@type": "Organization",
                "@id": "https://update.dsesecurity.com/#editorial-team",
                "name": "DSE Security Editorial Team",
                "url": "https://update.dsesecurity.com/",
                "parentOrganization": {
                    "@id": "https://dsesecurity.com/#organization"
                }
            },
            {
                "@type": "WebSite",
                "@id": "https://update.dsesecurity.com/#website",
                "name": "DSE Updates",
                "alternateName": "DSE Security Knowledge Hub",
                "url": "https://update.dsesecurity.com/",
                "inLanguage": "en-US",
                "publisher": {
                    "@id": "https://dsesecurity.com/#organization"
                },
                "potentialAction": {
                    "@type": "SearchAction",
                    "target": {
                        "@type": "EntryPoint",
                        "urlTemplate": "https://update.dsesecurity.com/?q={search_term_string}"
                    },
                    "query-input": "required name=search_term_string"
                }
            },
            {
                "@type": "WebPage",
                "@id": "https://update.dsesecurity.com/updates/use-postgresql-manifest-verification-before-an-actual-restore-rehearsal/",
                "url": "https://update.dsesecurity.com/updates/use-postgresql-manifest-verification-before-an-actual-restore-rehearsal/",
                "isPartOf": {
                    "@id": "https://update.dsesecurity.com/#website"
                },
                "lastReviewed": "2026-10-15"
            },
            {
                "@type": "BreadcrumbList",
                "@id": "https://update.dsesecurity.com/updates/use-postgresql-manifest-verification-before-an-actual-restore-rehearsal/#breadcrumbs",
                "itemListElement": [
                    {
                        "@type": "ListItem",
                        "position": 1,
                        "name": "DSE Updates",
                        "item": "https://update.dsesecurity.com/"
                    },
                    {
                        "@type": "ListItem",
                        "position": 2,
                        "name": "Use PostgreSQL manifest verification before an actual restore rehearsal",
                        "item": "https://update.dsesecurity.com/updates/use-postgresql-manifest-verification-before-an-actual-restore-rehearsal/"
                    }
                ]
            },
            {
                "@type": [
                    "Article",
                    "TechArticle"
                ],
                "@id": "https://update.dsesecurity.com/updates/use-postgresql-manifest-verification-before-an-actual-restore-rehearsal/#article",
                "identifier": "https://update.dsesecurity.com/updates/use-postgresql-manifest-verification-before-an-actual-restore-rehearsal/",
                "url": "https://update.dsesecurity.com/updates/use-postgresql-manifest-verification-before-an-actual-restore-rehearsal/",
                "headline": "Use PostgreSQL manifest verification before an actual restore rehearsal",
                "description": "Record manifest checks and database restore acceptance as two separate recovery gates.",
                "abstract": "Record manifest checks and database restore acceptance as two separate recovery gates.",
                "articleBody": "Record manifest checks and database restore acceptance as two separate recovery gates.\nSource facts\nPostgreSQL 17 pg_verifybackup checks a pg_basebackup backup against its server-generated backup_manifest. It expects plain-format files; a tar-format backup must first be extracted. Verification checks the manifest, the expected file set, file checksums, and required WAL information, with documented exceptions. It does not perform every check a running PostgreSQL server will perform. The project explicitly recommends test restores and checking that the resulting databases work as expected even when manifest verification succeeds.\nSource: PostgreSQL 17 — pg_verifybackup.\nApplicability\nThis applies to PostgreSQL 17 base backups with a usable manifest. It does not describe pg_dump archives, application acceptance testing, or an unconditional guarantee of recoverability.\nDSE recommendation\nDSE recommends giving manifest verification its own recorded result before scheduling the restore rehearsal. Preserve the manifest with the backup, retain all verification errors, and investigate unexpected files or changes rather than dismissing them as harmless. Keep the backup identity identical through verification and rehearsal so the evidence refers to the same artifact. Define application-level checks separately, including the records and relationships that matter to the service owner.\nVerification\nOn an isolated copy, run the verification tool and retain its exit status. Then restore that same backup, allow recovery to complete, and perform the agreed application checks. Document a failed integrity check and a failed application check differently; each requires investigation before accepting the recovery point.\nOfficial reference\nPostgreSQL 17 — pg_verifybackup. Reviewed October 15, 2026.",
                "datePublished": "2026-10-15T13:32:28+00:00",
                "dateModified": "2026-10-15T13:36:15+00:00",
                "mainEntityOfPage": {
                    "@id": "https://update.dsesecurity.com/updates/use-postgresql-manifest-verification-before-an-actual-restore-rehearsal/"
                },
                "inLanguage": "en-US",
                "isAccessibleForFree": true,
                "author": {
                    "@type": "Organization",
                    "name": "DSE Security Editorial Team",
                    "url": "https://update.dsesecurity.com/#editorial-team"
                },
                "publisher": {
                    "@id": "https://dsesecurity.com/#organization"
                },
                "image": {
                    "@type": "ImageObject",
                    "@id": "https://update.dsesecurity.com/updates/use-postgresql-manifest-verification-before-an-actual-restore-rehearsal/#primaryimage",
                    "url": "https://update.dsesecurity.com/assets/editorial/continuity-recovery-social-v2.jpg?v=1.8.20",
                    "contentUrl": "https://update.dsesecurity.com/assets/editorial/continuity-recovery-social-v2.jpg?v=1.8.20",
                    "width": 1200,
                    "height": 630,
                    "caption": "Use PostgreSQL manifest verification before an actual restore rehearsal"
                },
                "articleSection": [
                    "Business Continuity",
                    "IT"
                ],
                "keywords": [
                    "Business Continuity",
                    "IT",
                    "Guide",
                    "Information priority"
                ],
                "genre": "Guide",
                "about": [
                    {
                        "@type": "Thing",
                        "name": "Business Continuity",
                        "url": "https://update.dsesecurity.com/topic/business-continuity/"
                    },
                    {
                        "@type": "Thing",
                        "name": "IT",
                        "url": "https://update.dsesecurity.com/topic/it/"
                    }
                ],
                "wordCount": 243,
                "timeRequired": "PT2M",
                "publishingPrinciples": "https://update.dsesecurity.com/updates/dse-updates-editorial-methodology/",
                "usageInfo": "https://update.dsesecurity.com/usage/",
                "copyrightHolder": {
                    "@id": "https://dsesecurity.com/#organization"
                },
                "copyrightNotice": "Copyright © 2026 Detection Systems & Engineering. All rights reserved.",
                "citation": {
                    "@type": "CreativeWork",
                    "name": "PostgreSQL 17 — pg_verifybackup",
                    "url": "https://www.postgresql.org/docs/17/app-pgverifybackup.html"
                }
            }
        ]
    }
}