दो डेटाबेस के बीच माईसकल डेटाबेस सिंक


81

हम एक MySql बैकएंड के साथ विभिन्न दुकानों पर Java PoS (प्वाइंट ऑफ सेल) एप्लिकेशन चला रहे हैं। मैं दुकानों में डेटाबेस को होस्ट सर्वर पर डेटाबेस के साथ सिंक्रनाइज़ करना चाहता हूं।

जब किसी दुकान में कुछ बदलाव होते हैं, तो उन्हें होस्ट सर्वर पर अपडेट होना चाहिए। मुझे यह कैसे हासिल होगा?



क्या यह करना आसान है ?? आप कब तक यह सोचेंगे ??
पेडी

2
@peedee MySQL प्रतिकृति सेट करना बहुत आसान है। कुछ कमांड और एक प्रारंभिक सिंक। पहली बार में मुझे लगभग 30 मिनट लग गए।
ceejayoz

2
अच्छे सवाल पर हाजिर एक ही उद्देश्य के लिए एक ही बात सोच रहा था]
codefreaK

आप या तो MySQL प्रतिकृति सुविधा का उपयोग कर सकते हैं या कुछ उपकरण उपलब्ध हैं जो डेटाबेस सिंक्रोनाइज़ेशन करते हैं, वे यहां सूचीबद्ध हैं stackoverflow.com/questions/52583/…
पीटर वेंडरबर्ग

जवाबों:


60

प्रतिकृति बनाना बहुत कठिन नहीं है।

यहाँ कुछ अच्छे ट्यूटोरियल हैं:

http://www.ghacks.net/2009/04/09/09/set-up-mysql-database-replication/

http://dev.mysql.com/doc/refman/5.5/en/replication-howto.html

http://www.lassosoft.com/Beginners-Guide-to-MySQL-Replication

यहां कुछ सरल नियम आपको ध्यान में रखने होंगे (इसमें कुछ और भी है लेकिन यह मुख्य अवधारणा है):

  1. डेटा लिखने के लिए सेटअप 1 सर्वर (मास्टर)।
  2. डेटा पढ़ने के लिए सेटअप 1 या अधिक सर्वर (दास)।

इस तरह, आप त्रुटियों से बचेंगे।

उदाहरण के लिए: यदि आपकी स्क्रिप्ट मास्टर और दास दोनों पर समान तालिकाओं में सम्मिलित होती है, तो आपके पास प्राथमिक कुंजी विरोध डुप्लिकेट होगा।

आप "गुलाम" को "बैकअप" सर्वर के रूप में देख सकते हैं जो मास्टर के रूप में एक ही जानकारी रखता है लेकिन सीधे डेटा नहीं जोड़ सकता है, केवल मास्टर सर्वर निर्देशों का पालन करें।

नोट: बेशक आप मास्टर से पढ़ सकते हैं और आप गुलाम को लिख सकते हैं, लेकिन सुनिश्चित करें कि आप एक ही टेबल (मास्टर को गुलाम और गुलाम को मास्टर) को न लिखें।

मैं यह सुनिश्चित करने के लिए आपके सर्वर की निगरानी करने की सलाह दूंगा कि सब कुछ ठीक है।

यदि आपको अतिरिक्त सहायता की आवश्यकता हो तो मुझे बताएं


हां, शॉप = मास्टर, सर्वर = दास
बुक ऑफ ज़ीउस

मैंने अभी एक मास्टर को कॉन्फ़िगर किया है और मैं एक गुलाम डेटाबेस से जुड़ने जा रहा हूं .. जब मैं ऐसा करता हूं, तो मास्टर में कोई भी परिवर्तन दास में प्रतिबिंबित होगा और दास में परिवर्तन मास्टर को भी प्रतिबिंबित करेगा ??
पेडी

हाँ ठीक है अगर सेटअप अच्छा है! आप मास्टर में रिकॉर्ड डाल सकते हैं और परीक्षण करने के लिए दास का चयन कर सकते हैं। यदि वह पास है, तो आप सेट हैं!
ज़ीउस

हे मेट ... मुझे गुलाम पर त्रुटि 1045 मिली है। इसका क्या कारण होगा? आपको कोई आइडिया है?
पेदी

