
我們有一個 PostgreSQL 伺服器,剛從 9.3 升級到 9.5。我們所有的機器都安裝了 9.3 客戶端軟體包,因此pg_dump
不再有效,因為它不向前相容。
顯然,我們必須升級客戶端軟體 - 我的問題是,我們應該升級到哪個版本?我最初認為我們應該升級到 9.6,這是 9.* 系列的最新版本,這樣我們就可以在將來再次升級伺服器時避免這樣做。但如果是這樣,那為什麼不去10或11呢?像這樣混合主要版本有什麼缺點嗎? 10 和 11 客戶是否被認為是穩定的?
答案1
我的建議是升級客戶端以保持與伺服器相同版本的兼容性(例如 pg_dump v9.5.x 與 9.5.x postgres 伺服器一起使用)。您可以使用版本 10 在版本 9.5.x 上執行 pg_dump,但是您必須準備好處理因每天執行此操作而可能出現的任何錯誤。
從表面上看,即使 pg_dump 命令發生的更改是新的命令參數(如下所示),我懷疑對於使用未來版本的客戶端到舊版本的 postgresql 伺服器的備份的不同排列的測試是否嚴格。
- 9.6介紹了
--strict-names argument
- 10 引入
--no-blobs
--no-publications
--no-subscriptions
--no-sync
論點
由於執行備份並不總是必須在伺服器本身本地調用,因此您始終可以使用不同的電腦來實現此目的(遠端調用備份)
根據作業系統和套件管理器,較新版本的 pg_dump 可能已經位於伺服器上,如下所示 /usr/lib/postgresql/your_server_version_here/bin/,您始終可以像這樣建立新版本的符號連結(假設為 debian 系統):
sudo ln -s --force /usr/lib/postgresql/9.5/bin/pg_dump /usr/bin/pg_dump