Postgresql

為什麼 pg_stat_statement 需要包含在 shared_preload_libraries 中?

  • March 11, 2022

我正在開發 AWS RDS Postgres v9.6 和 v14。我注意到在我們的shared_preload_libraries參數中,我們已經pg_stat_statement包含了。我不明白為什麼需要在那裡。

在 Postgres文件中,它是這樣說的:

該模組必須通過添加 pg_stat_statements 到 postgresql.conf 中的 shared_preload_libraries 來載入,因為它需要額外的共享記憶體。這意味著需要重新啟動伺服器才能添加或刪除模組。

但是,已經內置了其他幾個擴展 - 例如我們使用dblinkhstore. 這些不需要在shared_preload_libraries. 為什麼pg_stat_statement行為不同?

我認為闡明這一點將幫助我(希望其他人)更好地理解內置庫的工作原理,尤其是在shared_preload_libraries參數方面。文件似乎對這個主題說得不夠多,否則我不知道在哪裡可以找到它。

pg_stat_statements將其數據儲存在共享記憶體段中,PostgreSQL 只允許您在伺服器啟動時創建共享記憶體段。所以擴展必須在伺服器啟動時載入。

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