2012-01-12 9 views
6

मेरे पास एक गेरिट सर्वर (नाम ए) है, और मैं एक नए सर्वर (नाम बी) में दर्पण सेट करना चाहता हूं। मैं बजाय एक से प्रसंस्करण शक्ति का उपयोग करने का बी से खींचने के लिए चाहते हैं, क्योंकि एक मुख्य Gerrit सर्वर के रूप में कार्य करता है और मैं जब मैं इसे बीगेरिट और उसके सभी गिट रेपो के लिए दर्पण सेट करने का सबसे अच्छा तरीका

से SSH का उपयोग कर

मैं मिरर कर सकते हैं उस पर और अधिक काम का बोझ डाल करने के लिए नहीं करना चाहते हैं मैं एच 2 डेटाबेस का उपयोग कर रहा हूं और मैं पूरे गेरिट + अपने सभी गिट रेपो को मिरर करना चाहता हूं, सिर्फ गिट रिपोज़ नहीं, क्योंकि मैं भी गेरिट डेटाबेस से अनुमति/इतिहास रखना चाहता हूं।

मैं यह करने के 2 संभव तरीके को कम करने में कामयाब था:

  1. का उपयोग करते हुए 'Gerrit दोहराने' http://gerrit.googlecode.com/svn/documentation/2.1.6/cmd-replicate.html सुनिश्चित नहीं हैं कि क्या यह द्वारा "[< पद्धति --url>]" का मतलब है। मुझे यह आदेश कहां रखा जाना चाहिए? क्या यह सर्वर ए या बी पर है?

  2. प्रयोग करें 'rsync' जो ठीक है, लेकिन फिर मैं review_site/etc/gerrit.config सिंक नहीं कर सकते हैं क्योंकि यह सर्वर एक के आईपी होता है और के लिए है कि सर्वर बी पर नहीं करना चाहते

+0

रुपये पर एक अनुवर्ती परीक्षण। मैंने दोनों गिट रेपो और गेरिट की समीक्षा_Site निर्देशिकाओं का उपयोग किया। तब मैंने इस आदेश को सर्वर बी 'जावा -जर गेरिट-2.1.6.war init -d/home/gerrit2/review_site /' पर फिर से शुरू करने के लिए चलाया। फिर इसे 'review_site/bin/gerrit.sh स्टार्ट' से शुरू करें। लेकिन सभी समूह गायब प्रतीत होते हैं। – xbeta

उत्तर

8

विभिन्न मुद्दों यहाँ पर कुछ टिप्पणियां:

  1. खासकर यदि आप एच 2 प्रयोग कर रहे हैं, डेटाबेस और खजाने की एक गर्म बैकअप प्रदर्शन करने के लिए कोई अच्छा तरीका नहीं है। गेरिट को बंद करने और फ़ाइल ट्रांसफर टूल जैसे rsync का उपयोग करने का एकमात्र विकल्प। यदि आप पोस्टग्रेस की तरह अधिक मजबूत डेटाबेस का उपयोग करते हैं, तो अन्य बैकअप विकल्प भी हैं। हालांकि, आपके पास अभी भी संभावित दौड़ की स्थिति है - यदि आप परिवर्तन से पहले रिपॉजिटरीज का बैक अप लेते हैं और डेटाबेस के बाद बैक अप लेते हैं, तो आपको समस्या हो सकती है। यही कारण है कि हम लंबे समय तक डेटाबेस से छुटकारा पाने और भंडार में सब कुछ स्टोर करने के लिए काम कर रहे हैं।

  2. पुश बनाम पुल सर्वर पर CPU लोड (जहां तक ​​मुझे पता है) तक बहुत अलग नहीं है। गेरिट में निर्मित प्रतिकृति सुविधाओं का उपयोग करें, वे इस तरह की चीज़ के लिए डिज़ाइन किए गए हैं।

  3. यदि सर्वर बी नीचे जाने के मामले में सर्वर बी बैकअप के रूप में है, तो मैं सिर्फ एक स्क्रिप्ट लिखूंगा जो रात के मध्य में सर्वर ए पर गेरिट को रोकता है, सर्वर बी पर rsyncs, और गेरिट वापस शुरू करता है अप। यह अभी आप सबसे अच्छा कर सकते हैं, खासकर एच 2 के साथ।

  4. यदि सर्वर बी आपके मास्टर का दास बनने के लिए है (इसलिए कुछ उपयोगकर्ता सर्वर ए को मारने वाले सभी के बजाय इसे हिट कर सकते हैं), गेरिट प्रतिकृति और दास मोड - http://gerrit.googlecode.com/svn/documentation/2.1.6/config-gerrit.html#container का उपयोग करें। ध्यान दें कि यह आपके डेटाबेस या समीक्षा में परिवर्तन बैकअप नहीं करता है।

  5. गेरिट 2.1.6 वास्तव में पुराना है। कम से कम 2.1.8, 2.2.2 का उपयोग जल्द ही जारी किया जाएगा और आपकी सबसे अच्छी शर्त

  6. 'gerrit replicate' कमांड का अर्थ केवल सर्वर के आखिरी बार नीचे होने पर प्रतिकृति को बंद करने के लिए है । 2.1.6 के साथ प्रतिकृति स्थापित करने के लिए निर्देश http://gerrit.googlecode.com/svn/documentation/2.1.6/config-replication.html

+0

धन्यवाद ब्रैड। स्लेव मोड स्थापित करने के लिए कोई गाइड है? सबसे पहले हम सर्वर बी पर सर्वर ए की बैकअप प्रतिलिपि बनाना चाहते हैं, लेकिन यदि दास सर्वर बी पर सर्वर ए की पूर्ण 2 प्रतिलिपि बनाने के उद्देश्य से कार्य करता है, तो हम इसके बारे में खुश होंगे। फिर हम इसे दर्पण के रूप में और सर्वर का बैकअप भी एक सामग्री के रूप में उपयोग कर सकते हैं। – xbeta

+0

नहीं, स्लेव मोड पर बहुत अधिक दस्तावेज़ीकरण नहीं है जिसे मैं जानता हूं। जैसा कि मैंने उपर्युक्त कहा है, स्लेव मोड आपके डेटाबेस या समीक्षा में वर्तमान में किसी भी बदलाव का बैक अप नहीं लेता है, इसलिए यदि आप सर्वर ए के बैकअप की तलाश में हैं तो यह एक अच्छा समाधान नहीं है। स्लेव मोड भी H2 के साथ काम नहीं करेगा । यदि आप बैकअप समाधान की तलाश में हैं, तो उपर्युक्त 3 नोट आपकी सर्वश्रेष्ठ शर्त है। – Brad

+0

हाय ब्रैड, मैंने नोट 3 की कोशिश की, और rsync ठीक काम कर रहा है सिवाय इसके कि मैं बहाल करने के बाद सर्वर बी पर सभी समूह खो देता हूं। मैंने इसे फिर से शुरू करने के लिए "जावा -जर gerrit.war init -d/srv/server/b /" का उपयोग किया। और अभी भी जिस तरह से मैं चाहता था काम नहीं करेगा। धन्यवाद। – xbeta

संबंधित मुद्दे

 संबंधित मुद्दे