Postgresql

如果沒有事務,PostgreSQL >= 10 不會生成 WAL

  • June 27, 2019

我注意到如果沒有事務,PostgreSQL >= 10 不會生成 WAL。在以前的版本中,PostgreSQL 在 到期時生成 WAL archive_timout,因為它寫了一些空事務。

如果沒有人寫入,我希望 PostgreSQL 仍然生成 WAL。有誰知道如何在從 10 開始的版本中執行此操作?

那一定是因為送出 6ef2eba3f

跳過檢查點,在空閒系統上歸檔。

一些後台活動(如檢查點、存檔超時、備用快照)不應該在空閒系統上發生。不幸的是,到目前為止,要確定係統何時處於空閒狀態並不容易,這挫敗了一些避免空閒系統上的冗餘活動的嘗試。

如果你真的需要定期進行 WAL 活動,最便宜的方法是擁有一份定期cron執行的工作。SELECT txid_current()

如果要監視複製,最好以字節為單位測量延遲,這樣就不會受到這個問題的影響。

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