Postgresql
如何在沒有外部 cron 類工具的情況下在 Postgresql 上執行重複任務?
我想定期呼叫一個儲存過程。在 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 任務調度器 / 等。
也請看一下版本政策;您正在執行一個過時且不受支持的版本。