{
    "api_version": "1",
    "kind": "dse_post",
    "self": "https://update.dsesecurity.com/api/v1/posts/set-the-postgresql-link-mode-upgrade-rollback-boundary-before-startup/",
    "item": {
        "id": "https://update.dsesecurity.com/updates/set-the-postgresql-link-mode-upgrade-rollback-boundary-before-startup/",
        "slug": "set-the-postgresql-link-mode-upgrade-rollback-boundary-before-startup",
        "url": "https://update.dsesecurity.com/updates/set-the-postgresql-link-mode-upgrade-rollback-boundary-before-startup/",
        "alternate_urls": {
            "markdown": "https://update.dsesecurity.com/updates/set-the-postgresql-link-mode-upgrade-rollback-boundary-before-startup.md",
            "json": "https://update.dsesecurity.com/api/v1/posts/set-the-postgresql-link-mode-upgrade-rollback-boundary-before-startup/"
        },
        "title": "Set the PostgreSQL link-mode upgrade rollback boundary before startup",
        "summary": "Decide the independent rollback path before starting a PostgreSQL cluster upgraded with linked files.",
        "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:42+00:00",
        "modified_at": "2026-10-15T13:36:15+00:00",
        "reviewed_on": "2026-10-15",
        "reading_minutes": 2,
        "word_count": 252,
        "potentially_affected": "This applies to PostgreSQL 17 pg_upgrade planning. It addresses the link-mode rollback boundary, not every extension compatibility check or permission to upgrade an unsupported application stack.",
        "dse_recommendation": "DSE recommends writing the rollback decision before the upgrade begins: which untouched recovery copy exists, who can approve first startup, and what evidence must be reviewed at that gate.",
        "primary_source": {
            "name": "PostgreSQL 17 — pg_upgrade",
            "url": "https://www.postgresql.org/docs/17/pgupgrade.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>Decide the independent rollback path before starting a PostgreSQL cluster upgraded with linked files.</p>\n<h2>Source facts</h2>\n<p>PostgreSQL 17 pg_upgrade offers link mode to avoid copying data files, reducing upgrade time and extra space compared with copying. The old and new data directories must share a filesystem for that mode. Crucially, once the upgraded new cluster is started, the old cluster is no longer usable with those linked files. The check option performs compatibility checks without changing data. Clone mode has different availability and old-cluster consequences, so the chosen mode matters to rollback design.</p>\n<p>Source: <a href=\"https://www.postgresql.org/docs/17/pgupgrade.html\">PostgreSQL 17 — pg_upgrade</a>.</p>\n<h2>Applicability</h2>\n<p>This applies to PostgreSQL 17 pg_upgrade planning. It addresses the link-mode rollback boundary, not every extension compatibility check or permission to upgrade an unsupported application stack.</p>\n<h2>DSE recommendation</h2>\n<p>DSE recommends writing the rollback decision before the upgrade begins: which untouched recovery copy exists, who can approve first startup, and what evidence must be reviewed at that gate. Run compatibility checks and a timed rehearsal using the intended mode. Do not describe the old data directory as the fallback after linked-file startup. Record filesystem prerequisites and restoration steps explicitly, along with the application checks needed before normal write traffic resumes.</p>\n<h2>Verification</h2>\n<p>Rehearse the upgrade on an isolated copy, retain check output, and verify the documented recovery path from an independent preserved copy. Confirm the team understands the point after which the old linked directory cannot serve as rollback. Record application and extension checks before approving the live plan.</p>\n<h2>Official reference</h2>\n<p><a href=\"https://www.postgresql.org/docs/17/pgupgrade.html\">PostgreSQL 17 — pg_upgrade</a>. Reviewed October 15, 2026.</p>",
        "content_text": "Decide the independent rollback path before starting a PostgreSQL cluster upgraded with linked files.\nSource facts\nPostgreSQL 17 pg_upgrade offers link mode to avoid copying data files, reducing upgrade time and extra space compared with copying. The old and new data directories must share a filesystem for that mode. Crucially, once the upgraded new cluster is started, the old cluster is no longer usable with those linked files. The check option performs compatibility checks without changing data. Clone mode has different availability and old-cluster consequences, so the chosen mode matters to rollback design.\nSource: PostgreSQL 17 — pg_upgrade.\nApplicability\nThis applies to PostgreSQL 17 pg_upgrade planning. It addresses the link-mode rollback boundary, not every extension compatibility check or permission to upgrade an unsupported application stack.\nDSE recommendation\nDSE recommends writing the rollback decision before the upgrade begins: which untouched recovery copy exists, who can approve first startup, and what evidence must be reviewed at that gate. Run compatibility checks and a timed rehearsal using the intended mode. Do not describe the old data directory as the fallback after linked-file startup. Record filesystem prerequisites and restoration steps explicitly, along with the application checks needed before normal write traffic resumes.\nVerification\nRehearse the upgrade on an isolated copy, retain check output, and verify the documented recovery path from an independent preserved copy. Confirm the team understands the point after which the old linked directory cannot serve as rollback. Record application and extension checks before approving the live plan.\nOfficial reference\nPostgreSQL 17 — pg_upgrade. Reviewed October 15, 2026.",
        "content_markdown": "Decide the independent rollback path before starting a PostgreSQL cluster upgraded with linked files.\n\n## Source facts\n\nPostgreSQL 17 pg_upgrade offers link mode to avoid copying data files, reducing upgrade time and extra space compared with copying. The old and new data directories must share a filesystem for that mode. Crucially, once the upgraded new cluster is started, the old cluster is no longer usable with those linked files. The check option performs compatibility checks without changing data. Clone mode has different availability and old-cluster consequences, so the chosen mode matters to rollback design.\n\nSource: [PostgreSQL 17 — pg_upgrade](https://www.postgresql.org/docs/17/pgupgrade.html).\n\n## Applicability\n\nThis applies to PostgreSQL 17 pg_upgrade planning. It addresses the link-mode rollback boundary, not every extension compatibility check or permission to upgrade an unsupported application stack.\n\n## DSE recommendation\n\nDSE recommends writing the rollback decision before the upgrade begins: which untouched recovery copy exists, who can approve first startup, and what evidence must be reviewed at that gate. Run compatibility checks and a timed rehearsal using the intended mode. Do not describe the old data directory as the fallback after linked-file startup. Record filesystem prerequisites and restoration steps explicitly, along with the application checks needed before normal write traffic resumes.\n\n## Verification\n\nRehearse the upgrade on an isolated copy, retain check output, and verify the documented recovery path from an independent preserved copy. Confirm the team understands the point after which the old linked directory cannot serve as rollback. Record application and extension checks before approving the live plan.\n\n## Official reference\n\n[PostgreSQL 17 — pg_upgrade](https://www.postgresql.org/docs/17/pgupgrade.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/set-the-postgresql-link-mode-upgrade-rollback-boundary-before-startup/",
                "url": "https://update.dsesecurity.com/updates/set-the-postgresql-link-mode-upgrade-rollback-boundary-before-startup/",
                "isPartOf": {
                    "@id": "https://update.dsesecurity.com/#website"
                },
                "lastReviewed": "2026-10-15"
            },
            {
                "@type": "BreadcrumbList",
                "@id": "https://update.dsesecurity.com/updates/set-the-postgresql-link-mode-upgrade-rollback-boundary-before-startup/#breadcrumbs",
                "itemListElement": [
                    {
                        "@type": "ListItem",
                        "position": 1,
                        "name": "DSE Updates",
                        "item": "https://update.dsesecurity.com/"
                    },
                    {
                        "@type": "ListItem",
                        "position": 2,
                        "name": "Set the PostgreSQL link-mode upgrade rollback boundary before startup",
                        "item": "https://update.dsesecurity.com/updates/set-the-postgresql-link-mode-upgrade-rollback-boundary-before-startup/"
                    }
                ]
            },
            {
                "@type": [
                    "Article",
                    "TechArticle"
                ],
                "@id": "https://update.dsesecurity.com/updates/set-the-postgresql-link-mode-upgrade-rollback-boundary-before-startup/#article",
                "identifier": "https://update.dsesecurity.com/updates/set-the-postgresql-link-mode-upgrade-rollback-boundary-before-startup/",
                "url": "https://update.dsesecurity.com/updates/set-the-postgresql-link-mode-upgrade-rollback-boundary-before-startup/",
                "headline": "Set the PostgreSQL link-mode upgrade rollback boundary before startup",
                "description": "Decide the independent rollback path before starting a PostgreSQL cluster upgraded with linked files.",
                "abstract": "Decide the independent rollback path before starting a PostgreSQL cluster upgraded with linked files.",
                "articleBody": "Decide the independent rollback path before starting a PostgreSQL cluster upgraded with linked files.\nSource facts\nPostgreSQL 17 pg_upgrade offers link mode to avoid copying data files, reducing upgrade time and extra space compared with copying. The old and new data directories must share a filesystem for that mode. Crucially, once the upgraded new cluster is started, the old cluster is no longer usable with those linked files. The check option performs compatibility checks without changing data. Clone mode has different availability and old-cluster consequences, so the chosen mode matters to rollback design.\nSource: PostgreSQL 17 — pg_upgrade.\nApplicability\nThis applies to PostgreSQL 17 pg_upgrade planning. It addresses the link-mode rollback boundary, not every extension compatibility check or permission to upgrade an unsupported application stack.\nDSE recommendation\nDSE recommends writing the rollback decision before the upgrade begins: which untouched recovery copy exists, who can approve first startup, and what evidence must be reviewed at that gate. Run compatibility checks and a timed rehearsal using the intended mode. Do not describe the old data directory as the fallback after linked-file startup. Record filesystem prerequisites and restoration steps explicitly, along with the application checks needed before normal write traffic resumes.\nVerification\nRehearse the upgrade on an isolated copy, retain check output, and verify the documented recovery path from an independent preserved copy. Confirm the team understands the point after which the old linked directory cannot serve as rollback. Record application and extension checks before approving the live plan.\nOfficial reference\nPostgreSQL 17 — pg_upgrade. Reviewed October 15, 2026.",
                "datePublished": "2026-10-15T13:32:42+00:00",
                "dateModified": "2026-10-15T13:36:15+00:00",
                "mainEntityOfPage": {
                    "@id": "https://update.dsesecurity.com/updates/set-the-postgresql-link-mode-upgrade-rollback-boundary-before-startup/"
                },
                "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/set-the-postgresql-link-mode-upgrade-rollback-boundary-before-startup/#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": "Set the PostgreSQL link-mode upgrade rollback boundary before startup"
                },
                "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": 252,
                "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_upgrade",
                    "url": "https://www.postgresql.org/docs/17/pgupgrade.html"
                }
            }
        ]
    }
}