pg_stat_statements跳過的坑
原本以為只是一個簡單的插件擴展安裝,三下五除二就能搞定,結果搞了很久也沒找到問題所在。首先pg_stat_statements已經安裝成功,且已經能夠使用create extension pg_stat_statements創建擴展成功,但是查詢pg_stat_statements時會報錯,需要加載動態庫,也就是需要配置shared_preload_libraries = 'pg_stat_statements' 並且重啟數據庫。但是再重啟的過程中卻報錯:
[thun@localhost ~]$ startup_abase1.sh
正在啟動數據庫實例...
waiting for server to start....2019-01-02 03:23:56.649 GMT [6015] LOG: syntax error in file "/opt/thun/abdata/5.0/abase1/postgresql.conf" line 146, near token "'pg_stat_statements'"
2019-01-02 03:23:56.649 GMT [6015] FATAL: configuration file "/opt/thun/abdata/5.0/abase1/postgresql.conf" contains errors
stopped waiting
pg_ctl: could not start server
Examine the log output.
啟動報錯說pg_stat_statements配置有異常,當時我就想會不會是abase自身變異的pg_stat_statments有問題呢,於是重新編譯了插件,但是啟動還是報同樣的錯誤,萬般無奈周六就下班了。周一到公司想再手動測試一番,在postgresql9.5上面測試。這次測試全部手動輸入,沒有從往后是哪個拷貝,居然成功了。然后對比了一番發現。


異常配置:
#shared_preload_libraries = '' # (change requires restart)
shared_preload_libraries?=?'pg_stat_statements'
pg_stat_statements.max?=?1000
pg_stat_statements.track?= top
正常配置:
#shared_preload_libraries = '' # (change requires restart)
shared_preload_libraries = 'pg_stat_statements'
pg_stat_statements.max = 1000
pg_stat_statements.track = top
將配置便以為ascii碼,對比發現,第一次在網上拷貝的配置等號中間多了問號。着實有點坑。