{"Entry":{"collection":"guc","key":"log_startup_progress_interval","name":"log_startup_progress_interval","aliases":[],"metadata":{"baseline":false,"boot_human":"Not specified","boot_val":null,"category":"Reporting and Logging / When to Log","category_zh":"","changed_in":["18"],"changes":[{"documentation_changed":false,"fields":{},"from":"14","status":"added","to":"15"},{"documentation_changed":false,"fields":{"extra_desc":{"from":"0 turns this feature off.","to":"0 disables progress updates."}},"from":"17","status":"changed","to":"18"}],"content_hash":"c6df13d2b2e3e4c92917cb295bbeb05b866048eb53d5020e7c5748f159c75979","context":"","default_changed_in":[],"default_history":[{"from":"15","to":"19","value":"10 s"}],"derived_content_hash":"eb5a8bf7b3b6f7ec219e2aeb8a030f73a90124cda2d745601813350116876325","documentation_refresh":{"batch":"20261113","original_source_rev":"wiki-repair-20261023:998f4fd945aff40dd5d16a1718d5315f57659418d2fc0bd7942cf5e992c5c1c0","versions":{"15":"15.20","16":"16.16","17":"17.12","18":"18.7","19":"19rc2"}},"editorial":{"advice":{"olap":"Analytical jobs can justify richer log_startup_progress_interval telemetry, but account for long statements, large bind values, and bursty completion patterns in the log pipeline.","oltp":"Tune log_startup_progress_interval against an explicit observability question and a measured log-volume budget. Prefer selective thresholds, sampling, or role-level overrides over indiscriminate capture.","small":"Keep log_startup_progress_interval useful but bounded: verify disk, collector, retention, and redaction capacity before increasing detail or frequency."},"mechanism":["log_startup_progress_interval defines the interval between progress updates for long-running startup operations. 0 disables progress updates. Startup processes emit periodic progress for operations such as WAL replay when they exceed the interval; zero disables these updates.","log_startup_progress_interval is a SIGHUP-context setting: a configuration reload activates the new server value without a restart; subsequent operations that consult it use the refreshed value.","It changes emitted diagnostic data rather than query semantics, but volume, sensitive content, log_line_prefix, destinations, collector throughput, and retention determine operational cost and usefulness."],"pitfalls":["Editing log_startup_progress_interval without reloading configuration and verifying the effective value and subsequent behavior.","Enabling richer logging without budgeting collector throughput, storage, retention, and downstream query cost.","Writing SQL text, bind values, identities, or host data without a redaction and access-control policy.","Changing log_startup_progress_interval globally without a rollback plan and a client or operational compatibility test."],"references":[{"title":"PostgreSQL 19 Beta 4: log_startup_progress_interval","url":"https://www.postgresql.org/docs/19/runtime-config-logging.html#GUC-LOG-STARTUP-PROGRESS-INTERVAL"},{"title":"PostgreSQL 19 release notes","url":"https://www.postgresql.org/docs/19/release-19.html"}],"related":["log_checkpoints","log_autovacuum_min_duration","log_lock_waits","log_lock_failures","log_temp_files","log_replication_commands"],"summary":"log_startup_progress_interval is the PostgreSQL setting that defines the interval between progress updates for long-running startup operations."},"enumvals":[],"first_version":"15","group":"Reporting and Logging","group_slug":"logging","imported_at":"2026-09-30T00:40:57.419961+08:00","intro_commit":{"authored_at":"2021-10-25T11:51:57-04:00","discussion":["https://postgr.es/m/CA+TgmoaHQrgDFOBwgY16XCoMtXxsrVGFB2jNCvb7-ubuEe1MGg@mail.gmail.com","https://postgr.es/m/CAMm1aWaHF7VE69572_OLQ+MgpT5RUiUDgF1x5RrtkJBLdpRj3Q@mail.gmail.com"],"hash":"9ce346eabf350a130bba46be3f8c50ba28506969","subject":"Report progress of startup operations that take a long time.","url":"https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=9ce346eabf350a130bba46be3f8c50ba28506969"},"key":"log_startup_progress_interval","last_version":"20","max_val":"","min_val":"","name":"log_startup_progress_interval","position":247,"present_in":["15","16","17","18","19","20"],"repair_provenance":{"original_source_revision":"english-manuals:110b67173afd6c3c1e2166f444512e3bc85b2884714c44bda909896e3af0f2f6","receipt_sha256":"c1f7fc40ded262c236118972febeaf6e200f76a3349db250396daffa47705fea","repair":"wiki-repair-20261023"},"short_desc":"Sets the amount of time after which the startup process will log a message about a long-running operation that is still in progress, as well as the interval between further progress messages for that operation.","short_desc_zh":"","source_rev":"wiki-repair-20261023:998f4fd945aff40dd5d16a1718d5315f57659418d2fc0bd7942cf5e992c5c1c0","unit":"","vartype":"integer"}},"Definition":{"Collection":"guc","Key":"log_startup_progress_interval","SourceDatabase":"center","Version":"18","SourceTable":"guc","SourceKey":"log_startup_progress_interval","SourceRevision":"wiki-repair-20261023:998f4fd945aff40dd5d16a1718d5315f57659418d2fc0bd7942cf5e992c5c1c0","Facts":{"boot_val":"10000","category":"Reporting and Logging / When to Log","context":"sighup","description":"Sets the amount of time after which the startup process will log a message about a long-running operation that is still in progress, as well as the interval between further progress messages for that operation. The default is 10 seconds. A setting of 0 disables the feature. If this value is specified without units, it is taken as milliseconds. This setting is applied separately to each operation. This parameter can only be set in the postgresql.conf file or on the server command line. For example, if syncing the data directory takes 25 seconds and thereafter resetting unlogged relations takes 8 seconds, and if this setting has the default value of 10 seconds, then a messages will be logged for syncing the data directory after it has been in progress for 10 seconds and again after it has been in progress for 20 seconds, but nothing will be logged for resetting unlogged relations.","description_zh":"设置启动进程在长时间运行的操作开始后，等待多久才记录第一条进度消息，以及此后该操作的进度消息之间的时间间隔。默认值为 10 秒。设置为 0 会禁用该功能。如果未指定单位，则将其视为毫秒。此设置分别应用于每个操作。此参数只能在 postgresql.conf 文件或服务器命令行中设置。 例如，如果同步数据目录需要 25 秒，然后重置不记录 WAL 的关系需要 8 秒，如果此设置的默认值为 10 秒，那么在数据目录同步进行了 10 秒后，将记录一条消息，再在进行了 20 秒后记录一条消息，但对于重置不记录 WAL 的关系不会记录任何消息。","description_zh_html":"\u003cp\u003e\n         设置启动进程在长时间运行的操作开始后，等待多久才记录第一条进度消息，以及此后该操作的进度消息之间的时间间隔。默认值为 10 秒。设置为 \u003ccode class=\"literal\"\u003e0\u003c/code\u003e 会禁用该功能。如果未指定单位，则将其视为毫秒。此设置分别应用于每个操作。此参数只能在 \u003ccode class=\"filename\"\u003epostgresql.conf\u003c/code\u003e 文件或服务器命令行中设置。\n        \u003c/p\u003e\u003cp\u003e\n         例如，如果同步数据目录需要 25 秒，然后重置不记录 WAL 的关系需要 8 秒，如果此设置的默认值为 10 秒，那么在数据目录同步进行了 10 秒后，将记录一条消息，再在进行了 20 秒后记录一条消息，但对于重置不记录 WAL 的关系不会记录任何消息。\n        \u003c/p\u003e","doc":{"anchor":"GUC-LOG-STARTUP-PROGRESS-INTERVAL","file":"runtime-config-logging.html","lang":"en","sha256":"278d913b9c0f735c5cd7b35fd7205826bbd9c449805370d2dbe54105c0ed1d88","slug":"18"},"doc_html":"\u003cp\u003e\n         Sets the amount of time after which the startup process will log\n         a message about a long-running operation that is still in progress,\n         as well as the interval between further progress messages for that\n         operation. The default is 10 seconds. A setting of \u003ccode class=\"literal\"\u003e0\u003c/code\u003e\n         disables the feature.  If this value is specified without units,\n         it is taken as milliseconds.  This setting is applied separately to\n         each operation.\n         This parameter can only be set in the \u003ccode class=\"filename\"\u003epostgresql.conf\u003c/code\u003e\n         file or on the server command line.\n        \u003c/p\u003e\u003cp\u003e\n         For example, if syncing the data directory takes 25 seconds and\n         thereafter resetting unlogged relations takes 8 seconds, and if this\n         setting has the default value of 10 seconds, then a messages will be\n         logged for syncing the data directory after it has been in progress\n         for 10 seconds and again after it has been in progress for 20 seconds,\n         but nothing will be logged for resetting unlogged relations.\n        \u003c/p\u003e","doc_same_as":"","documentation_revision":{"inputs":[{"file":"runtime-config-logging.html","kind":"same-version-reviewed-manual","locale":"en","sha256":"278d913b9c0f735c5cd7b35fd7205826bbd9c449805370d2dbe54105c0ed1d88","version":"18.7"},{"file":"runtime-config-logging.html","kind":"same-version-reviewed-manual","locale":"zh-Hans","sha256":"68c010254e1859ec0b76f06a563babd51a6c38997f1242e35e4c6b649724b1cb","version":"18.7"}],"release":"18.7","runtime_remeasured":false,"source_revision":"pgdoc:b9f0e7232f60f380d642ac9b99226606c254b552"},"documented":true,"enumvals":null,"extra_desc":"0 disables progress updates.","lang":"en","max_val":"2147483647","metadata_version":"18","min_val":"0","name":"log_startup_progress_interval","short_desc":"Time between progress updates for long-running startup operations.","source":"pg-settings-source-snapshot","translation_provenance":{"inputs":[{"kind":"current-pgdoc-translation","path":"/Users/vonng/pgsty/pgdoc/zh/18/html/runtime-config-logging.html","sha256":"a322f5293f10e348b5fc5dca98fdb6af52462723a215b8701c3b9d933e2933b4"}],"kind":"same-version-pgdoc","locale":"zh-Hans","source_revision":"b1b500221dbe5437cfca004d6b04d3f6e422765d","version":"18"},"unit":"ms","vartype":"integer","zh_from":"same-version-manual"},"ManualEvidence":{"doc":{"anchor":"GUC-LOG-STARTUP-PROGRESS-INTERVAL","file":"runtime-config-logging.html","lang":"en","sha256":"278d913b9c0f735c5cd7b35fd7205826bbd9c449805370d2dbe54105c0ed1d88","slug":"18"}},"MeasuredEvidence":{"metadata_version":"18"}},"Text":{"Collection":"guc","Key":"log_startup_progress_interval","SourceDatabase":"center","Version":"18","Locale":"en","Title":"log_startup_progress_interval","Summary":"Sets the amount of time after which the startup process will log a message about a long-running operation that is still in progress, as well as the interval between further progress messages for that operation. The default is 10 seconds. A setting of 0 disables the feature. If this value is specified without units, it is taken as milliseconds. This setting is applied separately to each operation. This parameter can only be set in the postgresql.conf file or on the server command line. For example, if syncing the data directory takes 25 seconds and thereafter resetting unlogged relations takes 8 seconds, and if this setting has the default value of 10 seconds, then a messages will be logged for syncing the data directory after it has been in progress for 10 seconds and again after it has been in progress for 20 seconds, but nothing will be logged for resetting unlogged relations.","BodyHTML":"\u003cp\u003e\n         Sets the amount of time after which the startup process will log\n         a message about a long-running operation that is still in progress,\n         as well as the interval between further progress messages for that\n         operation. The default is 10 seconds. A setting of \u003ccode\u003e0\u003c/code\u003e\n         disables the feature.  If this value is specified without units,\n         it is taken as milliseconds.  This setting is applied separately to\n         each operation.\n         This parameter can only be set in the \u003ccode\u003epostgresql.conf\u003c/code\u003e\n         file or on the server command line.\n        \u003c/p\u003e\u003cp\u003e\n         For example, if syncing the data directory takes 25 seconds and\n         thereafter resetting unlogged relations takes 8 seconds, and if this\n         setting has the default value of 10 seconds, then a messages will be\n         logged for syncing the data directory after it has been in progress\n         for 10 seconds and again after it has been in progress for 20 seconds,\n         but nothing will be logged for resetting unlogged relations.\n        \u003c/p\u003e","SourceRevision":"wiki-repair-20261023:998f4fd945aff40dd5d16a1718d5315f57659418d2fc0bd7942cf5e992c5c1c0","ContentHash":"a6b91ef6909d53b237a9f3799c9721efd0420c5c8b0722d7c4d4402aa92411b5","Payload":{"description":"Sets the amount of time after which the startup process will log a message about a long-running operation that is still in progress, as well as the interval between further progress messages for that operation. The default is 10 seconds. A setting of 0 disables the feature. If this value is specified without units, it is taken as milliseconds. This setting is applied separately to each operation. This parameter can only be set in the postgresql.conf file or on the server command line. For example, if syncing the data directory takes 25 seconds and thereafter resetting unlogged relations takes 8 seconds, and if this setting has the default value of 10 seconds, then a messages will be logged for syncing the data directory after it has been in progress for 10 seconds and again after it has been in progress for 20 seconds, but nothing will be logged for resetting unlogged relations."}},"RequestedLocale":"en","Fallback":false,"Versions":["15","16","17","18","19","20"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
