2016-11-11 8 views
12

में डालने वहाँ पीडीओ सेटिंग्स है कि चयन के दास डीबी सर्वर पर निष्पादित किया जाएगा और डालें & अद्यतन & हटाएँ, मास्टर DB सर्वर पर निष्पादित किया जाएगा या मैं PHP हैंडलर बनाने की जरूरत में स्थापित करने के लिए किसी भी मौका है ऐसा करने के लिए?पीडीओ का चयन करें और मास्टर

स्थिति:

हम मास्टर है - MySQL के लिए मास्टर प्रतिकृति। मास्टर/दास - - मास्टर/दास हम दो नए सर्वर जोड़ने की तो यह हो जाएगा जा रहे हैं।

मैं SELECT क्वेरी के लिए कुछ हैंडलिंग बनाना चाहता हूं। मैं दास बजाय मास्टर और सभी Upadte & सम्मिलित & पर चयन प्रश्नों पर अमल DELETE प्रश्नों मास्टर पर निष्पादित किया जाएगा चाहते हैं। क्या यह कुछ सेटिंग के साथ संभव है?

धन्यवाद!

+1

यदि आप डॉक्टर डीबीएएल का उपयोग करते हैं तो आप आसानी से यह कर सकते हैं http://www.doctrine-project.org/api/dbal/2.5/class-Doctrine.DBAL .Connections.MasterSlaveConnection.html, हालांकि यदि आपके पास कुछ रैपर वर्ग के साथ अपना स्वयं का डीबी इंटरैक्शन है तो आपको इसे संभालने के लिए अपना कोड लिखना होगा। –

+2

MySQL मूल चालक के साथ ऐसा करना संभव है: http://php.net/manual/en/mysqlnd-ms.rwsplit।php – Chris

+0

इस सवाल और इसके बहुत उपयोगी @Abhik + क्रिस – Karthi

उत्तर

5

नहीं, आप ऐसा करने के लिए पीडीओ या किसी भी PHP के डेटाबेस एक्सटेंशन को कॉन्फ़िगर नहीं कर सकते हैं। यह बस इसलिए है क्योंकि प्रत्येक पीडीओ (या MySQLi, आदि) उदाहरण एक सर्वर के लिए एक कनेक्शन का प्रतिनिधित्व करता है।

तो हाँ, आपको एक हैंडलर की आवश्यकता होगी जो ऐसा करने के लिए कई कनेक्शनों से अवगत है। कुछ लोकप्रिय ओआरएम और अन्य डेटाबेस-अमूर्त परतें ऐसी कार्यक्षमता प्रदान करती हैं।

0

मैं ऐसा करने की सलाह देता हूं भले ही आप कर सकें। प्रतिकृति "असीमित" है। यही है, जब आप मास्टर में डालते हैं, तो कोई आश्वासन नहीं है कि इसे पढ़ने से पहले स्लेव पर पहुंच जाएगा। यहां तक ​​कि कोई भी गारंटी नहीं है कि यह आज पहुंच जाएगी!

यदि आप किसी ब्लॉग पर कोई टिप्पणी पोस्ट करते हैं, और फिर उस पृष्ठ पर जाते हैं जो टिप्पणी दिखाता है, तो टिप्पणी न दिखाई देने पर वे नाराज होंगे। वे मान सकते हैं कि टिप्पणी खो गई थी और फिर इसे दोबारा पोस्ट करें। यह आपको दुःख का कारण बनता है जब उपयोगकर्ता डबल-पोस्टिंग के बारे में शिकायत करते हैं।

इसे "महत्वपूर्ण पढ़ा" कहा जाता है। गड़बड़ी से बचने का यह आसान तरीका है कि आप गुलामों को जो कुछ भेजते हैं उसके बारे में सावधान रहें - अर्थात् कुछ भी नहीं जो पोस्ट को "गायब" कर देगा।

कई "प्रॉक्सी" पैकेज हैं जो आपके द्वारा वर्णित रीड-राइट स्प्लिट से अनुमति देते हैं; कुछ "महत्वपूर्ण पढ़ने" से बचने की कोशिश करते हैं, लेकिन मुझे उन पर भरोसा नहीं है।

एक Galera क्लस्टर (PXC, MariaDB देखें), तुल्यकालिक पढ़ता करता है, तो यह महत्वपूर्ण पढ़ने समस्या से बचने कर सकते हैं। (हालांकि, आपको एक सेटिंग लागू करने की आवश्यकता है।)

+0

रिक जेम्स - ऐसा करने का सबसे अच्छा समाधान है। आप सही सर्वर का चयन करने के लिए मैक्सस्केल (MAriaDB गैलेरा क्लस्टर के साथ भी) का उपयोग कर सकते हैं। इसमें फेलओवर भी शामिल है। मैं –

+0

3y3skill3r को वोट देता हूं - आप सर्वर पर मैक्सस्केल भी इंस्टॉल कर सकते हैं जहां आप पीडीओ का उपयोग करते हैं और मैक्सस्केल सही सर्वर का चयन करेगा –

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