2008-08-11 16 views
16

मैं एक सर्वर के लिए प्रतिकृति स्थापित कर रहा हूं जो डेटाबेस का एक गुच्छा चलाता है (एक प्रति ग्राहक) और my.cnf पर, हर समय जोड़ने पर योजना बना रहा है, इसके बजाय:MySQL प्रतिकृति: यदि मैं किसी भी डेटाबेस निर्दिष्ट नहीं करता, तो log_bin लॉग सब कुछ होगा?

binlog-do-db = databasename 1 
binlog-do-db = databasename 2 
binlog-do-db = databasename 3 
... 
binlog-do-db = databasename n 

क्या मैं बस

binlog-ignore-db = mysql 
binlog-ignore-db = informationschema 

(और निर्दिष्ट करने के लिए कोई डेटाबेस निर्दिष्ट नहीं है) और मान लें कि बाकी सब कुछ लॉग है?

संपादित करें: असल में अगर मैं अपनी सभी बिनलॉग-डू-डीबी प्रविष्टियों को हटा देता हूं, तो यह प्रतीत होता है कि यह सब कुछ लॉग करता है (जैसा कि आप डेटाबेस को लेते समय बाइनरी लॉग फ़ाइल परिवर्तन स्थिति देखते हैं), लेकिन दास सर्वर पर, कुछ भी नहीं उठाया जाता है ! (शायद, यह प्रतिकृति-डू-डीबी का उपयोग करने का मामला है? यह विचार को मार देगा; मुझे लगता है कि मेरे पास MySQL स्वचालित रूप से पता नहीं लगा सकता कि कौन से डेटाबेस दोहराने के लिए)।

उत्तर

10

यह सही दिखता है: http://dev.mysql.com/doc/refman/5.0/en/binary-log.html#option_mysqld_binlog-ignore-db

कि संदर्भ के अनुसार:

कुछ --binlog-उपेक्षा-db नियम नहीं हैं। क्या डिफ़ॉल्ट डेटाबेस किसी भी --binlog-ignore-db नियमों से मेल खाता है?

  • हाँ: विवरण लिखें और बाहर निकलें।
  • नहीं: क्वेरी लिखें और बाहर निकलें।

जब से तुम केवल आदेशों की अनदेखी है, सभी प्रश्नों लॉग में रूप में लंबे समय के रूप में डिफ़ॉल्ट (सक्रिय) डेटाबेस को नजरअंदाज कर दिया डेटाबेस में से एक से मेल नहीं खाता लिखा जाएगा।

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