MySQL बाइनरी लॉग्स - एक तालिका छोड़ें


9

क्या द्विआधारी लॉग में एक विशिष्ट तालिका को छोड़ने का एक तरीका है?

मुझे रात के बैकअप के बीच मेरी वृद्धिशील बैकअप रणनीति के रूप में द्विआधारी लॉग कॉन्फ़िगर किया गया है। लेकिन हमारे पास एक विशाल संदर्भ तालिका है जिसे हम एक बैच प्रक्रिया (70GB तालिका) से रात को अपडेट करने जा रहे हैं। यह तालिका केवल पढ़ने के लिए है, और इसे रात में उपयोग करके अपडेट किया जाता है mysqlimport

इस संदर्भ-केवल तालिका के लिए अद्यतन प्रक्रिया के दौरान बाइनरी लॉग एक बहुत गंभीर देरी का कारण बन रहे हैं (विशेषकर जब मैं एक पूर्ण 70 जीबी अपडेट करता हूं)। यह मूल रूप से दो बार 70GB करने के लिए मिला है। छी।

संदर्भ तालिका वर्तमान में MyISAM का उपयोग कर रही है (मैंने इसे लोड करने की कोशिश में InnoDB को चकित कर दिया है, इसलिए MyISAM को आज़मा रहा है)।


क्या यह DB सर्वर एक स्टैंडअलोन DB सर्वर है? क्या यह डीबी सर्वर एक मास्टर या दास है?
रोलैंडमाइसीडीडीबीए

जवाबों:


9

बाइनरी लॉग में तालिका को अनदेखा करने के लिए कोई mysql विकल्प नहीं है।

यदि आप टेबल को एक अलग डेटाबेस में ले जा सकते हैं, तो आप बिनलॉग-इग्नोर-डीबी विकल्प का उपयोग कर सकते हैं , लेकिन इसके गोचर्स हैं । आपको समझना चाहिए कि MySQL प्रतिकृति नियमों का मूल्यांकन कैसे करता है

यदि आप mysqlimport के बजाय डेटा को लोड करने के लिए एक रैपर स्क्रिप्ट लिख सकते हैं (मैनपेज कहता है कि यह LOAD DATA INFILE के लिए एक कमांड लाइन इंटरफ़ेस है), और जिस उपयोगकर्ता के साथ आप डेटा आयात कर रहे हैं, उसके पास SUPER विशेषाधिकार हो सकते हैं जो आप sql_log_bin सत्र चर का उपयोग कर सकते हैं पसंद:

    SET @@session.sql_log_bin=0;
    LOAD DATA INFILE 'file_name' 
      -- other LOAD DATA INFILE options ;
    SET @@session.sql_log_bin=1;

यह वर्तमान सत्र के लिए बाइनरी लॉगिंग को अक्षम करेगा, डेटा लोड करेगा और फिर से बाइनरी लॉगिंग सक्षम करेगा।


लोड प्रक्रिया के दौरान बाइनरी लॉगिंग को अक्षम करें, शानदार, बिल्कुल वही जो मैं देख रहा था, यह एक बहुत ही उपयोगी समाधान है!
डेविड पार्क्स

3

आप उपयोग कर सकते हैं --replicate-ignore-table=db_name.tbl_name

देखें http://dev.mysql.com/doc/refman/5.1/en/replication-options-slave.html#option_mysqld_replicate-ignore-table जानकारी के लिए।


6
इसके साथ समस्या यह है कि प्रतिकृति-उपेक्षा-तालिका एक दास सेटिंग है, इसलिए मास्टर बिनल प्रविष्टियों का भार पैदा करेगा, वे दास (प्रक्रिया में बैंडविड्थ / अंतरिक्ष खाने) में स्थानांतरित हो जाते हैं, और उसके बाद ही नजरअंदाज कर दिया जाता है। यह पहली बार में उन प्रविष्टियों को उत्पन्न नहीं करने के लिए बहुत अधिक कुशल होगा।
एसवीडी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.