{"Entry":{"collection":"guc","key":"ignore_invalid_pages","name":"ignore_invalid_pages","aliases":[],"metadata":{"baseline":false,"boot_human":"Not specified","boot_val":null,"category":"Developer Options","category_zh":"","changed_in":["17"],"changes":[{"documentation_changed":false,"fields":{},"from":"12","status":"added","to":"13"},{"documentation_changed":false,"fields":{"extra_desc":{"from":"Detection of WAL records having references to invalid pages during recovery causes PostgreSQL to raise a PANIC-level error, aborting the recovery. Setting ignore_invalid_pages to true causes the system to ignore invalid page references in WAL records (but still report a warning), and continue recovery. This behavior may cause crashes, data loss, propagate or hide corruption, or other serious problems. Only has an effect during recovery or in standby mode.","to":"Detection of WAL records having references to invalid pages during recovery causes PostgreSQL to raise a PANIC-level error, aborting the recovery. Setting \"ignore_invalid_pages\" to true causes the system to ignore invalid page references in WAL records (but still report a warning), and continue recovery. This behavior may cause crashes, data loss, propagate or hide corruption, or other serious problems. Only has an effect during recovery or in standby mode."}},"from":"16","status":"changed","to":"17"}],"content_hash":"84fe2c3a91ea290d060c0cf25fe5ce8f8b8e5246dbe34bff29b5cbbb88a2bc09","context":"","default_changed_in":[],"default_history":[{"from":"13","to":"19","value":"off"}],"derived_content_hash":"7300760e1cb059339bf957f2f2586e71a93e4060e86efcf4af2d204cccedeaf9","documentation_refresh":{"batch":"20261113","original_source_rev":"wiki-repair-20261023:adfafdaf33457276f37fa2349929f66e6cf69b9e0459cb40c2d6990acd0c4b3a","versions":{"14":"14.25","15":"15.20","16":"16.16","17":"17.12","18":"18.7","19":"19rc2"}},"editorial":{"advice":{"olap":"Read-only analytics does not make ignore_invalid_pages safe: corrupted pages can still poison results or structures. Use only on a disposable salvage copy with explicit acceptance of lost data.","oltp":"Never use ignore_invalid_pages as tuning or a steady-state availability setting. Stop writes, preserve immutable copies, exhaust backup/storage repair, document expected data loss, salvage narrowly, rebuild, and validate before any return to service.","small":"Do not enable ignore_invalid_pages merely because no replica exists. Preserve the original first and seek a clean backup; this switch can convert visible corruption into silent loss."},"mechanism":["During recovery, WAL references to invalid pages normally cause PANIC and stop recovery. ignore_invalid_pages logs a warning and continues past those references.","The startup-only setting has effect only in recovery or standby mode. Skipping redo can lose data, propagate corruption, and leave structures internally inconsistent even if the server reaches a running state.","It is an emergency salvage mechanism after preserving evidence and exhausting correct restore paths. A server that starts under it must not be considered healthy or promoted into normal service. Its postmaster context fixes the value at server start; changing it requires a restart."],"pitfalls":["Leaving ignore_invalid_pages enabled after the bounded diagnostic or recovery task.","Running the experiment on the only copy of production data.","Underestimating log, core-file, temporary-file, WAL, CPU, or connection-slot amplification.","Treating a server that merely starts or completes a query as proof that data and behavior are correct."],"references":[{"title":"PostgreSQL 19 Beta 4: ignore_invalid_pages","url":"https://www.postgresql.org/docs/19/runtime-config-developer.html#GUC-IGNORE-INVALID-PAGES"},{"title":"PostgreSQL 19 release notes","url":"https://www.postgresql.org/docs/19/release-19.html"}],"related":["ignore_checksum_failure","zero_damaged_pages","restore_command","wal_consistency_checking"],"summary":"ignore_invalid_pages — Continues recovery after an invalid pages failure. Observed in PG13–19 Beta 4; its last measured boot default is off in PG19 Beta 4, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA."},"enumvals":[],"first_version":"13","group":"Developer Options","group_slug":"developer","imported_at":"2026-09-27T17:57:31.389735+08:00","intro_commit":{"authored_at":"2020-01-22T11:56:34+09:00","discussion":["https://www.postgresql.org/message-id/CAHGQGwHCK6f77yeZD4MHOnN+PaTf6XiJfEB+Ce7SksSHjeAWtg@mail.gmail.com"],"hash":"41c184bc642b25f67fb1d8ee290f28805fa5a0b4","subject":"Add GUC ignore_invalid_pages.","url":"https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=41c184bc642b25f67fb1d8ee290f28805fa5a0b4"},"key":"ignore_invalid_pages","last_version":"20","max_val":"","min_val":"","name":"ignore_invalid_pages","position":177,"present_in":["13","14","15","16","17","18","19","20"],"repair_provenance":{"original_source_revision":"english-manuals:f0da43d224bd2a27e7c06ccceab2dd6f098ca7eca37ec84fb6b2089d39978ce5","receipt_sha256":"52d7cdd2913d1eadf783e6e99e70ac5715284f918e4f0cff2b6a3dfe137732bf","repair":"wiki-repair-20261023"},"short_desc":"If set to off (the default), detection of WAL records having references to invalid pages during recovery causes PostgreSQL to raise a PANIC-level error, aborting the recovery.","short_desc_zh":"","source_rev":"wiki-repair-20261023:adfafdaf33457276f37fa2349929f66e6cf69b9e0459cb40c2d6990acd0c4b3a","unit":"","vartype":"bool"}},"Definition":{"Collection":"guc","Key":"ignore_invalid_pages","SourceDatabase":"center","Version":"18","SourceTable":"guc","SourceKey":"ignore_invalid_pages","SourceRevision":"wiki-repair-20261023:adfafdaf33457276f37fa2349929f66e6cf69b9e0459cb40c2d6990acd0c4b3a","Facts":{"boot_val":"off","category":"Developer Options","context":"postmaster","description":"If set to off (the default), detection of WAL records having references to invalid pages during recovery causes PostgreSQL to raise a PANIC-level error, aborting the recovery. Setting ignore_invalid_pages to on causes the system to ignore invalid page references in WAL records (but still report a warning), and continue the recovery. This behavior may cause crashes, data loss, propagate or hide corruption, or other serious problems. However, it may allow you to get past the PANIC-level error, to finish the recovery, and to cause the server to start up. The parameter can only be set at server start. It only has effect during recovery or in standby mode.","description_zh":"如果设置为 off（默认值），则在恢复期间检测到引用无效页面的 WAL 记录会导致 PostgreSQL 引发 PANIC 级别错误，中止恢复。将 ignore_invalid_pages 设置为 on 会导致系统忽略 WAL 记录中的无效页面引用（但仍报告警告），并继续恢复。此行为可能会导致崩溃、数据丢失、传播或隐藏损坏，或其他严重问题。但是，它可能允许你跳过 PANIC 级错误，完成恢复，并启动服务器。参数只能在服务器启动时设置。它仅在恢复期间或备库模式下生效。","description_zh_html":"\u003cp\u003e\n        如果设置为 \u003ccode class=\"literal\"\u003eoff\u003c/code\u003e（默认值），则在恢复期间检测到引用无效页面的 WAL 记录会导致 \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e 引发 PANIC 级别错误，中止恢复。将 \u003ccode class=\"varname\"\u003eignore_invalid_pages\u003c/code\u003e 设置为 \u003ccode class=\"literal\"\u003eon\u003c/code\u003e 会导致系统忽略 WAL 记录中的无效页面引用（但仍报告警告），并继续恢复。此行为可能会\u003cspan class=\"emphasis\"\u003e\u003cem\u003e导致崩溃、数据丢失、传播或隐藏损坏，或其他严重问题\u003c/em\u003e\u003c/span\u003e。但是，它可能允许你跳过 PANIC 级错误，完成恢复，并启动服务器。参数只能在服务器启动时设置。它仅在恢复期间或备库模式下生效。\n       \u003c/p\u003e","doc":{"anchor":"GUC-IGNORE-INVALID-PAGES","file":"runtime-config-developer.html","lang":"en","sha256":"a3f6a107ed6ba4edaf6df03e52f4a469bd09350d545e4ff419e62844025ec1cf","slug":"18"},"doc_html":"\u003cp\u003e\n        If set to \u003ccode class=\"literal\"\u003eoff\u003c/code\u003e (the default), detection of\n        WAL records having references to invalid pages during\n        recovery causes \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e to\n        raise a PANIC-level error, aborting the recovery. Setting\n        \u003ccode class=\"varname\"\u003eignore_invalid_pages\u003c/code\u003e to \u003ccode class=\"literal\"\u003eon\u003c/code\u003e\n        causes the system to ignore invalid page references in WAL records\n        (but still report a warning), and continue the recovery.\n        This behavior may \u003cspan class=\"emphasis\"\u003e\u003cem\u003ecause crashes, data loss,\n        propagate or hide corruption, or other serious problems\u003c/em\u003e\u003c/span\u003e.\n        However, it may allow you to get past the PANIC-level error,\n        to finish the recovery, and to cause the server to start up.\n        The parameter can only be set at server start. It only has effect\n        during recovery or in standby mode.\n       \u003c/p\u003e","doc_same_as":"","documentation_revision":{"inputs":[{"file":"runtime-config-developer.html","kind":"same-version-reviewed-manual","locale":"en","sha256":"a3f6a107ed6ba4edaf6df03e52f4a469bd09350d545e4ff419e62844025ec1cf","version":"18.7"},{"file":"runtime-config-developer.html","kind":"same-version-reviewed-manual","locale":"zh-Hans","sha256":"e7e22aa5738a1d376b84af1adca796c5e14746266733f925eb50c3ef86a50655","version":"18.7"}],"release":"18.7","runtime_remeasured":false,"source_revision":"pgdoc:b9f0e7232f60f380d642ac9b99226606c254b552"},"documented":true,"enumvals":null,"extra_desc":"Detection of WAL records having references to invalid pages during recovery causes PostgreSQL to raise a PANIC-level error, aborting the recovery. Setting \"ignore_invalid_pages\" to true causes the system to ignore invalid page references in WAL records (but still report a warning), and continue recovery. This behavior may cause crashes, data loss, propagate or hide corruption, or other serious problems. Only has an effect during recovery or in standby mode.","lang":"en","max_val":null,"metadata_version":"18","min_val":null,"name":"ignore_invalid_pages","short_desc":"Continues recovery after an invalid pages failure.","source":"pg-settings-source-snapshot","translation_provenance":{"inputs":[{"kind":"current-pgdoc-translation","path":"/Users/vonng/pgsty/pgdoc/zh/18/html/runtime-config-developer.html","sha256":"3c08bf624188bbb0733dc7854e61c0c251c2578311ac3dc8fa626ab21b7911d1"}],"kind":"same-version-pgdoc","locale":"zh-Hans","source_revision":"b1b500221dbe5437cfca004d6b04d3f6e422765d","version":"18"},"unit":null,"vartype":"bool","zh_from":"same-version-manual"},"ManualEvidence":{"doc":{"anchor":"GUC-IGNORE-INVALID-PAGES","file":"runtime-config-developer.html","lang":"en","sha256":"a3f6a107ed6ba4edaf6df03e52f4a469bd09350d545e4ff419e62844025ec1cf","slug":"18"}},"MeasuredEvidence":{"metadata_version":"18"}},"Text":{"Collection":"guc","Key":"ignore_invalid_pages","SourceDatabase":"center","Version":"18","Locale":"en","Title":"ignore_invalid_pages","Summary":"If set to off (the default), detection of WAL records having references to invalid pages during recovery causes PostgreSQL to raise a PANIC-level error, aborting the recovery. Setting ignore_invalid_pages to on causes the system to ignore invalid page references in WAL records (but still report a warning), and continue the recovery. This behavior may cause crashes, data loss, propagate or hide corruption, or other serious problems. However, it may allow you to get past the PANIC-level error, to finish the recovery, and to cause the server to start up. The parameter can only be set at server start. It only has effect during recovery or in standby mode.","BodyHTML":"\u003cp\u003e\n        If set to \u003ccode\u003eoff\u003c/code\u003e (the default), detection of\n        WAL records having references to invalid pages during\n        recovery causes \u003cspan\u003ePostgreSQL\u003c/span\u003e to\n        raise a PANIC-level error, aborting the recovery. Setting\n        \u003ccode\u003eignore_invalid_pages\u003c/code\u003e to \u003ccode\u003eon\u003c/code\u003e\n        causes the system to ignore invalid page references in WAL records\n        (but still report a warning), and continue the recovery.\n        This behavior may \u003cspan\u003e\u003cem\u003ecause crashes, data loss,\n        propagate or hide corruption, or other serious problems\u003c/em\u003e\u003c/span\u003e.\n        However, it may allow you to get past the PANIC-level error,\n        to finish the recovery, and to cause the server to start up.\n        The parameter can only be set at server start. It only has effect\n        during recovery or in standby mode.\n       \u003c/p\u003e","SourceRevision":"wiki-repair-20261023:adfafdaf33457276f37fa2349929f66e6cf69b9e0459cb40c2d6990acd0c4b3a","ContentHash":"83ed78b69688973e3e7dccca347a350766b57cb6e8c8da694d228e11c8fe7ebd","Payload":{"description":"If set to off (the default), detection of WAL records having references to invalid pages during recovery causes PostgreSQL to raise a PANIC-level error, aborting the recovery. Setting ignore_invalid_pages to on causes the system to ignore invalid page references in WAL records (but still report a warning), and continue the recovery. This behavior may cause crashes, data loss, propagate or hide corruption, or other serious problems. However, it may allow you to get past the PANIC-level error, to finish the recovery, and to cause the server to start up. The parameter can only be set at server start. It only has effect during recovery or in standby mode."}},"RequestedLocale":"en","Fallback":false,"Versions":["13","14","15","16","17","18","19","20"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
