Postgresql
驗證postgresql配置文件的命令?
我正在通過 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
其他答案中描述的視圖。