如果我们重新启动 postgres,如何重新启动后台工作人员 postgresql?

Posted

技术标签:

【中文标题】如果我们重新启动 postgres,如何重新启动后台工作人员 postgresql?【英文标题】:How to restart background worker postgresql if we restart postgres? 【发布时间】:2016-06-17 13:52:18 【问题描述】:

我正在尝试设置 worker.bgw_restart_time = 1。这样可以确保后台工作人员在系统崩溃时重新启动。

但是如果我们重新启动 postgres 本身,我想重新启动我的后台工作程序。有什么办法吗?

【问题讨论】:

为什么不使用计时器尝试重新连接? 存在重启 postgres 脚本的计时器? 【参考方案1】:

worker.bgw_restart_time = 1 表示如果后台工作进程本身崩溃,后台工作进程将由 postmaster 自动重启。这样你就可以维持一个持续运行的后台进程,即使它偶尔会死掉。

如果 PostgreSQL 服务器完全停止,所有后台工作进程都会自动停止。

重启时发生的情况取决于后台工作器的初始化方式。例如,如果通过shared_preload_libraries 加载,它将自动启动。在其他情况下,它可能会在调用时启动得更晚。

没有工具可以“记住”关闭之前正在运行的后台工作程序,并在重新启动后重新启动它们。您可能必须专门针对您正在设计的内容自己实现类似的东西。

【讨论】:

谢谢。这实际上是将其加载到 shared_preload_libraries 中的绝佳解决方案。

以上是关于如果我们重新启动 postgres,如何重新启动后台工作人员 postgresql?的主要内容,如果未能解决你的问题,请参考以下文章

Postgres 截断重新启动身份不会重新启动身份

在 Mac 上启动 postgres 服务器

IIS 重新启动后 JWKS 更改

如何重新启动一些被“ctrl+z”停止的进度?

启动uboot后,网线断开

即使重新启动后,我如何每天回忆方法?