PostgreSQL Global Development Group 已經發布了我們資料庫系統所有受支援版本的更新,包括 13.4、12.8、11.13、10.18 和 9.6.23,以及 PostgreSQL 14 的第三個 Beta 版本。此版本修補了一個安全性漏洞,並修正了過去三個月回報的 75 個以上的錯誤。
如需完整的變更列表,請查看發布說明。
PostgreSQL 9.6 將於 2021 年 11 月 11 日停止接收修補程式。如果您在生產環境中運行 PostgreSQL 9.6,我們建議您規劃升級到更新、受支援的 PostgreSQL 版本。請參閱我們的版本發布政策以取得更多資訊。
受影響的版本:11 - 13。
精心設計的查詢可以讀取伺服器記憶體的任意位元組。在預設配置中,任何經過身份驗證的資料庫使用者都可以隨意完成此攻擊。該攻擊不需要建立物件的能力。如果伺服器設定包含 max_worker_processes=0
,則已知的此攻擊版本是不可行的。但是,未發現的攻擊變體可能獨立於該設定。
此版本標誌著 PostgreSQL 14 的第三個 Beta 版本發布,並使社群更接近大約在第三季度末正式發布。
本著開源 PostgreSQL 社群的精神,我們強烈建議您在資料庫系統中測試 PostgreSQL 14 的新功能,以協助我們消除可能存在的任何錯誤或其他問題。雖然我們不建議您在生產環境中運行 PostgreSQL 14 Beta 3,但我們鼓勵您找到方法針對此 Beta 版本運行您的典型應用程式工作負載。
您的測試和回饋將有助於社群確保 PostgreSQL 14 版本維持我們提供世界上最先進的開源關聯式資料庫之穩定、可靠版本的標準。
此更新還修復了過去幾個月回報的 75 個以上的錯誤。其中一些問題僅影響版本 13,但許多問題影響所有受支援的版本。
其中一些修復包括
COMMIT
或 ROLLBACK
之後,還原入口層級的快照。 此變更修正了在 COMMIT
/ROLLBACK
之後立即嘗試提取 tosted 值會失敗,並出現類似「沒有已知的快照」或「toast 值的缺少區塊編號 0」等錯誤的情況。WITH
中的查詢重寫為僅 NOTIFY
的情況,這會導致崩潰。ALTER EXTENSION
現在在新增或移除成員物件時鎖定擴充功能。REFRESH MATERIALIZED VIEW CONCURRENTLY
產生的查詢中發生別名衝突。 此命令在包含具有特定名稱(尤其是 mv
和 newdata
)之欄位的實體化檢視上失敗。GENERATED
表達式中使用整列變數。DROP OWNED BY
行為進行了幾項修正。CREATE COLLATION
命令中使用舊式的 Windows 地區設定名稱。pg_stat_activity
中顯示其最新的複製命令,而不是僅顯示最新的 SQL 命令。postgresql.conf
中的相關條目時,pg_settings.pending_restart
現在顯示為 true
。work_mem * hash_mem_multiplier
的有效值超過 2GB。psql
和其他用戶端程式中,處理編碼無效的資料時,避免超過字串的末端。pg_dump
以正確處理分割表格上其啟用狀態與其父觸發程序狀態不同的觸發程序。pg_restore
時出現「標頭中的建立日期無效」警告。pg_upgrade
現在會延續舊安裝的 oldestXID
值,並且不再強制執行反包裝 VACUUM
。」pg_upgrade
以偵測並警告應升級的擴充功能。contrib/postgres_fdw
以更好地與產生的欄位配合使用,只要外部表格中的產生的欄位代表遠端表格中的產生的欄位。如需可用變更的完整清單,請查看發布說明。
所有 PostgreSQL 更新版本都是累積性的。 與其他次要版本一樣,使用者不需要轉儲和重新載入其資料庫或使用 pg_upgrade
即可套用此更新版本; 您可以簡單地關閉 PostgreSQL 並更新其二進位檔案。
跳過一個或多個更新版本的使用者可能需要執行額外的更新後步驟; 請參閱先前版本的發布說明以取得詳細資訊。
如需更多詳細資訊,請參閱發布說明。
注意:PostgreSQL 9.6 將於 2021 年 11 月 11 日停止接收修補程式。 請參閱我們的版本發布政策以取得更多資訊。
PostgreSQL 14 Beta 3 引入了 multirange 型別的 unnest
函數以及幾項錯誤修正。
如需 PostgreSQL 14 Beta 3 中包含的變更清單,請查看未解決項目頁面
https://wiki.postgresql.org/wiki/PostgreSQL_14_Open_Items#resolved_before_14beta3
若要從 Beta 2、Beta 1 或 PostgreSQL 的早期版本升級到 PostgreSQL 14 Beta 3,您需要使用類似於在 PostgreSQL 的主要版本之間升級的策略(例如 pg_upgrade
或 pg_dump
/ pg_restore
)。 如需更多資訊,請造訪升級上的文件部分。
PostgreSQL 的每個版本的穩定性極大程度取決於您,也就是社群,使用您的工作負載和測試工具來測試即將推出的版本,以便在 PostgreSQL 14 正式發布之前找到錯誤和迴歸。由於目前是 Beta 版,資料庫行為、功能細節和 API 仍有可能進行小幅變更。您的意見回饋和測試將有助於確定新功能的最終調整,因此請盡快進行測試。使用者測試的品質有助於決定我們何時可以發布最終版本。
PostgreSQL Wiki 上公開提供一份未解決問題的清單。您可以使用 PostgreSQL 網站上的此表單回報錯誤
https://postgres.tw/account/submitbug/
這是 14 版本的第三個 Beta 版本。PostgreSQL 專案將根據測試需要發布額外的 Beta 版本,然後發布一個或多個候選版本,直到 2021 年底發布最終版本。如需更多資訊,請參閱Beta 測試頁面。