Ubuntu 24.04、22.04、または 20.04 に PostgreSQL 16 をインストールする方法

PostgreSQL 16 は、データベース管理システムの世界における重要なアップデートです。2023 年 9 月 14 日に正式にリリースされた PostgreSQL 16 では、多くの新機能と機能強化が導入され、ユーザー、管理者、開発者向けの堅牢で多用途なデータベース ソリューションとしての地位が強化されています。

以下は PostgreSQL 16 の主な機能のハイライトです。

  • 並列化の強化: PostgreSQL 16 では、FULL ハッシュ結合と内部右 OUTER ハッシュ結合の並列化が可能になり、クエリ パフォーマンスが大幅に向上します。
  • レプリケーションの改善: スタンバイ サーバーからの論理レプリケーション機能を導入し、サブスクライバーが大規模なトランザクションを並列に適用できるようにします。
  • 監視機能: pg_stat_io ビューを追加すると、I/O 統計をより詳細に監視できるようになります。
  • SQL/JSON サポート: このリリースでは、SQL/JSON コンストラクターと ID 関数が導入され、データ処理機能が拡張されました。
  • 真空冷凍性能: PostgreSQL 16 では、バキューム凍結のパフォーマンスが向上し、効率的なデータベースメンテナンスに役立ちます。
  • 正規表現マッチング: pg_hba.conf 内のユーザー名とデータベース名、および pg_ident.conf 内のユーザー名に対する正規表現マッチングにより、セキュリティと柔軟性が向上します。

それでは、技術的な手順に進み、PostgreSQL 16 のインストール プロセスを詳しく見ていきましょう。

PostgreSQL 16 をインストールするための前提条件

Ubuntu に PostgreSQL 16 を正常にインストールするには、次の要件を満たしていることを確認してください。

推奨ハードウェアとサポートされている Ubuntu バージョン

成分要件
プロセッサ1ギガヘルツ(GHz)以​​上の互換プロセッサ
ラム2GB以上
ディスクスペース512 MB の HDD (データまたはサポート コンポーネント用に追加のディスク領域が必要)
サポートされているバージョンUbuntu 24.04 (ノーブル), Ubuntu 22.04 (ジャミー), Ubuntu 20.04 (フォーカル)

追加要件

要件説明
インターネット接続PostgreSQL 16 および将来のアップデートをダウンロードするために必要です。
ターミナルコンベンションすべてのターミナルコマンドは、通常のユーザーとして実行する必要があります。 sudo 特権。
CLI コマンドインストールとセットアップにはコマンド ライン インターフェイス (CLI) を使用します。

PostgreSQL APTリポジトリをインポートする

PostgreSQL 16 をインストールする前に Ubuntu を更新する

まず、Ubuntu システムが最新であることを確認します。この手順は、システムの安定性と互換性を維持するために重要です。

sudo apt update

次に、古くなったパッケージをアップグレードします。

sudo apt upgrade

PostgreSQL 16の初期パッケージをインストールする

データベース ソフトウェアのインストールを支援するために、次のパッケージをインストールします。

sudo apt install dirmngr ca-certificates software-properties-common apt-transport-https lsb-release curl -y

PostgreSQL 16 APTリポジトリを追加する

まず、PostgreSQL GPG キーをインポートします。これは、インストールしようとしているパッケージが本物であり、改ざんされていないことを確認するためのものです。

curl -fSsL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql.gpg > /dev/null

適切な PostgreSQL 16 リポジトリの選択

ここで、ニーズに合った適切な PostgreSQL 16 リポジトリを選択します。

実稼働/一般使用向けの安定したリポジトリ

安定版リポジトリは、特に実稼働環境のほとんどのユーザーにとって頼りになるものです。安定版と安全なバージョンで定期的に更新されます。

echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main | sudo tee /etc/apt/sources.list.d/postgresql.list

開発者向けのスナップショットまたはテストリポジトリ

開発段階またはテスト段階の場合は、スナップショットまたはテスト リポジトリを検討してください。ただし、これらは安定性が低いため、本番環境での使用には適していないことに注意してください。

最先端のテストのためのスナップショットリポジトリ

最新のスナップショットをここで入手してください:

echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg-snapshot main | sudo tee /etc/apt/sources.list.d/postgresql.list
最新機能のテストリポジトリ

最新の機能をテストするには、次のコマンドを実行します。

echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg-testing main | sudo tee /etc/apt/sources.list.d/postgresql.list

ターミナルコマンドでPostgreSQL 16をインストールする

APT パッケージ インデックス ソース リストを更新

安定版またはテスト版の PostgreSQL リポジトリを追加した後は、リポジトリ ソース リストを更新することが重要です。このアクションにより、システムが新しく追加された PostgreSQL リポジトリを認識するようになります。

