Postgresql

如何在沒有外部 cron 類工具的情況下在 Postgresql 上執行重複任務?

  • December 22, 2021

我想定期呼叫一個儲存過程。在 Oracle 上,我會為此創建一個工作。我發現 Postgresql 可以通過使用外部工具(cron 等)和 PgAgent 很好地模仿這一點。

您知道不涉及外部工具的“內部”替代方案嗎?

  • 我想避免儲存在 pgAgent 命令行中的密碼的安全問題。
  • 我想避免任何額外的系統配置來隱藏密碼(~/.pgpass)。

Postgresql 8.3

Linux RedHat 64 位

即使您正在執行即將發布(在撰寫本文時)的 PostgreSQL 10 或目前的 PostgreSQL 9.6,而不是像 8.3 這樣的古老版本,仍然沒有內置的任務調度程序。

需要 PgAgent 或外部 cron 作業之類的東西,沒有方便的解決方法。

9.3 中引入的後台工作人員功能有望在以後的版本中允許將 PgAgent 之類的工具移入 PostgreSQL 核心,但尚未完成。即使在 9.3 上,您仍然必須執行 cron 或 pgagent。

一些人正在研究基於後台工作人員的調度程序,並且即將發布一些更新檔程序,這些更新檔程序應該提供幫助解決此問題的工具。但是從 PostgreSQL 10 開始,仍然沒有質量好、被廣泛採用的調度器,而且大多數人使用 cron / ms 任務調度器 / 等。

也請看一下版本政策;您正在執行一個過時且不受支持的版本。

引用自:https://dba.stackexchange.com/questions/43937