PostgreSQL को 8.4 से 9.4 के वर्जन पर अपग्रेड कैसे करें?


18

मैं अपने PostgreSQL को संस्करण 8.4 से 9.4 तक अपग्रेड करना चाहता हूं ।

प्रलेखन मेरे लिए बहुत स्पष्ट नहीं है।

  1. अगर मैं अपग्रेड करता हूं तो क्या मैं अपने पुराने डेटाबेस खो दूंगा?
  2. अगर मैं अपग्रेड के बाद उन्हें खो देता हूं तो मैं अपने पुराने डेटाबेस का बैकअप कैसे ले सकता हूं?
  3. मैं अपने psql को कैसे अपग्रेड कर सकता हूं?

मेरा PostgreSQL एक CentOS 6.6 सर्वर पर चल रहा है।


ईमानदार होने के लिए, लिंक किए गए पृष्ठ पर विवरण बहुत स्पष्ट है। डंप लेने का मतलब है कि आपके पास डंप है मामले के लिए कुछ काम नहीं करता है। इसका मतलब यह भी है कि आप इसे खोना नहीं है। इसके अलावा, उस पृष्ठ पर एक लिंक है, जो वास्तव में एक नया संस्करण स्थापित करने के लिए इंगित करता है - उदाहरण के लिए, उबंटू पर, एक postgresql-client-9.4पैकेज है जिसमें शामिल है psql
dezso

@dezso तो अगर मैं psql 8.4 की स्थापना रद्द करता हूं और 9.4 के लिए जाता हूं, तो मैं अपने पुराने डेटाबेस खो दूंगा?
एलेक्स जोलीग

3
यदि आप उनमें से एक डंप लेते हैं, तो नहीं। आपके पास वैसे भी नियमित बैकअप होना चाहिए जिसे आप पुनर्प्राप्ति के लिए परीक्षण करते हैं, इसलिए यह कोई समस्या नहीं होनी चाहिए। इसके अलावा, यदि आप उपयोग करना चुनते हैं pg_upgrade, तो यह आपके DBs को रखेगा - लेकिन बैकअप लेना इस मामले में बहुत जरूरी है।
dezso

" How can I backup my old databases if- नहीं तो कोई बात नहीं है । आपके डेटाबेस अपग्रेड के बाद लगभग पूरी तरह से ठीक हो जाएंगे लेकिन अप्रत्याशित समस्याओं के मामले में वैसे भी ऑपरेशन करते समय आपके पास हमेशा नए (अधिमानतः परीक्षण किए गए) बैकअप होने चाहिए (सबसे खराब मानें: एक पावर कट या अन्य हार्डवेयर फॉल्ट पार्ट रास्ता छोड़ सकते हैं आप इस स्थिति में हैं कि या तो पीछे या आगे से रोल करना मुश्किल है)। आपकी नियमित बैकअप योजना के आधार पर आपको अतिरिक्त बैकअप लेने की आवश्यकता नहीं हो सकती है।
डेविड स्पिललेट

जवाबों:


25

इसी से मैंने अपनी समस्या का समाधान किया।

अपग्रेड Postgresql 8.4 से 9.4 Centos में

 1. Yum Install PG9.4
 2. wget http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1.noarch.rpm
 3. yum install pgdg-redhat94-9.4-1.noarch.rpm
 4. yum install postgresql94-server
 5. service postgresql-9.4 initdb
 6. chkconfig postgresql-9.4 on

बैकअप डेटा

 7. su - postgres

 8. pg_dumpall > dump.sql

डेटा पुनः स्थापित करें

 9. service postgresql stop

 10. service postgresql-9.4 start

 11. su - postgres

 12. psql < dump.sql

नेटवर्क एक्सेस को कॉन्फ़िगर करें

vi /var/lib/pgsql/9.4/data/postgresql.conf

 1. listen_addresses = '*'
 2. port = 5432

/var/lib/pgsql/9.4/data/pg_hba.conf

# "local" is for Unix domain socket connections only
local   all         all                               ident
# IPv4 local connections:
host    all         all         127.0.0.1/32          ident
host    all         all         130.51.79.0/24        md5
host    all         all         10.210.29.0/24        md5
# IPv6 local connections:
host    all         all         ::1/128               ident

PG8.4 निकालें

 1. yum remove postgresql
 2. ln -s /usr/pgsql-9.4/bin/psql /usr/local/bin/psql

3
मुझे यकीन नहीं है कि आपने मेरे संपादन को "नुकसान की पठनीयता" के रूप में अस्वीकार कर दिया है। यह वास्तव में कमांड्स को कॉपी करना आसान बनाता है,
nhahtdh

1
मैंने अभी इस विधि का उपयोग करते हुए 9.2 से 9.6 तक का उन्नयन किया और यह काम कर गया। धन्यवाद !
EisenHeim

मुझे लगता है कि उदाहरण के लिए डेटा के टेराबाइट्स के साथ डेटाबेस को स्थानांतरित करने के लिए pgdump का उपयोग करना असंभव है। क्या ऐसा करने का कोई और तरीका है?
डेफ्रिटास

पहले आदेश के लिए, "यम इंस्टॉल PG9.4", क्या वह सब कुछ के लिए सही पूंजीकरण है?
डेव

1
@deFreitas मैं थोड़ा लेट हो गया हूं लेकिन pg_upgradeअगर आप> = 8.4 से अपग्रेड कर रहे हैं और यदि आप उसी सर्वर का उपयोग करते हैं। pg_upgradeइस मामले में उपयोगी है और वास्तव में तेज़ है: उबंटू 18 पर मुझे 1GB डेटाबेस को पुनर्स्थापित करने की pg_upgradeतुलना में कम समय लगा pg_dump। चुनाव यह है कि आपको एक ही मशीन में 2 पोस्टग्रेज संस्करण स्थापित करने और चलाने होंगे (विभिन्न बंदरगाहों को सुनना, निश्चित रूप से)।
इएमेज़ सिप

3

service postgresql-9.4initdb ने मेरे लिए काम नहीं किया, मुझे इसका उपयोग करना पड़ा sudo /usr/pgsql-9.4/bin/postgresql94-setup initdb( यहां पाया गया )।

महान निर्देशों के लिए धन्यवाद, मैं 9.2 से 9.4 तक बिना किसी मुद्दे के अपडेट करने में सक्षम था, भले ही मुझे अपनी pg_hba.confफाइल को फिर से कॉन्फ़िगर करना पड़े , यह तुच्छ था।


1

एकल postgresql94 psql बाइनरी को / usr / (स्थानीय /) बिन से जोड़ने से बेहतर वैकल्पिक प्रणाली का उपयोग करना है:

cd /etc/alternatives/
ls pgsql-* -1 | xargs -L 1 alternatives --auto

जो CentOS के लिए डिफ़ॉल्ट निर्देशिकाओं के लिए bingres, mans, conf, ... के पोस्टग्रेजेक्ला94 के लिंक बनाता है।

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