Postgresql
如何在 Ubuntu 20.04 LTS 中將 Postgres 次要版本從 14.x 升級到 14.4
在 2022 年 6 月 16 日,Postgres 發布了一個週期外版本 14.4
concurrently
,它修復了使用14.0 到 14.3 版本中的選項創建的索引可能出現的損壞。不用說,這是一個非常重要的升級,應該盡快完成。
由於我是一名 Web 開發人員,也碰巧為我的副項目執行他自己的伺服器,因此我希望能驗證從 14.2 升級到 14.4 的步驟。
- 由於這是一個小升級,因此無需轉儲和重新導入;簡單地“替換二進製文件”就足夠了。這是否意味著我可以預期在停止伺服器後的停機時間少於 5 分鐘?(正好是安裝新版本的時間?)
- 我的伺服器已經
http://apt.postgresql.org/pub/repos/apt/
添加了 apt 儲存庫。在 a 之後sudo apt update
,如何確保 asudo apt install postgresql
在執行之前安裝 14.4 版本?(我不希望它嘗試升級到 14.3 或其他陳舊版本)- 使用 停止伺服器後,對於此升級是否足夠
sudo systemctl stop postgresql
簡單?sudo apt install postgresql
問:這是否意味著我可以預計在停止伺服器後少於 5 分鐘的停機時間?(正好是安裝新版本的時間?)
是的,但您不需要停止伺服器。升級過程會做到這一點。
問:在 sudo apt update 之後,如何確保 sudo apt install postgresql 在執行之前安裝 14.4 版本?
apt update
獲取最新版本後,可以看到要安裝的候選版本apt policy
。例如在升級前的 Ubuntu 20.04 上:$ apt 策略 postgresql-14 PostgreSQL-14: 已安裝:14.3-1.pgdg20.04+1 候選人:14.4-1.pgdg20.04+1 版本表: 14.4-1.pgdg20.04+1 500 500 http://apt.postgresql.org/pub/repos/apt focus-pgdg/main amd64 包 *** 14.3-1.pgdg20.04+1 100 100 /var/lib/dpkg/狀態
使用 sudo systemctl stop postgresql 停止伺服器後,簡單的 sudo apt install postgresql 是否足以進行此升級?
伺服器包是
postgresql-14
,不是postgresql
,它是一個“元包”。隨便做apt install postgresql
一般不會升級postgresql-14
。這是將 postgresql-14 升級到時的輸出
14.4
:$ sudo apt install postgresql-14 閱讀包裹清單...完成 建構依賴樹 讀取狀態資訊...完成 將升級以下軟體包: postgresql-14 1 個已升級,0 個新安裝,0 個要移除,10 個未升級。 需要獲得 15.8 MB 的檔案。 此操作後,將使用 12.3 kB 的額外磁碟空間。 獲取:1 http://apt.postgresql.org/pub/repos/apt focus-pgdg/main amd64 postgresql-14 amd64 14.4-1.pgdg20.04+1 [15.8 MB] 在 5 秒內獲取 15.8 MB (2946 kB/s) 預配置包... (正在讀取數據庫...目前安裝的 349578 個文件和目錄。) 準備解壓.../postgresql-14_14.4-1.pgdg20.04+1_amd64.deb ... 在 (14.3-1.pgdg20.04+1) 上解壓 postgresql-14 (14.4-1.pgdg20.04+1) ... 設置 postgresql-14 (14.4-1.pgdg20.04+1) ... 處理 postgresql-common (241.pgdg20.04+1) 的觸發器 ... 從已安裝的 myspell/hunspell 軟體包建構 PostgreSQL 字典... en_us FR 刪除過時的字典文件:
您可以檢查
sudo tail /var/log/postgresql/postgresql-14-main.log
伺服器是否已停止並使用新版本重新啟動。輸出通常如下所示:2022-06-17 11:36:58.794 CEST [26346] 日誌:後台工作人員“邏輯複製啟動器”(PID 26353)以退出程式碼 1 退出 2022-06-17 11:36:58.810 CEST [26348] 日誌:關閉 2022-06-17 11:36:59.364 CEST [26346] 日誌:數據庫系統已關閉 2022-06-17 11:37:02.173 CEST [15840] 日誌:在 x86_64-pc-linux-gnu 上啟動 PostgreSQL 14.4 (Ubuntu 14.4-1.pgdg20.04+1),由 gcc (Ubuntu 9.4.0-1ubuntu1) 編譯~20.04.1) 9.4.0,64 位 2022-06-17 11:37:02.173 CEST [15840] 日誌:偵聽 IPv4 地址“0.0.0.0”,埠 5432 2022-06-17 11:37:02.173 CEST [15840] 日誌:偵聽 IPv6 地址“::”,埠 5432 2022-06-17 11:37:02.210 CEST [15840] 日誌:監聽 Unix 套接字“/var/run/postgresql/.s.PGSQL.5432” 2022-06-17 11:37:02.304 CEST [15842] LOG:數據庫系統於 2022-06-17 11:36:59 CEST 關閉 2022-06-17 11:37:02.367 CEST [15840] 日誌:數據庫系統已準備好接受連接
比較上述輸出中的關閉和啟動時間,在這種情況下,它只有幾秒鐘。