2013-08-11 6 views
5

मेरे पास दो मशीनों पर दो mysql डेटाबेस हैं। मान लें कि पहले उत्पादन डीबी है और दूसरा एक समान क्लोन है। मेरा PHP ऐप डिफ़ॉल्ट रूप से उत्पादन डीबी का उपयोग करता है। लेकिन मुझे एक ही समय में दोनों डीबीएस समान होना चाहिए। इसका मतलब है कि मुझे उत्पादन डीबी अनुपलब्ध होने पर मामलों के लिए समाधान की आवश्यकता है (उदाहरण के लिए कनेक्शन त्रुटि) इसलिए मैं मैन्युअल रूप से दूसरा सेट करता हूं और मेरा ऐप सामान्य रूप से चलता है। मैं इसे "विफलता प्रतिरोधी" बनाना चाहता हूं।दो मशीनों पर समान 2 mysql dbs रखें

मुझे यह कैसे करना चाहिए? मैं हर पल का डंप बनाने के बारे में सोच है, लेकिन यह एक अच्छा समाधान जब db कई डेटा के साथ जटिल है नहीं है ...

+2

संभावित डुप्लिकेट [माइस्क्ल का उपयोग करके वास्तविक समय में गतिशील डेटा को द्वि-दिशात्मक रूप से सिंक्रनाइज़ करने का सबसे अच्छा तरीका कौन सा है) (http://stackoverflow.com/questions/325791/which-is-the-best-way-to -बी-दिशात्मक रूप से सिंक्रनाइज़-गतिशील-डेटा-इन-रीयल-टाइम) –

+0

देखें http://stackoverflow.com/questions/7707859/mysql-database-sync-between-two- डेटाबेस और http://stackoverflow.com/प्रश्न/4804972/रणनीति-ऑन-सिंक्रनाइज़िंग-डेटाबेस-से-एकाधिक-स्थानों-से-एक-केंद्रीय-डेटाबेस –

+0

यदि आपने सर्वर फ़ॉल्ट पर इसके बजाय यह प्रश्न पूछा है, तो आपको कुछ बेहतर उत्तर मिल सकते हैं। – BLaZuRE

उत्तर

1

ये जवाब मान लेते हैं कि मानक प्रतिकृति जो भी कारण के लिए, आप के लिए एक विकल्प नहीं है:

निम्नलिखित विकल्प मैन्युअल डेटा-सिंक के लिए मौजूदा विधियां हैं जो अच्छी तरह से ज्ञात हैं, और जब 0xइत्यादि जैसी स्क्रिप्टिंग भाषा में लिपटे होते हैं तो क्रॉनबॉज के लिए कुछ तर्कों के साथ आवश्यक विशिष्ट तालिकाओं को निर्दिष्ट करने के लिए आवश्यक होने पर संयुक्त होने पर अच्छा होगा, गारंटी है कि यह सुरक्षित है उत्पादन बॉक्स पर लोड, आदि के प्रकाश में उन्हें चलाने के लिए।

विकल्प 1: pt-मेज-सिंक

Percona MySQL टूलकिट से pt-table-sync उपकरण गुरु-गुरु, एक मौजूदा प्रतिकृति योजना में मांग पर गुरु-दास सिंक के लिए अनुमति देता है। या आप इसे दो सर्वरों को सिंक करने के लिए उपयोग कर सकते हैं जिनके पास कोई संबंध नहीं है।

Docs here from Percona

उदाहरण के बाद, एक ही रास्ता sync'ing के लिए।

pt-मेज-सिंक --execute एच = sourcehost1, यू = msandbox, पी = msandbox एच = desthost d = yourdb टी = yourtables

इसके अतिरिक्त निम्नलिखित विशेषताएं मौजूद हैं:

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

मैं समझता हूँ के रूप में, एक मास्टर-दास संबंध जरूरी मौजूद नहीं की जरूरत है - लेकिन सिंक और अधिक कुशल है के बाद से और अधिक कुशल चेकसम एल्गोरिदम डेटा की तुलना के लिए इस्तेमाल किया जा सकता है अगर यह मौजूद है।

विकल्प 2: XtraDb वैकल्पिक रूप के साथ गरम/स्ट्रीमिंग बैकअप, आप इसे मेजबान streaming मोड सिंक में एक बैकअप फ़ाइल रखने के लिए में नि: शुल्क Percona XtraBackup की तरह कुछ इस्तेमाल कर सकते हैं, और आवश्यकता के अनुरूप अपने देव बॉक्स को बहाल।

XtraBackup Percona सर्वर, MySQL, MariaDB, और बूंदा बांदी के सभी संस्करणों के लिए MySQL हॉट बैकअप बनाता है। यह स्ट्रीमिंग, संपीड़ित, और वृद्धिशील MySQL बैकअप करता है।

विकल्प C: एलवीएम स्नैपशॉट्स एलवीएम स्नैपशॉट शायद एक उत्पादन बॉक्स के लिए सबसे अच्छा विकल्प है यदि आप संक्षिप्त ताला/आईओ मुद्दों की वजह से उन्हें आवृत्ति किसी भी प्रकार से लेने की जरूरत नहीं कर रहे हैं, लेकिन फिर भी यहाँ आप जाना: MySQL Backups Using LVM Snapshots

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

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