AlmaLinuxでPostgreSQLのバージョンを確認する方法|目的別に完全解説

Linux

AlmaLinuxでPostgreSQLを運用していると、「今インストールされているPostgreSQLのバージョンは何だろう?」と確認したくなる場面がありますよね。

アップグレードを検討している時、トラブルシューティングをする時、あるいはアプリケーションとの互換性を調べる時など、バージョン情報は非常に重要です。

この記事では、AlmaLinuxでPostgreSQLのバージョンを確認する複数の方法を、それぞれの使い分けも含めて詳しく解説していきます。コマンド一つで分かる簡単な方法から、詳細情報の取得まで、目的に応じた確認方法をマスターしましょう!


スポンサーリンク
  1. PostgreSQLのバージョン確認が必要な場面
    1. よくある確認シーン
  2. 方法1:PostgreSQLのコマンドラインツールで確認
    1. psqlコマンドで確認する
    2. サーバーに接続して確認する
    3. 接続中のpsqlセッション内で確認
  3. 方法2:パッケージ管理ツールで確認
    1. DNFコマンドで確認する
    2. 特定パッケージの詳細情報を表示
  4. 方法3:設定ファイルから確認
    1. PG_VERSIONファイルを確認
    2. データディレクトリの場所を確認する
  5. 方法4:systemctlで起動中のサービス情報を確認
    1. サービスのステータスを確認
    2. 有効化されているPostgreSQLサービスを一覧表示
  6. バージョン番号の見方と意味
    1. バージョン番号の構成
    2. メジャーバージョンとマイナーバージョンの違い
  7. 複数バージョンが共存している場合の確認
    1. インストール済みの全バージョンを確認
    2. デフォルトで使われるバージョンを確認
  8. トラブルシューティング:バージョンが確認できない時
    1. 「psql: command not found」と表示される
    2. 「接続できません」というエラーが出る
    3. 権限エラーが出る
    4. バージョン情報が古い
  9. AlmaLinux特有の注意点
    1. PostgreSQLの公式リポジトリ
    2. AppStreamモジュールの確認
  10. バージョン情報を活用した運用のベストプラクティス
    1. 定期的なバージョンチェック
    2. セキュリティアップデートの確認
    3. ドキュメンテーション
  11. まとめ:目的に応じた確認方法を使い分けよう

PostgreSQLのバージョン確認が必要な場面

まず、どんな時にバージョン確認が必要になるのか整理しておきましょう。

よくある確認シーン

セキュリティアップデート前
脆弱性情報が公開された時、自分の環境のバージョンが該当するか確認する必要があります。

アプリケーション開発時
開発しているアプリケーションが、使用中のPostgreSQLバージョンと互換性があるか調べる時に必須です。

メジャーアップグレード検討時
PostgreSQL 12から15へのアップグレードなど、大きなバージョン変更を計画する際の現状把握に使います。

トラブルシューティング時
問題が発生した時、サポートフォーラムやドキュメントで情報を探すには、正確なバージョン情報が必要になります。


方法1:PostgreSQLのコマンドラインツールで確認

最も直接的で確実な方法が、PostgreSQL自身のコマンドを使う方法です。

psqlコマンドで確認する

基本的なコマンド:

psql --version

または短縮形:

psql -V

出力例:

psql (PostgreSQL) 15.3

このコマンドは、PostgreSQLがインストールされていれば、サーバーが起動していなくても実行できるのが利点です。

サーバーに接続して確認する

PostgreSQLサーバーに実際に接続して、内部から確認する方法もあります。

コマンド:

psql -U postgres -c "SELECT version();"

出力例:

                                                 version
---------------------------------------------------------------------------------------------------------
 PostgreSQL 15.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 11.3.1 20221121 (Red Hat 11.3.1-4), 64-bit
(1 row)

こちらはより詳細な情報が得られます。コンパイラのバージョンやアーキテクチャ情報も含まれていますね。

