Làm cách nào để thực hiện nâng cấp nhỏ PostgreSQL trên Windows, ví dụ: 9.3.0 lên 9.3.1?


10

Cách được đề xuất để thực hiện nâng cấp nhỏ từ PostgreSQL, ví dụ 9.3.0 lên 9.3.1 bằng trình cài đặt windows xây dựng Enterprise DB là gì? Tôi nên gỡ cài đặt trước hay chỉ cài đặt qua cài đặt hiện có?

Quá trình cài đặt hiện tại được thực hiện với postgresql-9.3.0-1-windows-x64.exe. Bây giờ tôi muốn nâng cấp bằng postgresql-9.3.1-1-windows-x64.exe.


Theo tài liệu : dừng máy chủ, cài đặt nhị phân mới và khởi động lại. Luôn luôn là một ý tưởng tốt để có một bản sao lưu, và nói chung, để có một kế hoạch B.
dezso

Cảm ơn liên kết @dezso, tôi đã đọc phần đó của hướng dẫn 9.3 nhưng thấy nó hơi mơ hồ, đặc biệt là liên quan đến các nhị phân thiết lập Windows.
buzz3791

@ buzz3791 Hiện tại câu hỏi / tiêu đề không chính xác vì 10.0 đến 10.1 là một bản nâng cấp nhỏ với sơ đồ phiên bản mới. Tôi nghĩ rằng bạn nên loại bỏ e.g. ...một phần.
isapir

Câu trả lời:


8

Trên Windows, chỉ cần dừng dịch vụ postgresql, sau đó chạy postgresql-9.3.1-1-windows-x64.exe trên đầu trang của công việc 9.3.0 hiện có. Không cần gỡ cài đặt. Tất nhiên, một bản sao lưu được khuyến khích.

Tài liệu rõ ràng, rõ ràng cho quy trình cập nhật trên Windows không có. Lưu ý rằng liên kết tài liệu được cung cấp bởi @dezso đã được chuyển trong hướng dẫn hiện tại tới: https://www.postgresql.org/docs/civerse/static/upgrad.html

Ghi chú phát hành PostgreSQL thường ghi lại các mẹo di chuyển trong Phụ lục E. Ví dụ:

Nguồn thông tin cài đặt Windows tốt nhất là các diễn đàn Enterprise DB. Dưới đây là một số bài đăng tôi tìm thấy giải quyết câu hỏi ...

Lưu ý rằng thông tin nâng cấp di chuyển xung quanh từ phát hành đến phát hành. Ví dụ,

Lưu ý rằng kể từ tháng 6 năm 2017, EnterpriseDB đã thay thế các diễn đàn thảo luận cộng đồng của họ ảnh hưởng đến các liên kết trong câu trả lời này ( https://web.archive.org/web/20171021012954/https://www.enterprisedb.com/news/enterprisedb-announces- new-postgres-rock-online-user-forum ). Tôi đã có thể săn lùng một số bài viết gốc trên Wayback Machine. Một liên kết chết mà tôi không thể sửa chữa là: "Tháng 1 năm 2010 - Nâng cấp lên 8.4.2 từ 8.4.1", http://forums.enterprisedb.com/posts/list/2115.page#7888 .


4

Đối với bản ghi, chạy trình cài đặt cho Windows từ Enterprise DB (mặc định, được liên kết từ trang Postgres ), ít nhất là từ phiên bản hiện tại Postgres 9.4, bạn không phải dừng postgresqldịch vụ. Trình cài đặt làm điều đó cho bạn. Bạn vẫn cần thiết lập lại các kết nối, nếu có (hầu hết khách hàng thực hiện việc này tự động).

Tham khảo tốt nhất hướng dẫn hiện tại (sử dụng phiên bản hiện tại của Postgres):

http://www.postgresql.org/docs/civerse/interactive/upgrad.html


3

Tôi vừa nâng cấp Postgres 10.0 lên 10.1 và đó là một bản nâng cấp rất nhanh và dễ dàng.

Tôi đã tải xuống các tệp nhị phân từ https://www.enterprisedb.com/doad-postgresql-binaries và giải nén chúng C:\postgres, sau đó đổi tên thư mục pgsqlthành pgsql-10.1để tôi có thể giữ các phiên bản cũ hơn cho đến khi không cần thiết.

Tôi sao chép các tập tin dll msvcp120.dllmsvcr120.dllđến C:\postgres\pgsql-10.1\binvì tôi thích rằng cài đặt đơn giản trong "Installer" mà có lẽ thêm nhiều hơn nữa sưng lên mức cần thiết.

Sau đó tôi đã sử dụng tập lệnh bó đơn giản này mà tôi đã viết trong quá khứ:

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%

Tôi đã chạy SELECT version();trong psql để xác nhận phiên bản cũ:

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

Sau đó tôi đã chạy tập lệnh bó ở trên đã cài đặt một dịch vụ có tên postgres-10.1.

Tôi ngừng các dịch vụ cũ và thiết lập của nó Startup Typeđể Disabled, và bắt đầu các dịch vụ mới.

Chạy SELECT version();lại trong psql đã xác nhận nâng cấp (phải chạy hai lần do kết nối bị hủy bỏ khi tôi dừng máy chủ cũ):

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

Hãy nhớ rằng việc nâng cấp một phiên bản chính đòi hỏi phải cập nhật thư mục dữ liệu bằng pg_upgradehoặc một số phương pháp khác, nhưng đối với một nâng cấp nhỏ, phương pháp này hoạt động như một cơ duyên.


1
Điều tốt là tôi đã đăng bài này ở đây. Tôi chỉ theo các hướng dẫn để nâng cấp từ 10.1đến 10.2và nó làm việc rất lớn.
isapir
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.