我想配置一個PostgreSQL 9.6數據庫來限制pg_xlog文件夾的大小。我已經閱讀了很多有關這個問題或類似問題的帖子,但沒有我嘗試過的幫助。如何啓用自動清理pg_xlog
我爲我的Postgresql 9.6服務實例寫了一個設置腳本。它執行initdb,註冊一個windows服務,啓動它,創建一個空的數據庫並將轉儲恢復到數據庫中。腳本完成後,數據庫結構正常,數據在那裏,但xlog文件夾已包含55個文件(880 MB)。
爲了減小文件夾的大小,我嘗試將wal_keep_segments設置爲0或1,將max_wal_size設置爲200mb,減少checkpoint_timeout,將archive_mode設置爲off並將archive_command設置爲空字符串。當查詢pg_settings時,我可以看到屬性已經正確設置。
然後,我通過SQL強制檢查點,抽空數據庫,重新啓動Windows服務,並嘗試pg_archivecleanup,沒有真正的工作。我的xlog文件夾縮小到50個文件(800 mb),沒有接近我在配置中設置的200 mb限制。
我不知道還有什麼其他的嘗試。如果有人能告訴我我做錯了什麼,我會非常感激。如果需要更多信息,我會很樂意提供。
非常感謝
所以耐心就是所需要的。在創建數據庫之前,我最終修改了我的安裝腳本以包含'ALTER SYSTEM SET max_wal_size = 20'。這樣,px_log文件夾不會超過320 MB。你的回答讓我走上了正確的道路,所以我檢查了它。 – Ggilmann
剛剛意識到我也不得不通過SQL重新加載配置'SELECT pg_reload_conf()' – Ggilmann