PostgreSQL 16 インストールログ

PostgreSQL 16をネット上からインストール

# sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Installed:
pgdg-redhat-repo-42.0-45PGDG.noarch

Complete!

# sudo dnf -qy module disable postgresql
Importing GPG key 0x08B40D20:
Userid     : "PostgreSQL RPM Repository <pgsql-pkg-yum@lists.postgresql.org>"
Fingerprint: D4BF 08AE 67A0 B4C7 A1DB CCD2 40BC A2B4 08B4 0D20
From       : /etc/pki/rpm-gpg/PGDG-RPM-GPG-KEY-RHEL

# sudo dnf install postgresql16-server
Dependencies resolved.
================================================================================
 Package                  Arch        Version                 Repository   Size
================================================================================
Installing:
postgresql16-server      x86_64      16.5-1PGDG.rhel8        pgdg16      6.7 M
Installing dependencies:
postgresql16             x86_64      16.5-1PGDG.rhel8        pgdg16      1.9 M
postgresql16-libs        x86_64      16.5-1PGDG.rhel8        pgdg16      328 k

Transaction Summary
================================================================================
Install  3 Packages

Total download size: 8.9 M
Installed size: 39 M
Is this ok [y/N]: y

Importing GPG key 0x08B40D20:
Userid     : "PostgreSQL RPM Repository <pgsql-pkg-yum@lists.postgresql.org>"
Fingerprint: D4BF 08AE 67A0 B4C7 A1DB CCD2 40BC A2B4 08B4 0D20
From       : /etc/pki/rpm-gpg/PGDG-RPM-GPG-KEY-RHEL
Is this ok [y/N]: y

Installed:
 postgresql16-16.5-1PGDG.rhel8.x86_64
 postgresql16-libs-16.5-1PGDG.rhel8.x86_64
 postgresql16-server-16.5-1PGDG.rhel8.x86_64

Complete!

必要ならpostgresql16-contrib もインストールしておくと便利!?

# sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
Initializing database ... OK

# sudo systemctl enable postgresql-16

# sudo systemctl start postgresql-16

# systemctl status postgresql-16
postgresql-16.service - PostgreSQL 16 database server
 Loaded: loaded (/usr/lib/systemd/system/postgresql-16.service; enabled; vendo
 Active: active (running) since Wed 2024-11-20 10:12:50 JST; 4s ago
 Docs: https://www.postgresql.org/docs/16/static/
 Process: 1341193 ExecStartPre=/usr/pgsql-16/bin/postgresql-16-check-db-dir ${P
 Main PID: 1341199 (postgres)
 Tasks: 7 (limit: 12085)

PostgreSQL 16動作を確認すべき最低限設定

# vi /var/lib/pgsql/16/data/postgresql.conf
# - Connection Settings -
listen_addresses = '*'
##Change the listen Port here<br>#port = 5436

# vi /var/lib/pgsql/16/data/pg_hba.conf
host    all             all             127.0.0.1/32            trust

# sudo systemctl restart postgresql-16

Install PostgreSQL 16 on Rocky Linux 8/AlmaLinux 8
https://computingforgeeks.com/install-postgresql-on-rocky-alma-linux/

PostgreSQL 16 は、2023年9月に正式リリースされたオープンソースのリレーショナルデータベース管理システムの最新版で、多くのパフォーマンス改善、SQL機能の拡張、セキュリティ強化、管理性向上が図られています。以下に主な特徴をまとめます。


PostgreSQL 16 の主な特徴

1. パフォーマンス向上

  • 並列クエリの改善:
    • FULL, RIGHT OUTER JOIN での並列処理対応。
    • SELECT DISTINCT の並列化。
  • ウォル(WAL: Write-Ahead Logging)生成量の削減:
    • 特に大量INSERT/UPDATE処理でディスクI/Oの負荷軽減。
  • ソートの最適化:
    • より高速なソートアルゴリズムと効率的なメモリ使用。
  • 共有バッファキャッシュの改善:
    • 一部の操作でキャッシュの再利用効率が向上。

2. 開発者向けの機能強化

  • SQL/JSON 標準の一部サポート:
    • JSON_TABLE() 関数の一部が利用可能に。
  • より柔軟なロール・パーミッション管理:
    • GRANT/REVOKEでのROLEの継承やチェイン制御が強化。
  • 新しいSQL機能:
    • MERGE文(PostgreSQL 15で導入)の最適化。
    • より詳細なエラーメッセージと診断。

3. ロジカルレプリケーションの強化

  • 複数テーブルのサブスクリプション管理が柔軟に:
    • 複数のテーブルの個別同期が可能。
  • シーケンスのロジカルレプリケーション対応:
    • 従来は物理レプリケーションでしか扱えなかったものが、より細かく論理的に制御可能に。

4. セキュリティと管理性の向上

  • アクセス制御の詳細設定:
    • pg_hba.conf における複数条件の指定(include, @map, etc)。
  • ログ出力のカスタマイズ強化:
    • クエリ計画のログ出力オプションが増加。
  • バックアップとリカバリ操作の改善:
    • pg_basebackup の機能強化(例: tar.gz形式対応)。

5. 国際化とロケール対応

  • ICU(International Components for Unicode)によるコレーション(照合順序)管理の強化により、マルチリンガル対応が改善されました。

🔄 バージョンアップ時の注意点

  • PostgreSQL 16 は設定ファイルの形式や一部SQL動作仕様に変更があるため、15以前からの移行時は事前検証が重要です。
  • pg_upgrade を使った高速移行が可能。