0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PostgreSQLのEOL対応、確認の順番と3択の絞り込み方

0
Posted at

セキュリティ診断で「EOLバージョンを使用」と指摘された、RDSから延長サポートの課金通知が届いた。PostgreSQLのサポート終了が課題として浮上するのは、たいていこのタイミングです。EOL日を過ぎてもデータベースは止まりません。クエリもレプリケーションも動き続け、止まるのは修正パッチの提供だけです。だから放置されやすく、期限が迫ってから移行計画を立て始めることになります。

この記事は要約版です。pg_upgrade --linkの事前チェック4点と論理レプリケーションによる切り替え手順、EOL後の緊急度の判断基準の一覧は、ブログの完全版にまとめています: PostgreSQL EOL対応|確認手順と移行の判断基準

結論は3択、ただし確認の順番を崩さない

コミュニティ版の各メジャーバージョンは、初回リリースから約5年でサポートが終わります。期間中は四半期ごとにマイナーリリースが出ますが、終了後は重大な脆弱性が見つかってもそのバージョン向けの修正版は出ません。

対応は3つに絞れます。メジャーバージョンがサポート内なら、最新マイナーへ追随するだけで済みます。16.2から16.10への更新のような作業で、ダウンタイムは再起動分だけです。移行が間に合わない場合は、RDS/AuroraのExtended Supportのような延長サポートで時間を買う手があり、追加課金が発生します。期限そのものに対処するなら、pg_upgradeか論理レプリケーションでメジャーアップグレードを実施します。

判断の順番は固定です。稼働バージョンを正確に取り、そのバージョンのEOL日を公式の「Versioning Policy」ページで確認し、マネージドかセルフホストかで選択肢を絞ります。逆から入ると、延長サポートを検討したら対象外だった、マイナー更新で足りたのに大掛かりな移行を計画していた、といった手戻りが起きます。

もう一点、どのレイヤのサポートが切れているのかを先に確定させてください。PostgreSQL本体のコミュニティ期限、OSディストリビューションのパッケージ提供、マネージドサービス側の標準サポート終了日の3つがあり、これらは一致しません。診断レポートはOSパッケージのバージョン文字列を見ていることが多く、本体はサポート内というケースもあります。

最初に取るのはサーバ側のバージョン

psql --versionはクライアント側の値です。サーバが返すバージョンを次のSQLで確認してください。

-- 人が読む用(ビルド情報込み)
SELECT version();

-- 比較・スクリプト判定用(例: 160010 = 16.10)
SHOW server_version_num;

-- データファイルの実体がどこか(複数クラスタ混在の切り分け)
SHOW data_directory;
SHOW config_file;

server_version_numが同じメジャーの最新マイナーより小さければ、EOL以前にマイナー更新の対象です。マネージドサービスやセルフホストで複数クラスタが同居している場合は、data_directoryまで見て対象を特定します。

完全版で扱っている内容

  • 切り分け手順の詳細。rpm -qaやpg_lsclustersでのバイナリ同居の確認、aws rds describe-db-engine-versionsでの移行先候補の列挙とdeprecated判定、保留メンテナンスアクションの確認まで。
  • EOL後の緊急度の判断基準。インターネットからの到達可能性、PCI DSSなどサポート対象ソフトウェアを求める基準、自動アップグレード設定の有無を軸にした高・中の切り分け表。
  • pg_upgrade --linkの手順と、事前チェックで引っかかりやすい4点。チェックサム設定の不一致、論理レプリケーションスロットの残存、拡張の未インストール、削除された型の利用と、実行後に旧クラスタを起動してはいけない理由。
  • 論理レプリケーションでの移行手順。パブリケーション作成からpg_subscription_relでの初期コピー進捗確認、切り替えの7ステップ、シーケンスやDDLが複製されない制約の扱い。
  • OSを跨いだ移行でのglibc照合順序の変更とREINDEX、アップグレード後に性能が落ちたときの確認順、そしてserver_version_numの収集と四半期ごとのマイナー更新による再発防止の運用。

PostgreSQL EOL対応|確認手順と移行の判断基準

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?