如果我们重新启动 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?的主要内容,如果未能解决你的问题,请参考以下文章