2026年秋にリリース予定となっている PostgreSQL 19 の新機能や性能向上、非互換変更点の主要なものについて内容を説明し、動作検証を報告する文書を公開します。インストール手順やコマンド実行手順が記載してあるため、PostgreSQL 19 の新機能を実際に動かしながら確認しようとする方へのガイドブックとしても利用できます。
PostgreSQL
PostgreSQL であなたの UPDATE が終わらない理由 〜トランザクション、ロック、MVCC を実験で理解する〜
アプリケーションから次のようなSQLを実行したのに、なかなか応答が返ってこないことがあります。
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
こういうときに原因の一つとして早めに確認しておきたいものがロック待ちです。ロック待ちとは、あるトランザクションが更新中の行などを、別のトランザクションが同時に変更しようとして、先のトランザクションが終わるまで待っている状態です。PostgreSQLはデータの矛盾を防ぐため、同じ行を複数の処理が同時に勝手に書き換えられないようにします。そのため、後から実行したUPDATEは、必要なロックを取得できるまで待つことがあります。
本記事では、同じ行へのUPDATEによってロック待ちが起きる状況を作り、どこを確認すれば原因を切り分けられるのかを説明します。
ロジカルレプリケーションによるメジャーバージョンアップ手順
PostgreSQL のメジャーバージョンアップにはいくつかの手法がありますが、本記事ではその中でもロジカルレプリケーションを利用した方法を紹介します。ロジカルレプリケーションを用いることで、新旧バージョンのデータベースを並行稼働させながらデータを同期できるため、切り替え時のダウンタイムを最小限に抑えたアップグレードが可能です。その具体的な手順とあわせて、実施時に注意すべきポイントについて解説します。
PostgreSQL 18.4 に関する技術情報
このリリースは 18.3 からの修正リリース(2026年 5月 14日リリース)です。
18.X からのアップデートではダンプ、リストアは不要です。
しかしながら、18.2 よりも前のバージョンからアップデートする場合には、18.2のリリース情報も参照してください。
PostgreSQL 17.10 に関する技術情報
このリリースは 17.9 からの修正リリース(2026年 5月 14日リリース)です。
17.X からのアップデートではダンプ、リストアは不要です。
しかしながら、17.6 よりも前のバージョンからアップデートする場合には、17.6のリリース情報も参照してください。
PostgreSQL 16.14 に関する技術情報
このリリースは 16.13 からの修正リリース(2026年 5月 14日リリース)です。
16.X からのアップデートではダンプ、リストアは不要です。
しかしながら、16.10 よりも前のバージョンからアップデートする場合には、16.10のリリース情報も参照してください。
PostgreSQL 15.18 に関する技術情報
このリリースは 15.17 からの修正リリース(2026年 5月 14日リリース)です。
15.X からのアップデートではダンプ、リストアは不要です。
しかしながら、15.14 よりも前のバージョンからアップデートする場合には、15.14のリリース情報も参照してください。
PostgreSQL 14.23 に関する技術情報
このリリースは 14.22 からの修正リリース(2026年 5月 14日リリース)です。
14.X からのアップデートではダンプ、リストアは不要です。
しかしながら、14.19 よりも前のバージョンからアップデートする場合には、14.19のリリース情報も参照してください。
VACUUM処理が阻害されるケースとその原因・検知・対策
この記事のポイント
VACUUM コマンドや 自動VACUUM は成功するのだけれども(コマンド応答にもログにも ERROR などは出ないけれども)、実際にはデッドタプルが回収されない状況が発生することがあります。
VACUUMが期待通りに動作しない場合、以下を確認することで原因特定が可能です。
- ログに「are dead but not yet removable」が出ているか(*)
- ログの「removable cutoff / oldest xmin」の数字が進んでいないか(*)
- 以下のビューを確認する(ストリーミングレプリケーション環境の場合はスタンバイ側も)
- pg_stat_activity
- pg_replication_slots
- pg_prepared_xacts
主な原因は以下の3つです。
- ロングトランザクション
- レプリケーションスロット
- プリペアドトランザクション
対策の本質は 「oldest xminを固定している要因を解消すること」 です。
(*) log_autovacuum_min_duration パラメータを0や正の数で設定して自動VACUUM実行結果をログに出力する必要があります。
SRA OSS による PostgreSQL 開発への貢献(2025年)
はじめに
PostgreSQL は、世界中の開発者や企業が協力することで発展してきたコミュニティベースのオープンソース RDBMSです。SRA OSS は、1996年の PostgreSQL 初版リリースの直後からコミュニティの一員として、PostgreSQL 本体の開発、周辺ツールの開発、コミュニティ運営、ドキュメント翻訳など、多岐にわたって活動を続けてきました。本記事では、2025 年における SRA OSS メンバーのPostgreSQL 本体および関連ツールの開発への貢献内容を紹介します。