sudo apt update

APTコマンドでPostgreSQL 16をインストールする

それでは、PostgreSQL 16 のインストールに移りましょう。このコマンドは、PostgreSQL クライアントとサーバーの両方をインストールします。

sudo apt install postgresql-client-16 postgresql-16

PostgreSQL インストールの検証

インストールが完了したら、PostgreSQL が正しくインストールされ、実行されていることを確認することが重要です。このコマンドは、PostgreSQL サービスのステータスを確認します。

systemctl status postgresql

PostgreSQL 16 の有効化

PostgreSQL がアクティブでない場合は、次のコマンドを使用して PostgreSQL サービスを起動します。これにより、システムで PostgreSQL が自動的に起動するようになります。

sudo systemctl enable postgresql --now

PostgreSQL 16 サービスの管理

PostgreSQL 16 サーバーの停止

メンテナンスや構成の変更などのために PostgreSQL サービスを一時的に停止するには、次のコマンドを使用します。

sudo systemctl stop postgresql

PostgreSQL 16 サーバーの起動

PostgreSQL サービスを開始する準備ができたら、特に停止後または初期インストール後に、次のコマンドが役立ちます。

sudo systemctl start postgresql

PostgreSQL 16 サーバーの再起動

構成や更新を変更した場合、再起動が必要になることがよくあります。このコマンドは、PostgreSQL サービスを再起動し、新しい変更を適用します。

sudo systemctl restart postgresql

PostgreSQL 16 サーバーの再ロード

PostgreSQL サービスの動作を中断せずにリロードするには、このコマンドを使用します。これは、小さな構成変更を適用する必要がある場合に便利です。

sudo systemctl reload postgresql

PostgreSQL 16 のステータスの確認

PostgreSQL サービスがアクティブで問題なく実行されているかどうかなど、その動作ステータスを確認するには、次のコマンドを使用します。

systemctl status postgresql

システム起動時にPostgreSQL 16を有効にする

PostgreSQL が自動的に起動するように設定されていない場合は、このコマンドで有効にして、すぐにアクティブになり、その後のシステム起動時にもアクティブになるようにします。

sudo systemctl enable postgresql --now

PostgreSQL 16 の基本的なコマンド例

Postgres ユーザー アカウントへのアクセス

PostgreSQL では、「postgres」ユーザーがデフォルトのスーパーユーザー ロールです。このアカウントは管理コマンドを実行する上で極めて重要です。このアカウントに切り替えるには、次のコマンドを使用します。

sudo -i -u postgres

アカウントにログインしたら、PostgreSQL コマンドライン インターフェイスに入ります。

psql

プロンプト postgres=# PostgreSQL環境への接続を確認します。終了するには、次のように入力します。 exit.

ユーザースイッチなしでPostgreSQLに素早くアクセス

ユーザー アカウントを変更せずに迅速に操作するには、PostgreSQL に直接アクセスします。

sudo -u postgres psql

このコマンドは、日常的なタスクの時間を節約します。このインターフェイスを終了するには、次のように入力します。 exit.

新しいPostgreSQLユーザーロールの作成

PostgreSQL の柔軟性により、スーパーユーザーはユーザー ロールを作成できます。新しいユーザー ロールを確立するには、次のコマンドを実行します。

sudo su - postgres -c "createuser <username>"

交換する <username> 希望するユーザー名を入力します。

新しい PostgreSQL データベースの起動

ユーザー用に新しいデータベースを設定するには:

sudo su - postgres -c "createdb <database_name>"

交換する <database_name> データベースに付ける予定の名前を入力します。

データベースへのユーザー権限の割り当て

データベース アクセスを安全に割り当てる:

sudo -u postgres psql
GRANT ALL PRIVILEGES ON DATABASE <database_name> TO <username>;

代わりの <database_name> そして <username> 必要に応じて入力してください。 exit.

PostgreSQL 16 の UFW ファイアウォールを構成する

UFW ファイアウォールのインストールと有効化

UFW (Uncomplicated Firewall) がシステムにインストールされ、有効になっていることを確認します。UFW はファイアウォールの管理を簡素化し、ネットワーク トラフィックのセキュリティ保護に不可欠です。

sudo apt install ufw
sudo ufw enable

PostgreSQL 16 の UFW ルールの設定

PostgreSQL はデフォルトでポート 5432 で通信します。特にリモートの場所から接続する場合は、このポートでのトラフィックを許可するように UFW を構成する必要があります。

サブネットアクセスの許可

サブネット内の IP アドレスの範囲へのアクセスを許可するには、次のコマンドを使用します。

sudo ufw allow proto tcp from 192.168.1.0/24 to any port 5432

