Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

mysql का उपयोग करके वास्तविक समय में गतिशील डेटा को द्वि-दिशात्मक रूप से सिंक्रनाइज़ करने का सबसे अच्छा तरीका कौन सा है

आपके डेटाबेस को दो मास्टर्स पर दोहराने से बहुत अधिक प्रदर्शन प्राप्त नहीं होता है। हालांकि, यदि आप अपने आवेदन को सही कोड करते हैं, तो थोड़ी बहुत विफलता हो सकती है।

मास्टर-मास्टर सेटअप अनिवार्य रूप से स्लेव-मास्टर सेटअप जैसा ही है, लेकिन इसमें स्लेव्स दोनों शुरू हो गए हैं और प्रत्येक बॉक्स पर आपकी कॉन्फिग फाइलों में एक महत्वपूर्ण बदलाव है।

मास्टर MySQL 1:

auto_increment_increment = 2
auto_increment_offset = 1 

मास्टर MySQL 2:

auto_increment_increment = 2
auto_increment_offset = 2

ये दो पैरामीटर यह सुनिश्चित करते हैं कि जब दो सर्वर किसी कारण से प्राथमिक कुंजी पर लड़ रहे हों, तो वे नकल नहीं करते हैं और प्रतिकृति को मार देते हैं। 1 से बढ़ने के बजाय, कोई भी ऑटो-इंक्रीमेंट फ़ील्ड डिफ़ॉल्ट रूप से 2 से वृद्धि होगी। एक बॉक्स पर यह 1 से ऑफ़सेट शुरू होगा और अनुक्रम 1 3 5 7 9 11 13 आदि चलाएगा। दूसरे बॉक्स पर यह 2 पर ऑफ़सेट शुरू हो जाएगा। और 2 4 6 8 10 12 आदि के साथ चलते हैं। वर्तमान परीक्षण से, ऑटो-इन्क्रीमेंट अगला मुफ्त नंबर लेता प्रतीत होता है, न कि वह जो पहले छोड़ा गया हो।
उदा। यदि सर्वर 1 पहले 3 रिकॉर्ड (1 3 और 5) सम्मिलित करता है जब सर्वर 2 चौथा सम्मिलित करता है, तो उसे 6 की कुंजी दी जाएगी (2 नहीं, जो अप्रयुक्त छोड़ दी जाती है)।

एक बार जब आप इसे सेट कर लेते हैं, तो दोनों को स्लेव के रूप में प्रारंभ करें।
फिर यह जांचने के लिए कि दोनों ठीक काम कर रहे हैं, दोनों मशीनों से कनेक्ट करें और SHOW SLAVE STATUS कमांड निष्पादित करें। और आपको ध्यान देना चाहिए कि दोनों Slave_IO_Running और Slave_SQL_Running दोनों को प्रत्येक बॉक्स पर "हाँ" कहना चाहिए।

फिर, निश्चित रूप से, एक तालिका में कुछ रिकॉर्ड बनाएं और सुनिश्चित करें कि एक बॉक्स केवल विषम संख्या वाली प्राथमिक कुंजियों को सम्मिलित कर रहा है और दूसरा केवल सम संख्या वाली कुंजियों को बढ़ा रहा है।

फिर यह सुनिश्चित करने के लिए सभी परीक्षण करें कि आप प्रत्येक बॉक्स पर सभी मानक अनुप्रयोगों को दूसरे की नकल करके कर सकते हैं।

एक बार यह चल रहा है तो यह अपेक्षाकृत सरल है।
लेकिन जैसा कि उल्लेख किया गया है, MySQL इसे हतोत्साहित करता है और सलाह देता है कि आप सुनिश्चित करें कि आप अपना एप्लिकेशन कोड लिखते समय इस कार्यक्षमता से सावधान रहें।

संपादित करें: मुझे लगता है कि यदि आप सुनिश्चित करते हैं कि ऑफसेट सही हैं और इसी तरह से अधिक मास्टर्स जोड़ना सैद्धांतिक रूप से संभव है। हालांकि आप अधिक वास्तविक रूप से कुछ अतिरिक्त दास जोड़ सकते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. रेल सर्वर प्रारंभ करने में असमर्थ

  2. PHP-MYSQL:यूनिक्स टाइमस्टैम्प को डेटटाइम में कनवर्ट करना और इसके विपरीत

  3. SQL में निर्दिष्ट रिकॉर्ड के बाद अगला रिकॉर्ड कैसे खोजें?

  4. दो क्षेत्रों पर समूह का उपयोग करना और SQL में गिनना

  5. स्थानीय कंप्यूटर पर एसएसएच के माध्यम से mysqldump