एक ही Ubuntu सर्वर पर PostgreSQL के कई संस्करण चला रहा है


12

मेरे पास PostgreSQL 8.4 और 9.0 एक ही सर्वर (Ubuntu Lucid) पर चल रहा है।

मैंने उन दोनों को एप्ट-गेट (डिफ़ॉल्ट पैकेज स्रोतों के साथ 8.4, और https://launchpad.net/~pitti/+archive/postgresql ) से ppa जोड़ने के बाद स्थापित किया ।

जब मैं कमांड लाइन से "createb" जैसी कमांड चलाता हूं या "psql" शेल शुरू करता हूं, तो PostgreSQL संस्करण 8.4 का डिफ़ॉल्ट रूप से मेरे सिस्टम पर उपयोग किया जाता है।

तो, मैं 8.4 के बजाय PostgreSQL 9.0 का उपयोग करने के लिए इन आदेशों को कैसे मजबूर करूं?


संबंधित: serverfault.com/q/582499/95758
krlmlr

जवाबों:


11

मान लीजिए उबंटू डेबियन के रूप में एक ही काम करता है, तो आपके दो पोस्टग्रेक्यूएल इंस्टेंस विभिन्न बंदरगाहों पर चल रहे होंगे।

आप आसानी से देख सकते हैं कि कौन सी पोर्ट किस वर्जन पर है

$ grep -H '^port' /etc/postgresql/*/main/postgresql.conf
/etc/postgresql/8.4/main/postgresql.conf:port = 5432
/etc/postgresql/8.3/main/postgresql.conf:port = 5433

अधिकांश PostGreSQL कमांड "-p ####" या "--port = ####" विकल्प लेते हैं, ताकि आप उस संस्करण का चयन कर सकें जो आप चाहते हैं।


7

--clusterउदाहरण के लिए विकल्प का उपयोग करें (यह मानते हुए कि दोनों समूहों को डिफ़ॉल्ट मुख्य नाम दिया गया है):

psql --cluster 8.4/main
psql --cluster 9.0/main

सामान्य स्कीम्स हैं:

--cluster version/name      # for local connections
--cluster version/host:port # for TCP/IP connections

सभी स्थापित समूहों (नाम, बंदरगाह, स्थिति, डेटा निर्देशिका आदि) को सूचीबद्ध करने के लिए pg_lsclustersकमांड का उपयोग करें ।

man pg_wrapperअधिक जानकारी के लिए जाँच करें ।


यह शानदार है कि यह कैसे psql डॉक्टर में नहीं है?
मारहॉफ

1
@ मोरहॉफ: pg_wrapperडेबियन का विस्तार है। अनिवार्य रूप से, यह कई समूहों को संभालने की सुविधा के लिए कई नए विकल्पों के साथ लिपटा psql(यानी स्क्रिप्ट psqlका सांकेतिक लिंक है pg_wrapper)।
ग्रेज़गोरज़ स्ज़ेटकोव्स्की

0

आप यह dpkg -L <packagename>देखने के लिए उपयोग कर सकते हैं कि किसी विशेष पैकेज के पास कौन सी फाइलें हैं। इसे Postgresql 9 पैकेज के साथ चलाएं और देखें कि उस संस्करण के लिए बनाया कमांड कहाँ संग्रहीत किया गया था।

अधिकांश पोस्टग्रैस्कल कमांड बंदरगाह या पथ द्वारा डेटाबेस के उचित चयन के साथ क्रॉस-संस्करण का काम करेंगे, लेकिन यह निश्चित रूप से स्क्रिप्ट और निर्माण कमांड शुरू करने के लिए लागू नहीं होता है।

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