2016-06-16 6 views
8

पर कई Postgres उदाहरणों बनाएं प्रतिकृति स्ट्रीमिंग का परीक्षण करने के लिए, मैं एक ही मशीन पर एक दूसरे Postgres उदाहरण बनाना चाहेंगे। विचार यह है कि यदि यह परीक्षण सर्वर पर किया जा सकता है, तो इसे दो उत्पादन सर्वरों पर सेट अप करने के लिए छोटा होना चाहिए।एक ही मशीन

उदाहरणों में विभिन्न कॉन्फ़िगरेशन फ़ाइलों और विभिन्न डेटा निर्देशिकाओं का उपयोग करना चाहिए। मैंने यहां दिए गए निर्देशों का पालन करने की कोशिश की http://ubuntuforums.org/showthread.php?t=1431697 लेकिन मुझे पता नहीं चला है कि पोस्टग्रेज़ को एक अलग कॉन्फ़िगरेशन फ़ाइल का उपयोग करने के लिए कैसे प्राप्त किया जाए। अगर मैं init स्क्रिप्ट कॉपी करता हूं, तो स्क्रिप्ट एक ही पोस्टग्रेस इंस्टेंस के लिए केवल उपनाम हैं।

मैं Postgres 9.3 और Postgres सहायता पृष्ठ का उपयोग कर रहा postgres कमांड लाइन पर विन्यास फाइल निर्दिष्ट करने के लिए कहते हैं। मुझे सच में यकीन नहीं है कि इसका क्या अर्थ है। क्या मुझे इस काम के लिए कुछ क्लाइंट स्थापित करना चाहिए? धन्यवाद।

+1

बस 'चलाने एक अलग डेटा निर्देशिका में यह इशारा करते हुए initdb' (और एक अलग पोर्ट निर्दिष्ट) –

+0

क्या 'initdb' एक कस्टम कॉन्फ़िगरेशन फ़ाइल के साथ डेटाबेस क्लस्टर बनाने में सक्षम है? ऐसा लगता है कि मैं केवल निर्दिष्ट कर सकता हूं कि डेटा कहां संग्रहीत किया जाएगा। – npCompleteNoob

+0

'initdb' _creates_ कॉन्फ़िगरेशन फ़ाइल (डेटा निर्देशिका में) –

उत्तर

9

मुझे लगता है कि आप postgresql उपयोगिताओं का उपयोग करने पर अपना रास्ता निकाल सकते हैं।

समूहों

$ initdb -D /path/to/datadb1 
$ initdb -D /path/to/datadb2 

भागो उदाहरणों बनाएं

$ pg_ctl -D /path/to/datadb1 -o "-p 5433" -l /path/to/logdb1 start 
$ pg_ctl -D /path/to/datadb2 -o "-p 5434" -l /path/to/logdb2 start 

टेस्ट स्ट्रीमिंग

अब आप बंदरगाहों 5433 और 5434. विन्यास फाइलों पर चल रहे दो उदाहरणों है उनके लिए हैं initdb द्वारा निर्दिष्ट डेटा डीआईआरएस। प्रतिकृति स्ट्रीमिंग के लिए उन्हें ट्विक करें।
आपका डिफ़ॉल्ट स्थापना डेबियन आधारित distros पर बंदरगाह 5432.

+0

यदि आप एक अलग कॉन्फ़िगरेशन फ़ाइल स्थान का उपयोग करना चाहते हैं तो आप [डॉक्यूमेंटेशन] के अनुसार -o स्ट्रिंग में निर्दिष्ट कर सकते हैं (https://www.postgresql.org/ डॉक्स/वर्तमान/स्थिर/क्रम-config-फ़ाइल-locations.html)। कुछ '-o "config_file =/path/to/my/postgresql.conf" '(परीक्षण नहीं किया गया है!) – cachique

2

में अछूता रहता है आप initdb के बजाय pg_createcluster इस्तेमाल कर सकते हैं:

$ pg_createcluster -u [user] -g [group] -d /path/to/data -l /path/to/log -p 5433 

इसके अलावा pg_ctlclusterpg_ctl लिए एक विकल्प है।

3

कदम PostgreSQL 9,5

  1. पर नए सर्वर उदाहरण बनाने के लिए कमांड प्रॉम्प्ट रन पर:

    initdb -D Instance_Directory_path -U username -W 
    

    (पासवर्ड के लिए संकेत)

  2. एक बार नया उदाहरण निर्देशिका बनाई गई है। प्रशासक

    pg_ctl register -N service_name -D Instance_Directory_path -o "-p port_no" 
    
  3. के बाद सेवा के रूप में चलाएँ कमांड प्रॉम्प्ट पंजीकृत है, शुरू सर्वर

    pg_ctl start -D Instance_Directory_path -o "-p port_no" 
    
संबंधित मुद्दे