2008-12-10 8 views
6

माईएसक्यूएल में, स्टेटमेंट आधारित प्रतिकृति का उपयोग करके मुझे लगता है कि प्रत्येक SQL कथन दास पर बिल्कुल उसी तरह निष्पादित हो जाता है जैसे मास्टर पर। हालांकि, जब मैं बयान चलाएँ: मुझे यकीन है कि फ़ाइल दास पर एक ही तरह से यह मास्टर पर करता है पर मौजूद हैं की जरूरत है, तो नहीं कर रहा हूँ'लोड डेटा इन्फाइल' कथन-आधारित प्रतिकृति में कैसे काम करता है?

LOAD DATA INFILE 'filename' INTO SomeTable; 

। क्या कोई मुझे इस सुविधा के दस्तावेज़ीकरण के लिए इंगित कर सकता है?

उत्तर

5

ऐसा प्रतीत होता है कि मास्टर पर LOAD DATA INFILE के साथ लोड की गई फ़ाइल स्वचालित रूप से मास्टर से दास से प्रतिकृति लॉग के माध्यम से स्थानांतरित हो जाती है। जब दावे-आधारित प्रतिकृति कतार में LOAD DATA INFILE पर जाता है तो दास इन फ़ाइलों को लोड करता है।

मैं डॉक्स में बयान के एक जोड़े से इस निष्कर्ष निकालते हूँ:

16.1: Backing Up Replication Slaves

अपने MySQL सर्वर एक गुलाम प्रतिकृति सर्वर है, तो बैकअप विधि आप की परवाह किए बिना अगर चुनें, आप को अपने दास के डेटा को पर वापस लेते समय master.info और relay-log.info फ़ाइलों का बैक अप लेना चाहिए। दास के डेटा को पुनर्स्थापित करने के बाद ये फ़ाइलें प्रतिकृति को फिर से शुरू करने की आवश्यकता है। यदि आपका दास लोड डेटा इन्फ्लू कमांड को दोहराने के अधीन है, तो आपको किसी भी SQL_LOAD- * फ़ाइलों का बैक अप लेना चाहिए जो निर्देशिका निर्दिष्ट निर्देशिका में मौजूद हो सकता है --slave-load-tmpdir विकल्प।

16.1.2.3: Replication Slave Options and Variables

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

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