Categories
程式開發

一次近乎完美的PostgreSQL版本大升級實踐


2020 年5 月,我們與OnGres 合作,對GitLab 上的Postgres 集群進行版本大更新,從9.6 版本升級到11 版本。升級全部在維護窗口內運行,沒有絲毫差錯;更新中所有涉及的內容、計劃、測試,以及全流程自動化,全部進行拆包,只為實現一次近乎完美的PostgreSQL 升級。

本次版本更新,我們面臨的最大難題在於如何利用一個規劃完善的pg_upgrade,方便且高效地對整體項目進行重要版本升級。為此,我們需要製定一個回滾計劃,以保證12 節點集群的6 TB 數據一致的同時,優化恢復目標時間(RTO)後的容量,為600 萬用戶提供每秒300000 次的聚合交易服務。

解決工程難題的最佳方案是按照藍圖和設計文檔行事。在創建藍圖的過程中,我們需要定義目標問題,評估最合適的解決方案,並考慮每個解決方案的優缺點。

在此,我們附上為這個項目準備的藍圖鏈接

我們為什麼要升級PostgreSQL

我們決定在GitLab 13.0 中停止對PostgreSQL 10.0 的支持,而 PostgreSQL 9.6 版本將在2021 年11 月EOL(項目終止),因此,我們需要採取相應的行動。

以下是PostgreSQL9.6和11版本之間的主要區別:

原文鏈接:【https://www.infoq.cn/article/UDOf5vLIoSSPJBccDTtN】。未經作者許可,禁止轉載。