Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ERROR: pg_statsinfo: incompatible statsrepo schema: version mismatchの対応方法について #5

Open
MA0831 opened this issue Aug 7, 2023 · 0 comments

Comments

@MA0831
Copy link

MA0831 commented Aug 7, 2023

環境:

OS:RHEL 8.6
ソフトウェア:
PostgreSQL 14.4
パッケージ:
pg_statinfo14.0

当方環境でpg_statinfo14.0 -> 14.2のアップグレードを下記の手順で行いました。

  1. postgresql.conf の shared_preload_libraries から pg_statsinfo を取り除き、全ての pg_statsinfo.* パラメータを削除(コメントアウト)した後に、PostgreSQL を再起動します。

  2. rootユーザーでパッケージを更新します。
    rpm -Uvh pg_statsinfo-14.2-1.rhel8.x86_64.rpm

  3. 設定ファイルに shared_preload_libraries = 'pg_statsinfo' と pg_statsinfo.* パラメータを再度有効にして、開始対象側 PostgreSQL を再起動します。

しかし、その後、手動・自動 snapshot がどちらも取得できなくなっています。
ログは下記のようです。

2023-08-03 03:17:11 EDT 4589 64cb5477.11ed-1 0 LOG:  pg_statsinfo launcher started
2023-08-03 03:17:11 EDT 4591 -  (pg_statsinfod, , , pg_statsinfod) LOG:  pg_statsinfo: start
2023-08-03 03:17:11 EDT 4591 -  (pg_statsinfod, , , pg_statsinfod) ERROR:  pg_statsinfo: pg_statsinfo.control format incompatible
2023-08-03 03:17:11 EDT 4591 -  (pg_statsinfod, , , pg_statsinfod) DETAIL:  pg_statsinfo.control was created with STATSINFO_CONTROL_VERSION 140000 (0x000222e0), but the pg_statsinfo was compiled with STATSINFO_CONTROL_VERSION 140200 (0x000223a8)
2023-08-03 03:17:11 EDT 4591 -  (pg_statsinfod, , , pg_statsinfod) ERROR:  pg_statsinfo: incompatible statsrepo schema: version mismatch
2023-08-03 03:17:11 EDT 4591 -  (pg_statsinfod, , , pg_statsinfod) LOG:  pg_statsinfo: pg_statsinfo is starting in fallback mode
2023-08-03 03:17:11 EDT 4591 -  (pg_statsinfod, , , pg_statsinfod) WARNING:  pg_statsinfo: writer discards 1 items
2023-08-03 03:18:48 EDT 4591 -  (pg_statsinfod, , , pg_statsinfod) WARNING:  pg_statsinfo: writer discards 1 items

検証して出た上記のメッセージ「ERROR: pg_statsinfo: incompatible statsrepo schema: version mismatch」を見ると、
古いデータは削除する必要がある(マイナーバージョンアップでも互換性は無い)ように思います。
つまり、アップグレード後にスキーマの作り直しが必要あります。

公式のpg_statsinfo (14 ~)キュメントのフォールバックモードの説明によると、
リポジトリDBの復旧に関する点検事項と対処方法を次のように示しています。

・リポジトリDBに接続できない場合
 statsrepo スキーマのバージョンが合わない場合
 (正しいバージョンの statsrepo スキーマは設定リロード時に自動的に登録されます)

https://github.com/ossc-db/pg_statsinfo/blob/main/doc/pg_statsinfo-ja.md#%E3%83%95%E3%82%A9%E3%83%BC%E3%83%AB[…]%E3%82%AF%E3%83%A2%E3%83%BC%E3%83%89

pg_statsinfo (~ 13)以前の場合、次のように示しています。

リポジトリDBに接続できない場合
・リポジトリDBの稼動状態を確認し、リポジトリDBが停止している場合はリポジトリDBを起動してください。
・設定ファイルのリポジトリDBへの接続文字列(pg_statsinfo.repository_server)を確認し、設定が誤っている場合は修正してください。(要設定リロード)
statsrepo スキーマのバージョンが合わない場合
・statsrepo スキーマを削除するか、リポジトリDBのデータベースを別に作成してください。
 (正しいバージョンの statsrepo スキーマは設定リロード時に自動的に登録されます)

https://pgstatsinfo.sourceforge.net/documents/statsinfo13/pg_statsinfo-ja.html#fallback-mode

ただし、今回の事象からみると、pg_statsinfo (14 ~)の場合も、バージョンが合わないとスキーマを削除する必要があると考えていますので、報告します。

@MA0831 MA0831 changed the title ERROR: pg_statsinfo: incompatible statsrepo schema: version mismatchの対応について ERROR: pg_statsinfo: incompatible statsrepo schema: version mismatchの対応方法について Aug 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant