#fedibird データベースサーバを引っ越しし、PostgreSQL 13.4から、PostgreSQL 14に移行しました。同時にサーバスペックを引き上げ、チューニングしました。
本件に先立ち、Nightly Fedibirdで13.4から14への移行をテストしています。こちらはpg_upgradeによる同一サーバ上での自動変換によるもので、スムースに移行できましたが、概ね30分ほどのダウンタイムとなりました。
同じことをFedibirdでやってもいいのですが、データベースサイズは7倍弱、単純計算で3時間半、正確にはわかりませんが、かなりのダウンタイムとなることが予想されました。
そこで、Fedibirdでは今回、論理レプリケーションによってバージョン違いのPostgreSQLのレプリケーションを行い、完了後に切り替える方法で、ダウンタイムを最小にする作戦をとりました。
結果として、概ね1分かからずに切り替えできました。
なお、論理レプリケーション自体はさほど難しくないですが、ストリーミングレプリケーションのような完全複製とならないため、少しだけ実行時にコツが必要です。