PostgreSQL 分割區管理器 (pg_partman) 4.2.0 已發布

發布於 2019-08-23,作者:Crunchy Data
相關開源

Crunchy Data 很高興宣布發布 pg_partman 4.2.0,這是開源分割區管理 PostgreSQL 擴展的最新版本。

pg_partman 4.2 增加了對 PostgreSQL 12 的初步支援,並對 UNLOGGED 表在分割區集中的管理方式進行了重要變更。

pg_partman 是一個 PostgreSQL 擴展,可幫助您管理時間序列和基於序列的表分割區集,包括自動管理分割區建立和運行時維護。pg_partman 適用於 PostgreSQL 10 中引入的本機分割,因此使用者可以從顯著的效能增強中受益。

您可以按照 README 中的說明 安裝 pg_partman,或使用您選擇的偏好套件管理器。

值得注意的變更

  • pg_partman 增加了對 PostgreSQL 12 的初步支援,並且將在 PostgreSQL 12 發布後停止支援 PostgreSQL 9.4。

  • 自 PostgreSQL 12 起,pg_partman 將不再支援繼承 OID,因為此特殊欄位行為已被移除。

  • 本機分割中分割區集的 UNLOGGED 狀態現在由範本表而不是父表管理。

目前在 PostgreSQL 中,將本機分割的父表設定為 UNLOGGED/LOGGED 不是可以使用 ALTER TABLE 變更的屬性。如果隨後在父表上變更了 UNLOGGED/LOGGED 的狀態,它將不會傳遞到新的子表。

如果您認為您有受到此影響的子表,您將必須手動修復它們。如果您的任何本機分割區集是 UNLOGGED,請務必在升級到此版本之前在範本表上設定此屬性。

pg_partman 將維持此行為,直到 PostgreSQL 確定 UNLOGGED 變更的明確處理方式。 如需更多資訊,請參閱:https://postgres.tw/message-id/flat/15954-b61523bed4b110c4%40postgresql.org

  • 變更了在子表建立時運行 ANALYZE 的維護背景工作程序的預設選項,對於 PostgreSQL 11 及更高版本設為 false。 如果需要此功能,請在您的 postgresql.conf 中將選項 pg_partman_bgw.analyze 設定為 true。

功能

  • part_config(_sub) 表中新增了新的配置選項 constraint_valid,以控制 pg_partman 可以管理的其他約束是否以 NOT VALID 狀態新增。 預設情況下,約束會像以前一樣新增為 VALID。 請注意,如果此配置變更為 false,則約束排除將無法運作,直到約束經過驗證。

修復

  • 修復了由於使用 pg_class.relhasoids 欄位而導致 pg_partman 無法在 PostgreSQL 12 中建立子表的錯誤
  • 修復了應用於預先存在的範本表的主鍵/唯一索引未應用於在 PostgreSQL 11 本機分割中新增的預設分割區的錯誤。
  • 修復了導致基於時間的分割區集的保留管理中發生錯誤的錯誤。 如果保留嘗試移除最後一個子表,維護將拋出關於缺少表的錯誤,而不是僅拋出關於嘗試刪除最後一個表的警告。
  • 當分割區欄位的資料類型為數值時,使用 create_parent() 正確拋出錯誤。 以前,它不會報告任何錯誤,但也不會將正確的資料新增到 part_config 表中,因此未來的維護將無法運作。

連結

Crunchy Data 很榮幸支援 pg_partman 的開發和維護。