WindowsでPostgreSQLのマイナーアップグレードを行う方法(例:9.3.0から9.3.1)


10

Enterprise DBビルドのWindowsインストーラーを使用して、PostgreSQLから9.3.0から9.3.1へのマイナーアップグレードを実行するための推奨される方法は何ですか?最初にアンインストールする必要がありますか、それとも既存のインストールに上書きしてインストールしますか?

現在のインストールはpostgresql-9.3.0-1-windows-x64.exeを使用して実行されました。次に、postgresql-9.3.1-1-windows-x64.exeを使用してアップグレードします。


ドキュメントに従って:サーバーを停止し、新しいバイナリをインストールして、再起動します。これは、バックアップを取るために、一般的に、計画B.持つことは常に良い考えです
dezso

リンク@dezsoをありがとう、9.3マニュアルのそのセクションを読んだことがあるが、特にWindowsセットアップバイナリに関しては、少しあいまいであることがわかった。
buzz3791 2013年

@ buzz3791 10.0から10.1は新しいバージョン管理スキームのマイナーアップグレードであるため、質問/タイトルは現在不正確です。そのe.g. ...部分は外した方がいいと思います。
isapir 2018年

回答:


8

Windowsでは、単にpostgresqlサービスを停止してから、既存の9.3.0の上でpostgresql-9.3.1-1-windows-x64.exeを実行すると機能します。アンインストールは必要ありません。もちろん、バックアップをお勧めします。

Windowsでのアップデート手順に関する明確で明確なドキュメントはありません。@dezsoによって提供されるドキュメントリンクは、現在のマニュアルではhttps://www.postgresql.org/docs/current/static/upgrading.htmlに移動されてい ます。

通常、PostgreSQLリリースノートには、付録Eに移行のヒントが記載されています。たとえば、

Windowsインストーラー情報の最良のソースは、Enterprise DBフォーラムでした。ここに私が見つけたいくつかの投稿が質問に対処しました...

アップグレード情報はリリース間で移動することに注意してください。例えば、

2017年6月の時点で、EnterpriseDBは、この回答のリンクに影響を与えるコミュニティディスカッションフォーラムを置き換えました(https://web.archive.org/web/20171021012954/https://www.enterprisedb.com/news/enterprisedb-announces- new-postgres-rocks-online-user-forum)。ウェイバックマシンの元の投稿の一部を探すことができました。私が修復できなかった1つのデッドリンクは、「2010年1月-8.4.1から8.4.2へのアップグレード」、 http://forums.enterprisedb.com/posts/list/2115.page#7888です。


4

念のため、Enterprise DB(デフォルトはPostgresサイトからリンクされているから Windows用のインストーラーを実行すると、少なくとも現在のバージョンのPostgres 9.4以降、postgresqlサービスを停止する必要はありません。インストーラがそれを行います。接続がある場合は、それでも接続を再確立する必要があります(ほとんどのクライアントがこれを自動的に行います)。

現在のマニュアルを参照してください(Postgres の現在のバージョンを使用)。

http://www.postgresql.org/docs/current/interactive/upgrading.html


3

Postgres 10.0を10.1にアップグレードしたところ、非常に高速で簡単にアップグレードできました。

私はからバイナリをダウンロードしhttps://www.enterprisedb.com/download-postgresql-binariesし、それらを解凍しC:\postgres、そのディレクトリに改名pgsqlするpgsql-10.1ので、不必要なものとみなされるまで、私は古いバージョンを保つことができるという。

私は、DLLファイルをコピーしたmsvcp120.dllmsvcr120.dllするC:\postgres\pgsql-10.1\bin私はおそらく必要なよりもはるかに肥大化を追加し、「インストーラ」を超えるという簡単なインストールを好むので。

次に、私が過去に書いたこの単純なバッチスクリプトを使用しました。

set MAJOR_VERSION=10
set MINOR_VERSION=1

set SERVICE_NAME=pgsql-%MAJOR_VERSION%.%MINOR_VERSION%

set PGHOME=C:\postgres\%SERVICE_NAME%
set PGDATA=C:\postgres\pgdata%MAJOR_VERSION%

%PGHOME%\bin\pg_ctl.exe register -N %SERVICE_NAME% -U LocalSystem -S auto --pgdata=%PGDATA%

::: to unregister old service:
::%PGHOME%\bin\pg_ctl.exe unregister -N %SERVICE_NAME%

SELECT version();古いバージョンを確認するために、psqlで実行しました。

postgres=# select version();
-[ RECORD 1 ]-------------------------------------------------------
version | PostgreSQL 10.0, compiled by Visual C++ build 1800, 64-bit

次に、という名前のサービスをインストールするバッチスクリプトを実行しましたpostgres-10.1

私は古いサービスを停止し、その設定をStartup TypeDisabledて、新しいサービスを開始しました。

SELECT version();psqlで再度実行すると、アップグレードが確認されました(古いサーバーを停止したときに接続が中止されたため、2回実行する必要がありました)。

postgres=# select version();
server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
The connection to the server was lost. Attempting reset: Succeeded.
postgres=# select version();
-[ RECORD 1 ]-------------------------------------------------------
version | PostgreSQL 10.1, compiled by Visual C++ build 1800, 64-bit

メジャーバージョンをアップグレードするには、pg_upgradeまたはその他の方法でデータディレクトリを更新する必要がありますが、マイナーアップグレードの場合、この方法は魅力的でした。


1
これをここに投稿して良かった。指示に従ってアップグレードを行った10.1ところ10.2、問題なく動作しました。
isapir 2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.