विंडोज पर PostgreSQL का मामूली अपग्रेड कैसे करें, उदाहरण के लिए 9.3.0 से 9.3.1?


10

एंटरप्राइज़ DB निर्मित विंडोज़ इंस्टॉलर का उपयोग करके PostgreSQL जैसे 9.3.0 से 9.3.1 तक मामूली अपग्रेड करने के लिए अनुशंसित तरीका क्या है? क्या मुझे पहले स्थापना रद्द करनी चाहिए या मौजूदा इंस्टॉलेशन को स्थापित करना चाहिए?

वर्तमान स्थापना पोस्टग्रेजेक-9.3.0-1-windows-x64.exe के साथ की गई थी। अब मैं postgresql-9.3.1-1-windows-x64.exe का उपयोग करके अपग्रेड करना चाहता हूं।


प्रलेखन के अनुसार : सर्वर बंद करो, नए बायनेरिज़ स्थापित करें, और पुनरारंभ करें। हमेशा एक बैकअप लेने के लिए एक अच्छा विचार है, और आम तौर पर, एक योजना बी के लिए है
dezso

लिंक @dezso के लिए धन्यवाद, मैंने 9.3 मैनुअल के उस खंड को पढ़ा था, लेकिन यह थोड़ा अस्पष्ट पाया, विशेष रूप से विंडोज सेटअप बायनेरिज़ के संबंध में।
buzz3791

@ buzz3791 प्रश्न / शीर्षक अभी गलत है क्योंकि 10.0 से 10.1 नई संस्करण योजना के साथ एक मामूली उन्नयन है। मुझे लगता है कि आपको e.g. ...भाग को हटा देना चाहिए ।
हैपिर

जवाबों:


8

विंडोज पर, बस पोस्टग्रैसिकल सेवा को रोकना, फिर मौजूदा 9.3.0 कार्यों के शीर्ष पर पोस्टग्रैसिकल-9.3.1-1-windows-x64.exe चलाना। कोई आवश्यक स्थापना रद्द करें। बेशक, एक बैकअप की सिफारिश की जाती है।

विंडोज पर अपडेट प्रक्रिया के लिए स्पष्ट, स्पष्ट प्रलेखन अनुपस्थित है। ध्यान दें कि @dezso द्वारा प्रदान किया गया प्रलेखन लिंक वर्तमान नियमावली में ले जाया गया है: https://www.postgresql.org/docs/current/static/upmission.html

PostgreSQL रिलीज़ नोट्स में आमतौर पर परिशिष्ट ई में माइग्रेशन युक्तियाँ प्रलेखित हैं। उदाहरण के लिए,

Windows इंस्टॉलर जानकारी का सबसे अच्छा स्रोत एंटरप्राइज़ DB फ़ोरम था। यहाँ कुछ पोस्टिंग हैं जो मैंने पाया कि प्रश्न को संबोधित किया ...

ध्यान दें कि अपग्रेड जानकारी रिलीज़ से रिलीज़ होने तक चारों ओर घूमती है। उदाहरण के लिए,

  • संस्करण 10 स्थान: अध्याय 18. सर्वर सेटअप और ऑपरेशन, अनुभाग 18.6। PostgreSQL क्लस्टर अपग्रेड करना https://www.postgresql.org/docs/10/static/upmission.html
  • संस्करण 9.3 स्थान: अध्याय 17 सर्वर सेटअप और संचालन, अनुभाग 17.6 एक पोस्टग्रेक्यूएल क्लस्टर का उन्नयन http://www.postgresql.org/docs/9.3/static/upmission.html
  • संस्करण 9.0 स्थान: अध्याय 24 बैकअप और पुनर्स्थापना, अनुभाग 24.4 प्रवासन के बीच विज्ञप्ति http://www.postgresql.org/docs/9.0/static/migration.html

ध्यान दें कि जून 2017 तक, EnterpriseDB ने इस उत्तर में लिंक को प्रभावित करने वाले अपने सामुदायिक चर्चा मंचों को बदल दिया ( https://web.archive.org/web/20171021012954/https://www.enterprisedb.com/news/enterprisedb-annoses- नए-पोस्टग्रेज-रॉक्स-ऑनलाइन-यूजर-फोरम )। मैं Wayback मशीन पर कुछ मूल पोस्टों का शिकार करने में सक्षम था। एक मृत लिंक जिसे मैं मरम्मत करने में असमर्थ था: "2010 जनवरी - 8.4.1 से 8.4.2 तक उन्नयन", http://forums.enterprisedb.com/posts/list/2115.page#7888


4

रिकॉर्ड के लिए, एंटरप्राइज़ DB से विंडोज के लिए इंस्टॉलर चलाना (डिफ़ॉल्ट, पोस्टग्रेज साइट से लिंक किया गया ), कम से कम चूंकि वर्तमान संस्करण पोस्टग्रैगस 9.4 है, तो आपको postgresqlसेवा बंद करने की आवश्यकता नहीं है । इंस्टॉलर आपके लिए ऐसा करता है। आपको अभी भी कनेक्शन फिर से स्थापित करने की आवश्यकता है, यदि कोई हो (अधिकांश क्लाइंट यह स्वचालित रूप से करते हैं)।

बेस्ट का उल्लेख वर्तमान पुस्तिका (का उपयोग करते हुए वर्तमान Postgres का संस्करण):

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


3

मैंने सिर्फ पोस्टग्रेज को 10.0 से 10.1 में अपग्रेड किया था और यह बहुत तेज़ और आसान अपग्रेड था।

मैंने https://www.enterprisedb.com/download-postgresql-binaries से बायनेरीज़ को डाउनलोड किया और उन्हें अनज़िप किया C:\postgres, फिर निर्देशिका pgsqlका नाम बदल दिया pgsql-10.1ताकि मैं पुराने संस्करणों को अनावश्यक न समझकर रख सकूं।

मैं dll फ़ाइलों की नकल की msvcp120.dllऔर msvcr120.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 Typeकरने के लिए Disabled, और नई सेवा शुरू कर दिया।

SELECT version();Psql में फिर से रनिंग ने अपग्रेड की पुष्टि की (पुराने सर्वर को बंद करने पर कनेक्शन के निरस्त होने के कारण इसे दो बार चलाना पड़ा):

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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.