Bagaimana cara melakukan sedikit peningkatan PostgreSQL di Windows, misal 9.3.0 ke 9.3.1?

10

Apa cara yang disarankan untuk melakukan pemutakhiran kecil dari PostgreSQL misalnya 9.3.0 hingga 9.3.1 menggunakan installer Windows bawaan Enterprise DB? Haruskah saya uninstall dulu atau hanya menginstal dari instalasi yang ada?

Instalasi saat ini dilakukan dengan postgresql-9.3.0-1-windows-x64.exe. Sekarang saya ingin memutakhirkan menggunakan postgresql-9.3.1-1-windows-x64.exe.

buzz3791
sumber
Sesuai dokumentasi : hentikan server, instal binari baru, dan mulai ulang. Itu selalu merupakan ide yang baik untuk mengambil cadangan, dan umumnya, untuk memiliki rencana B.
dezso
Terima kasih atas tautan @dezso, saya telah membaca bagian dari manual 9.3 tetapi merasa agak kabur, terutama yang berkaitan dengan binari pengaturan Windows.
buzz3791
@ buzz3791 Pertanyaan / judul tidak akurat sekarang karena 10.0 hingga 10.1 adalah peningkatan minor dengan skema versi baru. Saya pikir Anda harus menghapus e.g. ...bagian itu.
isapir

Jawaban:

8

Di Windows, cukup hentikan layanan postgresql, kemudian jalankan postgresql-9.3.1-1-windows-x64.exe di atas karya 9.3.0 yang ada. Tidak perlu menghapus instalan. Tentu saja, cadangan disarankan.

Tidak ada dokumentasi yang jelas dan eksplisit untuk prosedur pembaruan pada Windows. Perhatikan bahwa tautan dokumentasi yang disediakan oleh @dezso telah dipindahkan dalam manual saat ini ke: https://www.postgresql.org/docs/current/static/upgrading.html

Catatan Rilis PostgreSQL biasanya mendokumentasikan kiat migrasi di Lampiran E. Misalnya,

Sumber informasi penginstal Windows terbaik adalah forum Enterprise DB. Berikut adalah beberapa postingan yang saya temukan yang menjawab pertanyaan ...

Perhatikan bahwa info peningkatan bergerak dari rilis ke rilis. Sebagai contoh,

Perhatikan bahwa pada Juni 2017, EnterpriseDB mengganti forum diskusi komunitas mereka yang memengaruhi tautan dalam jawaban ini ( https://web.archive.org/web/20171021012954/https://www.enterprisedb.com/news/enterprisedb-announces- new-postgres-rocks-online-user-forum ). Saya dapat memburu beberapa posting asli di Wayback Machine. Satu tautan mati yang tidak dapat saya perbaiki adalah: "2010 Januari - Meningkatkan ke 8.4.2 dari 8.4.1", http://forums.enterprisedb.com/posts/list/2115.page#7888 .

buzz3791
sumber
4

Sebagai catatan, menjalankan penginstal untuk Windows dari Enterprise DB (default, tertaut dari situs Postgres ), setidaknya sejak versi Postgres 9.4 saat ini, Anda tidak harus menghentikan postgresqllayanan. Pemasang melakukan itu untuk Anda. Anda masih perlu membangun kembali koneksi, jika ada (sebagian besar klien melakukan ini secara otomatis).

Terbaik merujuk pada saat user (menggunakan saat ini versi Postgres):

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

Erwin Brandstetter
sumber
3

Saya baru saja mengupgrade Postgres 10.0 menjadi 10.1 dan itu adalah upgrade yang sangat cepat dan mudah.

Saya download binari dari https://www.enterprisedb.com/download-postgresql-binaries dan membuka ritsleting mereka untuk C:\postgres, kemudian berganti nama direktori pgsqluntuk pgsql-10.1sehingga saya bisa terus versi sampai dianggap tidak perlu.

Saya menyalin file dll msvcp120.dlldan msvcr120.dlluntuk C:\postgres\pgsql-10.1\binkarena saya lebih memilih bahwa instalasi sederhana atas "Installer" yang mungkin menambahkan lebih mengasapi dari yang dibutuhkan.

Saya kemudian menggunakan skrip kumpulan sederhana ini yang saya tulis di masa lalu:

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%

Saya berlari SELECT version();dalam psql untuk mengkonfirmasi versi lama:

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

Saya kemudian menjalankan skrip batch di atas yang menginstal layanan bernama postgres-10.1.

Aku menghentikan layanan lama dan set Startup Typeuntuk Disabled, dan memulai layanan baru.

Berjalan SELECT version();lagi di psql mengkonfirmasi peningkatan (harus menjalankannya dua kali karena koneksi dibatalkan ketika saya menghentikan server lama):

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

Ingatlah bahwa memutakhirkan versi utama memerlukan memperbarui direktori data dengan pg_upgradeatau beberapa metode lain, tetapi untuk peningkatan minor metode ini berfungsi seperti pesona.

isapir
sumber
1
Untung saya memposting ini di sini. Saya hanya mengikuti instruksi untuk meningkatkan dari 10.1ke 10.2dan itu bekerja dengan baik.
isapir