Windows版PostgreSQL12 → 17へ

未分類

本ページは広告が含まれています。気になる広告をクリック頂けますと、サーバ運営費になります(^^

PostgreSQL12はサポート終了

2024年11月21日のリリースをもって、サポートが終了

そこで、12 → から最新17へのアップグレード

DBは、バックアップして復元

サービスを停止しようとしているのですが、サービスが停止できない。

pgAdmin4からDBへのアクセスはでき、タスクマネージャで見てもPostgreSQLが動いているのが分かる。

仕方ないのでコマンドで停止しようとしても動いていないと言われる始末。

C:\Users\Administrator>net stop postgresql-x64-12
postgresql-x64-12 - PostgreSQL Server 12 サービスは開始されていません。

苦肉の策で、サービスを起動し、postgresql-x64-12を無効にしてサーバ再起動させたらタスクからも消えた

もし、新しいバージョンで何か問題が起こりインストールが進まなかった時のためこのまま残しておく。

postgresql 17.4.1 のインストール

postgresql-17.4-1-windows-x64.exe のインストール

デフォルトのまま進めていく

完了

postgresql-x64-17 が実行中となった

DB復元

今回は、DBのバックアップをとっておき新サーバで復元する形をとった。

pg_upgradeすると、

Checking for presence of required libraries 致命的 このクラスタでは、移行先の環境にはないロード可能ライブラリを参照しています。 これらのライブラリを移行先の環境に追加するか、もしくは移行元の環境から それらを使っている関数を削除してください。 問題のライブラリの一覧は、

といったエラーがでたりして、それはそれで面倒。予め別サーバでPostgreSQL12で作成したDBのバックアップを17で復元できる事を確認し復元に臨む。

DBを作成。バックアップした時と同じDB名で空のデータベースを作成する。

作成したDBを右クリックしリストア

リストア完了

pg_hba.confの調整

ローカルで利用するだけならパスワード認証できるが、ネットワーク越しにアクセスしようと思うと、pg_hba.confの調整が必要になる。

# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256

書式はこんな感じで追記し、サービスを再起動する。

許可したネットワークからDBへアクセスできることを確認

検査

元通りテーブル類が戻っているか、レコードはあるか、アプリからアクセス可能かを確認する。

元通り動いている事を確認

後始末

PostgreSQL12を削除する

なぜか不明だけどエラーが出る

フォルダをたどってuninstall-postgresql.exeを実行してみる

全て削除するので、Entire application を選択

Uninstalling PostgreSQL

アンインストール後再起動

スタートメニューから12が消えた

プログラムの追加と削除からも12は消えてくれてよかった

フォルダは残ってしまっているので、残骸を処分。12フォルダをゴミ箱へ。

まとめ

サポート期限が切れたアプリを使うのは怖いですよね。小まめにアップデートしていかないといけません。

タイトルとURLをコピーしました