PostgreSQLのバージョンアップ

PortageでPostgreSQLの17が使えるようになっていたので、バージョンアップする。 17.0は9月にリリースされたらしく、今月にはCVSS高めの脆弱性が報告されて17.1が、さらにその後に17.2がリリースされているので、早めに対応したい。

調べたところありがたいことにGentoo Wikiにバージョンアップの手順が記載されていた。 pg_upgradeを使えば古いバージョン(16)から新しいバージョン(17)へデータを移行できるようだが、両バージョンのコマンドが必要らしく、困ったことに16のパッケージは既に消してしまっていた。

なんとか16のバックアップから17でリストアできないか試したが、メジャーバージョンアップなのでやはりエラーがでてしまった。 どうしようか困ったが、単純に17をpackage.maskで除外して16をインストールし直してやればいいだけだった。 無事16のコマンドを用意できたのでWikiの手順に従ってアップデートし、特に問題なく完了することができた。

ただ、PostgreSQL: Release Notesによると17の変更点としてpg_stat_bgwriterのカラムがいくつかpg_stat_checkpointerへ移ったらしく、ZabbixのPostgreSQLテンプレートに用意されている一部のアイテムでエラーが起きるようになってしまった。 プラグインの設定で済むなら対応するが、プラグイン自体をいじる必要がありそうなのでいったん対象のアイテムを無効化するだけとした。 とりあえずPostgreSQLのエラーログは止まったのでよしとする。監視としては継続して取得したいけれども。

しばらくプラグインのページを注意して見るようにしようと思ったが、現状サポートバージョンが15までで16もサポート外だったので、じゃあもう気長に待つか...という感じに落ち着いた。

ちなみに、Zabbixは現状7.0.5(PostgreSQL17未対応)を使っているため、Zabbixが使用しているPostgreSQLについては17以上をpackage.maskで制限し、16系の最新を使うようにした。

links

social