接続中のpsqlセッション内で確認

すでにpsqlに接続している場合は、SQL文を直接実行できます。

SELECT version();

または、もっと簡潔に:

SHOW server_version;

出力例:

 server_version
----------------
 15.3
(1 row)

方法2:パッケージ管理ツールで確認

AlmaLinuxでは、DNF(またはYUM)パッケージマネージャーを使ってインストール済みのバージョンを確認できます。

DNFコマンドで確認する

インストール済みバージョンの確認:

dnf list installed | grep postgresql

または、より詳細に:

rpm -qa | grep postgresql

出力例:

postgresql15-15.3-1.el9.x86_64
postgresql15-server-15.3-1.el9.x86_64
postgresql15-libs-15.3-1.el9.x86_64

この方法の利点は、PostgreSQLが起動していなくても確認できること。また、複数のバージョンがインストールされている場合も、すべて表示されます。

特定パッケージの詳細情報を表示

rpm -qi postgresql15-server

出力には以下の情報が含まれます:

  • バージョン番号
  • リリース日
  • ビルド情報
  • インストール日
  • パッケージサイズ

方法3:設定ファイルから確認

PostgreSQLのデータディレクトリには、バージョン情報を記録したファイルがあります。

PG_VERSIONファイルを確認

cat /var/lib/pgsql/15/data/PG_VERSION

出力例:

15

注意点として、これはメジャーバージョンのみを表示します。マイナーバージョン(15.3の「3」の部分)は含まれません。

データディレクトリの場所を確認する

データディレクトリの場所が分からない場合は:

sudo -u postgres psql -c "SHOW data_directory;"

方法4:systemctlで起動中のサービス情報を確認

PostgreSQLサービスが稼働している場合、systemctlから情報を取得できます。

サービスのステータスを確認

systemctl status postgresql-15

出力にはバージョン情報やプロセスIDなど、運用に役立つ情報が含まれています。

有効化されているPostgreSQLサービスを一覧表示

systemctl list-unit-files | grep postgresql

複数バージョンがインストールされている環境では、どのバージョンが有効化されているか分かります。


バージョン番号の見方と意味

PostgreSQLのバージョン番号には、それぞれ意味があります。

バージョン番号の構成

PostgreSQL 15.3の場合:

  • 15:メジャーバージョン
  • 3:マイナーバージョン(パッチレベル)

メジャーバージョンとマイナーバージョンの違い

メジャーバージョン(例:14 → 15)

新機能の追加や、大きな仕様変更が含まれます。

  • データベース構造の変更がある場合がある
  • アップグレードにはpg_upgradeなどの専用ツールが必要
  • 後方互換性が保証されない場合がある

マイナーバージョン(例:15.2 → 15.3)

主にバグ修正やセキュリティパッチです。

  • 同じメジャーバージョン内での互換性は保たれる
  • 通常、パッケージマネージャーで簡単に更新可能
  • 定期的な更新が推奨される

複数バージョンが共存している場合の確認

AlmaLinuxでは、複数のPostgreSQLバージョンを同時にインストールすることができます。

インストール済みの全バージョンを確認

rpm -qa | grep postgresql | sort

出力例:

postgresql13-13.11-1.el9.x86_64
postgresql13-server-13.11-1.el9.x86_64
postgresql15-15.3-1.el9.x86_64
postgresql15-server-15.3-1.el9.x86_64

この例では、PostgreSQL 13と15の両方がインストールされていることが分かります。

デフォルトで使われるバージョンを確認

which psql

または:

alternatives --display pgsql-psql

これで、複数バージョンがある場合にどれが優先されるか分かります。


トラブルシューティング:バージョンが確認できない時

バージョン確認でつまずいた時の対処法をまとめました。

「psql: command not found」と表示される

原因:
PostgreSQLクライアントツールがインストールされていない、またはパスが通っていません。

対処法:

# PostgreSQLクライアントをインストール
sudo dnf install postgresql15

# またはサーバーも含めてインストール
sudo dnf install postgresql15-server

「接続できません」というエラーが出る

原因:
PostgreSQLサーバーが起動していない可能性があります。

対処法:

# サービスの状態を確認
systemctl status postgresql-15

# 起動していない場合は起動
sudo systemctl start postgresql-15

権限エラーが出る

原因:
PostgreSQLへの接続に必要な権限がありません。

対処法:

# postgresユーザーとして実行
sudo -u postgres psql -c "SELECT version();"

バージョン情報が古い

原因:
複数バージョンがインストールされており、古いバージョンのコマンドが実行されている可能性があります。

対処法:

# フルパスで最新バージョンを指定
/usr/pgsql-15/bin/psql --version

AlmaLinux特有の注意点

AlmaLinuxでPostgreSQLを使う際の、ディストリビューション特有の情報もお伝えします。

PostgreSQLの公式リポジトリ

AlmaLinuxの標準リポジトリには、比較的古いバージョンのPostgreSQLしか含まれていない場合があります。

最新版を使いたい場合:

PostgreSQL公式のYUMリポジトリを追加すると、最新バージョンをインストールできます。

sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm

AppStreamモジュールの確認

AlmaLinux 8以降では、AppStreamを通じて複数のPostgreSQLバージョンを提供しています。

dnf module list postgresql

有効化されているモジュールとバージョンを確認できます。


バージョン情報を活用した運用のベストプラクティス

バージョン確認は単なる情報取得だけでなく、適切な運用にも活かせます。

定期的なバージョンチェック

月次メンテナンスの一環として:

#!/bin/bash
# PostgreSQLバージョンチェックスクリプト

echo "=== PostgreSQL Version Check ==="
echo "インストール済みパッケージ:"
rpm -qa | grep postgresql | sort

echo -e "\nサーバーバージョン:"
sudo -u postgres psql -c "SELECT version();"

echo -e "\nサービス状態:"
systemctl status postgresql-15 --no-pager

このようなスクリプトを作っておくと、定期チェックが楽になります。

セキュリティアップデートの確認

# 更新可能なPostgreSQLパッケージを確認
dnf check-update | grep postgresql

定期的に実行して、セキュリティパッチが出ていないか確認しましょう。

ドキュメンテーション

運用ドキュメントには、以下の情報を記録しておくことをおすすめします:

  • 現在のPostgreSQLバージョン
  • 最終更新日
  • データディレクトリのパス
  • 使用しているリポジトリ情報
  • 次回アップグレード予定時期

まとめ:目的に応じた確認方法を使い分けよう

AlmaLinuxでPostgreSQLのバージョンを確認する方法をまとめます。

PostgreSQLのバージョン確認方法:

クイックチェック:

  • psql --version:最も簡単、サーバー起動不要

詳細情報が必要な時:

  • psql -c "SELECT version();":アーキテクチャやコンパイラ情報も表示

パッケージレベルで確認:

  • rpm -qa | grep postgresql:インストール済みパッケージを一覧表示

データディレクトリから:

  • cat /var/lib/pgsql/15/data/PG_VERSION:メジャーバージョンのみ

サービス情報から:

  • systemctl status postgresql-15:稼働状況も含めて確認

使い分けのポイント:

  • 日常的な確認psql --versionが手軽
  • トラブルシューティングSELECT version()で詳細確認
  • 複数バージョン環境rpmコマンドで全パッケージを把握
  • サーバーが起動しない時:パッケージマネージャーで確認

PostgreSQLのバージョン管理は、データベースの安定運用に欠かせません。この記事で紹介した方法を使って、適切にバージョンを把握し、計画的なアップデートを心がけましょう!


関連キーワード: AlmaLinux、PostgreSQL、バージョン確認、psql、DNF、RPM、データベース管理、systemctl、AppStream、pg_upgrade、セキュリティアップデート

コメント

タイトルとURLをコピーしました