ERROR 1045: उपयोगकर्ता के लिए पहुँच अस्वीकृत: 'root @ localhost' (पासवर्ड का उपयोग करना: NO) और dev.mysql.com/doc/refman/5.1/en/access-denied.html
बुक ऑफ़ ज़ीउस

23

तीन अलग-अलग दृष्टिकोण:

  1. क्लासिक क्लाइंट / सर्वर अप्रोच: दुकानों में कोई डेटाबेस न रखें; बस एप्लिकेशन को आपके सर्वर का उपयोग करना है। बेशक, अगर आप वीपीएन सेट करते हैं तो बेहतर है, लेकिन एसएसएल या एसएचएस में कनेक्शन लपेटना उचित है। प्रो: यह जिस तरह से डेटाबेस मूल रूप से सोचा गया था। Con: यदि आपके पास उच्च विलंबता है, तो जटिल संचालन धीमा हो सकता है, आपको दौर यात्राओं की संख्या को कम करने के लिए संग्रहीत प्रक्रियाओं का उपयोग करना पड़ सकता है।

  2. प्रतिकृति मास्टर / मास्टर: जैसा कि ज़ीउस के @Book ने सुझाव दिया है। विपक्ष: सेटअप के लिए कुछ अधिक जटिल (विशेषकर यदि आपके पास कई दुकानें हैं), किसी भी दुकान की मशीन में तोड़ना संभवतः पूरी प्रणाली से समझौता कर सकता है। पेशेवरों: पढ़े गए संचालन के रूप में बेहतर जवाबदेही पूरी तरह से स्थानीय है और लिखने के कार्यों को अतुल्यकालिक रूप से प्रचारित किया जाता है।

  3. ऑफ़लाइन ऑपरेशन + सिंक चरण: स्थानीय रूप से और समय-समय पर सभी काम करते हैं (एक घंटे, दैनिक, साप्ताहिक, जो भी हो) पिछले सिंक ऑपरेशन से सभी नए / संशोधित रिकॉर्ड के साथ एक सारांश लिखें और सर्वर को भेजें। पेशेवरों: नेटवर्क के बिना काम कर सकते हैं, तेज, जांचना आसान (यदि सारांश पठनीय है)। विपक्ष: आपके पास वास्तविक समय की जानकारी नहीं है।


10
मुझे 3 प्रकार के डीबी सिंक (ऑफ़लाइन संचालन + सिंक) को सेटअप करने की आवश्यकता है, इस पर अधिक पढ़ना पसंद करेंगे। यह एक को बाहर करने में सक्षम नहीं है। क्या उनकी पुस्तक / लेख मैं संदर्भित कर सकता हूँ?
अभिषेक ab२

10

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

व्यापक और मजबूत जावा एपीआई आपकी आवश्यकताओं के अनुरूप है।


अगर मेरे पास अलग-अलग db के साथ आंतरिक सर्वर है जिसमें बिना इंटरनेट वाले कुछ क्षेत्र हैं, और मेरे पास डेटाबेस वेब पर ऑनलाइन खरीदार हैं जो होस्ट किए गए हैं और मैं आंतरिक डेटाबेस खरीदता हूं, जिसे आप लाइव में भेज सकते हैं, तो कृपया सलाह दे सकते हैं कि दो के बीच ऑटो वेतन वृद्धि का क्या होगा अगर वे दोनों एक ही आईडी जमा कर रहे थे तो यह गलत होगा! इसलिए (मुझे आईडी पर ऑटो इन्टर्मेंट और टेबल के बीच संबंधों को प्रभावित किए बिना आंतरिक डीबी पर किए गए ऑपरेशन को लाइव में सिंक करने की आवश्यकता है)
18'18

3

पर एक नज़र डालें स्कीमा और डेटा तुलना उपकरण MySQL के लिए dbForge स्टूडियो में। ये उपकरण आपको तुलना करने, अंतर देखने, एक सिंक्रनाइज़ेशन स्क्रिप्ट उत्पन्न करने और दो डेटाबेस सिंक्रनाइज़ करने में मदद करेंगे।

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