2022年10月

standby.signalを作成したのにPostgreSQLがスタンバイモード(standby mode)で起動しない

standby.signalを作成したのにPostgreSQLがスタンバイモード(standby mode)で起動しませんでした。
[postgres@localhost data]$ touch standby.signal
[postgres@localhost data]$ exit ログアウト
[root@localhost data]# systemctl start postgresql-15.service [root@localhost data]# systemctl status postgresql-15.service ● postgresql-15.service - PostgreSQL 15 database server Loaded: loaded (/usr/lib/systemd/system/postgresql-15.service; disabled; vendor preset: disabled) Active: active (running) since Fri 2022-10-21 23:47:47 JST; 3min 0s ago Docs: https://www.postgresql.org/docs/15/static/ Process: 9282 ExecStartPre=/usr/pgsql-15/bin/postgresql-15-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS) Main PID: 9288 (postmaster) Tasks: 7 (limit: 49457) Memory: 92.7M CGroup: /system.slice/postgresql-15.service ├─9288 /usr/pgsql-15/bin/postmaster -D /var/lib/pgsql/15/data/ ├─9289 postgres: logger ├─9290 postgres: checkpointer ├─9291 postgres: background writer ├─9293 postgres: walwriter ├─9294 postgres: autovacuum launcher └─9295 postgres: logical replication launcher
[root@localhost data]# su - postgres [postgres@localhost data]$ /usr/pgsql-15/bin/pg_ctl -p 5433 promote pg_ctl: サーバーを昇格できません; サーバーはスタンバイモードではありません
PostgreSQL 12の新機能をいくつか試してみたの「recovery.confのpostgresql.confへの統合」を拝見したところ、
$ ls -l rep/data/standby.signal
-rw------- 1 kazu kazu 0 12月 18 14:43 rep/data/standby.signal

と、standby.signalの権限が600でしたので、600にしたところスタンバイモードで立ち上がりました。
[postgres@localhost data]$ ls -l standby.signal
-rw-r--r-- 1 postgres postgres 0 10月 21 23:50 standby.signal
[postgres@localhost data]$ chmod 600 standby.signal
[root@localhost data]# systemctl start postgresql-15.service
[root@localhost data]# systemctl status postgresql-15.service
● postgresql-15.service - PostgreSQL 15 database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql-15.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2022-10-21 23:53:44 JST; 2s ago
     Docs: https://www.postgresql.org/docs/15/static/
  Process: 9950 ExecStartPre=/usr/pgsql-15/bin/postgresql-15-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
 Main PID: 9955 (postmaster)
    Tasks: 6 (limit: 49457)
   Memory: 93.0M
   CGroup: /system.slice/postgresql-15.service
           ├─9955 /usr/pgsql-15/bin/postmaster -D /var/lib/pgsql/15/data/
           ├─9957 postgres: logger
           ├─9958 postgres: checkpointer
           ├─9959 postgres: background writer
           ├─9960 postgres: startup recovering 0000000100000005000000BD
           └─9961 postgres: walreceiver


[解決]libpq5.x86_64 15.0-42PGDG.rhel8 pgdg-common がインストールできない

libpq5.x86_64 15.0-42PGDG.rhel8 pgdg-common がインストールできません。

[環境]
# cat /etc/almalinux-release
AlmaLinux release 8.6 (Sky Tiger)

# cat /etc/yum.repos.d/pgdg-redhat-all.repo
[pgdg-common]
name=PostgreSQL common RPMs for RHEL / Rocky $releasever - $basearch
baseurl=https://download.postgresql.org/pub/repos/yum/common/redhat/rhel-$releasever-$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
repo_gpgcheck = 1
[やったこと]
# dnf check-update
Last metadata expiration check: 1:34:46 ago on Fri 21 Oct 2022 07:06:30 AM JST.

libpq5.x86_64                                         15.0-42PGDG.rhel8                                          pgdg-common
# dnf update
Last metadata expiration check: 1:34:22 ago on Fri 21 Oct 2022 07:06:30 AM JST.
Error:
 Problem: package perl-DBD-Pg-3.7.4-4.module_el8.6.0+2829+05d1a4fc.x86_64 requires libpq.so.5(RHPG_9.6)(64bit), but none of the providers can be installed
  - cannot install both libpq5-15.0-42PGDG.rhel8.x86_64 and libpq5-14.5-42PGDG.rhel8.x86_64
  - package libpq5-15.0-42PGDG.rhel8.x86_64 obsoletes libpq provided by libpq-13.5-1.el8.x86_64
  - cannot install the best update candidate for package perl-DBD-Pg-3.7.4-4.module_el8.6.0+2829+05d1a4fc.x86_64
  - cannot install the best update candidate for package libpq5-14.5-42PGDG.rhel8.x86_64
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
# rpm -qa | grep perl-DBD-Pg
perl-DBD-Pg-3.7.4-4.module_el8.6.0+2829+05d1a4fc.x86_64
# yum info perl-DBD-Pg
メタデータの期限切れの最終確認: 2:11:46 時間前の 2022年10月18日 02時55分28秒 に実施しました。
インストール済みパッケージ
名前         : perl-DBD-Pg
バージョン   : 3.7.4
リリース     : 4.module_el8.6.0+2829+05d1a4fc
Arch         : x86_64
サイズ       : 567 k
ソース       : perl-DBD-Pg-3.7.4-4.module_el8.6.0+2829+05d1a4fc.src.rpm
リポジトリー : @System
repo から    : appstream
概要         : A PostgreSQL interface for perl
URL          : http://search.cpan.org/dist/DBD-Pg/
ライセンス   : GPLv2+ or Artistic
説明         : DBD::Pg is a Perl module that works with the DBI module to provide access
             : to PostgreSQL databases.
perl-DBD-Pg-3.7.4-4.module_el8.6.0+2829+05d1a4fc.x86_64にはlibpq.so.5(RHPG_9.6)(64bit)が必要だけど、インストールしようとしているlibpq5.x86_64 15.0-42PGDG.rhel8はNGなのだろうと思います。
今は、libpq5-14.5-42PGDG.rhel8.x86_64が入っています。
どうすればいいのかわかりません…
いつか、libpq5.x86_64 15.0-42PGDG.rhel8に対応した、perl-DBD-Pgがリリースされるのを待つ…でいいのでしょうか。



パッケージ pgpool-II-pg11-extensions-4.3.3-1.rhel8.x86_64 には pgpool-II-pcp が必要ですが、どのプロバイダーからもインストールできません

PostgreSQLを11から15にVerUPするため、pgdg-redhat-all.repoを最新のものに差し替えて、dnf updateしたところ以下のエラーが発生しました。
[root@sub0000529529 yum.repos.d]# dnf check-update
pgpool-II-pg11-extensions.x86_64                                    4.3.3-1.rhel8                                     pgdg11

[root@sub0000529529 yum.repos.d]# dnf update エラー: 問題: パッケージ pgpool-II-pg11-extensions-4.3.3-1.rhel8.x86_64 には pgpool-II-pcp が必要ですが、どのプロバイダーからもインストールできません - パッケージ pgpool-II-pg11-extensions-4.3.3-1.rhel8.x86_64 には libpcp.so.2()(64bit) が必要ですが、どのプロバイダーからもインストールできません - パッケージの最良アップデート候補をインストールできません pgpool-II-pg11-extensions-4.1.13-1pgdg.rhel8.x86_64 - postgresql14-server が提供されません pgpool-II-pcp-4.3.2-1.rhel8.x86_64 に必要です - postgresql14-server が提供されません pgpool-II-pcp-4.3.3-1.rhel8.x86_64 に必要です (インストール不可のパッケージをスキップするには、'--skip-broken' を追加してみてください または、'--nobest' を追加して、最適候補のパッケージのみを使用しないでください)
https://erscape.livedoor.blog/archives/9819666.html と同じ案件。
[pgdg15]
name=PostgreSQL 15 for RHEL / Rocky $releasever - $basearch
baseurl=https://download.postgresql.org/pub/repos/yum/15/redhat/rhel-$releasever-$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
repo_gpgcheck = 1
exclude=pgpool*

[pgdg11]
name=PostgreSQL 11 for RHEL / Rocky $releasever - $basearch
baseurl=https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-$releasever-$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
repo_gpgcheck = 1
exclude=pgpool*
として、pgdgのリポジトリからpgpoolをインストールしないようにしました。

repo_gpgcheckとは

PostgreSQLを11から15にVerUPするため、pgdg-redhat-all.repoを最新のものに差し替えたら、repo_gpgcheckというパラメータが増えてました。
$ cat pgdg-redhat-all.repo.rpmnew
(中略) [pgdg15] name=PostgreSQL 15 for RHEL / Rocky $releasever - $basearch baseurl=https://download.postgresql.org/pub/repos/yum/15/redhat/rhel-$releasever-$basearch enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG repo_gpgcheck = 1 (中略)
$ man yum.conf
       gpgcheck
              boolean

              Whether to perform GPG signature check on packages found in this repository.  The default is False.

              This option can only be used to strengthen the active RPM security policy set with  the  %_pkgverify_level
              macro  (see  the /usr/lib/rpm/macros file for details).  That means, if the macro is set to 'signature' or
              'all' and this option is False, it will be overridden to True during DNF runtime, and a  warning  will  be
              printed.   To  squelch  the  warning, make sure this option is True for every enabled repository, and also
              enable localpkg_gpgcheck.

DeepLの訳
このリポジトリで見つかったパッケージに対して、GPG署名チェックを行うかどうか。
デフォルトは False です。

このオプションは、%_pkgverify_level マクロで設定されたアクティブな RPM セキュリティポリシーを強化するためにのみ使用できます (詳細は /usr/lib/rpm/macros ファイルを参照してください)。マクロ (詳細は /usr/lib/rpm/macros ファイルを参照) で設定されたアクティブな RPM セキュリティポリシーの強化にのみ使用できます。
つまり、マクロが 'signature' または 'all' に設定され、このオプションが False である場合 マクロが 'all' に設定され、このオプションが False の場合、DNF 実行時に True に上書きされ、警告が表示されます。が表示される。
この警告を消すには、有効なすべてのリポジトリでこのオプションが True であることを確認し、さらに localpkg_gpgcheck を有効にしてください。

www.DeepL.com/Translator(無料版)で翻訳しました。
記事検索