0
我想能夠禁用PostgreSQL自動檢查點。如何防止PostgreSQL做出不受控制的檢查點?
我只想在磁盤上fsync wal文件而不保存在shared_buffer中所做的更改。
我將checkpoint_segments
和checkpoint_timeout
設置爲較大的值,但仍會產生額外的檢查點。
我不想檢查點,即使他需要交換頁面或內存不足。
我想能夠禁用PostgreSQL自動檢查點。如何防止PostgreSQL做出不受控制的檢查點?
我只想在磁盤上fsync wal文件而不保存在shared_buffer中所做的更改。
我將checkpoint_segments
和checkpoint_timeout
設置爲較大的值,但仍會產生額外的檢查點。
我不想檢查點,即使他需要交換頁面或內存不足。
還有其他原因檢查點:
CREATE DATABASE
之前和之後。DROP DATABASE
。ALTER DATABASE SET TABLESPACE
之前和之後(你可能不會每天都這麼做)。DROP TABLESPACE
期間(同上)。CHECKPOINT
命令。我希望我沒有忘記任何東西–其中一個會導致你觀察到的檢查點?
設置爲log_checkpoints
到on
,那麼日誌文件將在checkpoint starting
消息中顯示檢查點的原因。
您確定避免檢查點是個好主意嗎?他們是需要的,以便您可以在出現問題時恢復數據庫。
我認爲**數據庫關機**觸發了一個檢查點,就我而言。我意識到**不是一個好的主意來避免檢查點**,但我需要的是隻能手動執行'CHECKPOINT' **,是的,我知道如果一些不好的事情(例如:系統崩潰)所有更新都**丟失** ...這可能嗎? (對檢查點進行「全面控制」) – Johnny
這並不是說更新丟失了,但恢復需要很長時間(從最後一個檢查點開始)。你的'pg_xlog'目錄將會非常壯大。如果你從'pg_xlog'手動刪除文件,你會破壞你的數據庫。沒有辦法避免我上面列出的檢查點。 –