PostgreSQL DBA(91) - PG upgrade

husthxd發表於2019-09-12

PostgreSQL的大版本釋出週期通常為1年,而PostgreSQL 12即將釋出,新版本除了修復了Bug,提供了新特性之外還對效能有所增強,對於使用舊版本但希望升級到新版本的資料庫,本節介紹了PG升級的幾種方法,分別是Logical Dump/restore、Binary In-Place Upgrades和Logical Replication。

Logical Dump/restore
邏輯匯入匯出,把資料庫逆向為普通的SQL語句.使用的工具是pg_dump/pg_dumpall和pg_restore,其中pg_dump面向database級別,pg_dumpall面向instance級別.

優勢
1.100%安全.對原例項沒有任何影響,方便測試.
2.可從”read only”庫中匯出,對原庫沒有效能影響.
3.靈活.可指定schema或物件,可重新對映/刪除屬主或訪問許可權.

劣勢
1.效能差.雖然可以並行的dump資料,但在資料量超過100G時,需要注意是否存在效能問題,而且在restore時會很耗主機資源.
2.一致性難以保證.在dump時需要源庫離線,否則在dump時仍有資料變化,那麼源庫和目標庫會處於不一致的狀態.

Binary In-Place Upgrades
原地升級,使用的工具是pg_upgrade.在執行pg_upgrade前,需安裝新版本的二進位制檔案並使用新版軟體初始化例項.

優勢
1.高效能.特別是使用 “pg_upgrade –link –jobs X”這種模式的情況下.

劣勢
1.存在一定的風險,需要增加額外的測試工作.
2.所有的擴充套件和其他模組均需要在新例項上安裝.
3.不存在半線上模式,必須完整離線.
4.如果不使用-link模式,則會丟失所有的備用伺服器.
5.相對於首次啟動,需要執行analyze.
6.佔用雙倍空間.

Logical Replication
邏輯複製,通過配置邏輯複製實現源庫和目標庫的資料同步.

優勢
1.靈活.可允許目標庫變更模式.
2.安全.對源庫幾乎沒有影響.
3.無需停機.

劣勢
1.配置複雜.
2.如為大庫,則需要較長的配置時間和同步時間.
3.可能需要修改模式,至少需要修改 REPLICA IDENTITY.

對比彙總
下面是三種方法的對比圖:

參考資料
A Primer on PostgreSQL Upgrade Methods
Fast Upgrade of Legacy PostgreSQL with Minimum Downtime Using pg_upgrade

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/6906/viewspace-2656896/,如需轉載,請註明出處,否則將追究法律責任。

相關文章