मैं अपने पोस्टग्रेजुएट डेटा को 8.4 से 9.1 पर माइग्रेट कैसे करूँ?


27

मैंने अपनी ubuntu विकास मशीन को 11.04 से 11.10 तक उन्नत किया है। इस प्रक्रिया में मेरे पोस्टग्रेज को भी 8.4 से 9.1 तक अपग्रेड किया गया।

लेकिन मुझे लगता है कि मैंने अपना सारा डेटा खो दिया है। यदि मैं देखता हूं, तो मैं देख सकता हूं कि 8.4 का मेरा डेटा फ़ोल्डर में है /var/lib/postgres/8.4/mainऔर मेरा नया डेटाबेस है /var/lib/postgres/9.1/main

मेरे डेटा को नए संस्करण में स्थानांतरित करने का सबसे अच्छा तरीका क्या है? क्या मैं सिर्फ फाइलों को कॉपी कर सकता हूं?

जवाबों:


27
su postgres
pg_dropcluster --stop 9.1 main    
pg_upgradecluster 8.4 main

पहले तो यह मेरे लिए दो कारणों से काम नहीं आया। सबसे पहले, postgresql-8.4 कुछ बिंदु पर एकतरफा हो गया था, इसलिए मुझे इसे पुनः स्थापित करना पड़ा:

sudo apt-get install postgresql-8.4

फिर मुझे 8.4 में जाना पड़ा postgresql.confऔर max_connections10. में बदलना पड़ा । तब इसने काम किया। आप पर फ़ाइल को ढूँढने में सक्षम होना चाहिए/etc/postgresql/8.4/main/postgresql.conf


एक कंप्यूटर पर शीर्ष तीन लाइनें पर्याप्त थीं। दूसरी तरफ मुझे इसे काम करने के लिए 8.4 को फिर से स्थापित करना था, जैसा कि आपने कहा। आपके सहयोग के लिए धन्यवाद।
नथ्नवाड़ा

यह ध्यान दिया जाना चाहिए कि "pg_upgradecluster" स्क्रिप्ट उस मामले को नहीं संभालती है जहाँ डेटाबेस उपयोगकर्ता को आपूर्ति की जानी चाहिए। (यदि ऐसा होता है, तो मुझे यकीन है कि यह कैसे प्रदान करना है यह पता नहीं लगा सकते।)
पॉइन्टी

यदि आप Error: specified cluster is not runningबदलने के बाद फिर से कोशिश कर रहे हैं max_connections, तो उपयोग करें pg_ctlcluster 8.4 main start
स्किप्पी ले ग्रैंड गौरौ

max_connectionsमेरे लिए काम करना कम नहीं हुआ। त्रुटि संदेश द्वारा प्रदान किए गए वैकल्पिक समाधान के रूप में, मैं shared_buffers20 एमबी (200 एमबी से) तक कम हो गया, जो मेरे लिए काम करता था।
सेरानो

4

11.10 में अपग्रेड करने के बाद, PostgreSQL 9.1 स्थापित किया गया था, लेकिन चल रहा संस्करण 8.4 था।

मैंने कोशिश की:

su postgres
pg_dropcluster --stop 9.1 main    
pg_upgradecluster 8.4 main

इसने त्रुटि की सूचना दी:

Stopping old cluster...
pg_ctl: servidor não desligou
Error: Could not stop old cluster

तो, एक और विंडो में:

$ sudo service postgresql-8.4 stop
 * Stopping PostgreSQL 8.4 database server                               [ OK ] 
jgr@cagliari:~$ sudo service postgresql-8.4 start
 * Starting PostgreSQL 8.4 database server                               [ OK ] 

और फिर फिर:

pg_upgradecluster 8.4 main

PgRout से संबंधित त्रुटियां बताई गईं। इसमें कुछ समय लगा (पूरी रात!), लेकिन बाद में डेटाबेस को 9.1 में बदल दिया गया। PostGIS को भी 1.5.3 में अपग्रेड किया गया था।


FYI करें, मैंने पाया कि /var/lib/postgresql/9.1 निर्देशिका में "du -hs" कर रहा है और फिर तुलना कर रहा है कि /var/lib/postgresql/8.4/ में समान कमांड के आउटपुट के साथ, मैंने पाया कि मैं कर सकता था गेज करें कि उस कमांड से आकार आउटपुट के आधार पर कितना कॉपी किया गया है।
जो जे

मुझे पता है कि यह सवाल नहीं है जिस पर चर्चा की जा रही है। लेकिन मैं उसी मुद्दे में भाग गया जैसा आपने वर्णित किया था। कारण pg_upgradecluster पुराने क्लस्टर को रोक नहीं सका क्योंकि टॉमकैट इंस्टेंस कनेक्शन का उपयोग कर रहा था और पोस्टग्रैज ने उन्हें बंद कर दिया था। आशा है कि यह किसी की मदद करता है।
बिपर

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