Postgresql

驗證postgresql配置文件的命令?

  • January 18, 2022

我正在通過 ansible 生成 postgresql 配置文件,並將它們放入/etc/postgresql/XX/main/conf.d/whatever.conf. 我不小心犯了語法錯誤並破壞了我的 postgresql,需要手動修復。

是否有任何 postgresql 命令來驗證文件是否為有效的 postgresql.conf 文件?

sudoers文件可以用/usr/sbin/visudo -cf path/to/file. postgresql 有什麼用嗎?

我目前正在執行 Ubuntu 18.04 和 20.04,以及 PostgreSQL 10、12 等(是的,有幾個不同的版本)。

是的。

至少從版本 10 開始,有一種機制可以從 postgres 中檢查配置文件。

這是在我的配置文件中添加 fubar 的結果,沒有重新載入它。

postgres=# select sourcefile, name, sourceline, error from 
          pg_file_settings where error is not null;
              sourcefile                | name | sourceline |    error
-----------------------------------------+------+------------+--------------
/etc/postgresql/12/main/postgresql.conf |      |         33 | syntax error
(1 row)

文件將是:https ://www.postgresql.org/docs/10/view-pg-file-settings.html ,另外,您可能對https://www.postgresql.org/docs/10/view感興趣-pg-hba-file-rules.html

我知道的唯一程序是postgres數據庫伺服器。

我有兩種方法來處理這個問題:

  • 編輯postgresql.conf並重新載入後,檢查 PostgreSQL 日誌文件。如果出現問題,您將在日誌中看到,伺服器將繼續使用以前的配置執行(沒有中斷)。修復文件並重試,直到重新載入成功。
  • 使用ALTER SYSTEM而不是postgresql.conf更改配置參數。這同樣有效,並且ALTER SYSTEM會擷取大多數可能的語法錯誤。當然,你仍然應該在重新載入後查看 PostgreSQL 日誌。

作為檢查日誌文件的替代方法,您可以使用pg_file_settings其他答案中描述的視圖。

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