交換する 192.168.1.0/24 特定のサブネット範囲を使用します。

個別のIPアクセスを許可する

単一の IP アドレスから PostgreSQL へのアクセスを許可するには、次を使用します。

sudo ufw allow proto tcp from 192.168.1.0 to any port 5432

修正する 192.168.1.0 許可する IP アドレスに。

これらは単なる基本的な例です。長期的には、公開されているデータベースを可能な限りロックダウンすることを検討する必要があります。

PostgreSQL 16 の設定

PostgreSQL 16 でリモート アクセスを有効にする

PostgreSQL がリモート接続を受け入れるように構成するには、デフォルトのローカル インターフェイスからのリスニング アドレスを調整する必要があります。

リモート アクセスの構成の変更

PostgreSQL 構成ファイルにアクセスします。

sudo nano /etc/postgresql/16/main/postgresql.conf

「接続設定」セクションで、 listen_addresses = 'localhost' お客様の特定のニーズに合わせて:

  • 'localhost' を、単一の IP の目的の IP アドレスに置き換えます。
  • すべてのインターフェースで接続を許可するには、 listen_addresses = '*'.

変更を加えたら、CTRL+O で保存し、CTRL+X で終了します。次に、PostgreSQL を再起動します。

sudo systemctl restart postgresql

以下の方法で変更を確認します。

ss -nlt | grep 5432

出力では、ポート 5432 がアクティブになっていることがわかります。

セキュリティ強化のための pg_hba.conf の設定

編集する pg_hba.conf 微調整されたアクセス制御用のファイル:

sudo nano /etc/postgresql/16/main/pg_hba.conf

ユーザーとデータベース アクセスのカスタマイズ

pg_hba.confでは、どのユーザーとデータベースがどのアドレスから接続できるかを指定できます。一般的な構成は次のとおりです。

  • ユーザー固有のアクセス: アクセスをそのユーザーのみに制限するには、「all」を特定のユーザー名に置き換えます。
  • データベース固有のアクセスすべてのデータベースへのアクセスを許可するのではなく、特定のデータベースを指定します。
  • 住所制限: 特定のIPアドレスまたは範囲を定義します(例: 192.168.1.0/24) を使用して、接続の発信元を制限します。

認証方法の選択

PostgreSQL はさまざまな認証方法をサポートしています。

  • MD5: パスワードを要求し、MD5 で暗号化します。
  • パスワード: プレーンテキストのパスワードを使用します (安全性が低いため、本番環境では推奨されません)。
  • ピア: OS レベルのユーザー ID に依存します (ローカル接続に共通)。
  • アイデンティティ: 「ピア」に似ており、通常はネットワーク接続に使用されます。
  • SCRAM-SHA-256: MD5 またはパスワードよりも推奨される、より安全な方法です。

パフォーマンスのチューニング postgresql.conf

パフォーマンスを最適化するには、次の設定を検討してください。 postgresql.conf:

  • 共有バッファ: PostgreSQL が共有メモリ バッファに使用するメモリの量を調整します。
  • 作業メモリ: 内部のソートおよびハッシュ操作に使用されるメモリを設定します。
  • 最大接続数: データベースへの同時接続の最大数を制御します。

監視と診断

データベースのパフォーマンスと問題に関する洞察を得るために詳細なログ記録を有効にします。

  • ログステートメント: 実行されたすべての SQL ステートメントをログに記録するには、「all」に設定します。
  • ログ期間: 有効にすると、完了した各 SQL ステートメントの実行時間がログに記録されます。

結論

Ubuntu で PostgreSQL 16 を設定するための包括的なガイドをここまで説明しました。インストールとリモート アクセスの構成からファイアウォール ルールによるセキュリティの強化まで、すべてを網羅しています。PostgreSQL が稼働していることは素晴らしいことですが、本当の鍵は定期的なメンテナンスとセキュリティ チェックにあることを忘れないでください。

便利なリンク

Ubuntu Linux に PostgreSQL 16 をインストールする際に役立つリンクをいくつか紹介します。

  • PostgreSQL 16 リリースノート: PostgreSQL 16 のリリース ノートを読んで、新機能、拡張機能、バグ修正について学んでください。
  • PostgreSQL GitHub リポジトリ: 公式の PostgreSQL GitHub リポジトリにアクセスして、ソース コードにアクセスし、問題を報告し、開発に貢献してください。
  • PostgreSQL ドキュメント: 詳細なインストール、構成、および使用ガイドについては、包括的な PostgreSQL ドキュメントにアクセスしてください。
  • PostgreSQL コミュニティ: PostgreSQL コミュニティに参加して、他のユーザーとつながり、ディスカッションに参加し、サポートを受けましょう。
Joshua James

コメントを残す