2009-01-03 4 views
12

हम MySQL संस्करण 5.0 का उपयोग कर रहे हैं और अधिकांश तालिकाएं InnoDB हैं। हम एक गुलाम सर्वर के लिए प्रतिकृति चलाते हैं। हम दैनिक आधार पर MySQL लॉग फ़ाइलों का बैक अप लेने के बारे में सोच रहे हैं।MySQL में वृद्धिशील बैकअप करने का सबसे अच्छा तरीका क्या है?

प्रश्न

  • वहाँ लॉग फ़ाइलों का उपयोग किए बिना एक वृद्धिशील बैकअप कर के किसी भी अन्य रास्ता नहीं है?
  • वृद्धिशील बैकअप करते समय सर्वोत्तम प्रथाएं क्या हैं?

उत्तर

7

AFAIK वृद्धिशील बैकअप करने का एकमात्र तरीका बाइनरी-लॉग का उपयोग करके है। यदि आप पूर्ण बैकअप (इनो डीबी हॉटकॉपी) करना चाहते हैं, तो आपके पास अन्य विकल्प हैं, लेकिन वृद्धिशील अर्थ यह है कि आपको किए गए सभी लेनदेन को लॉग इन करने की आवश्यकता है।

आपको खुद से पूछना होगा कि आप डेटा का बैक अप क्यों ले रहे हैं। चूंकि आपके पास प्रतिकृति के लिए दास है, मुझे लगता है कि बैकअप प्राथमिक रूप से आकस्मिक विलोपन के मामले में डेटा को वापस करने के लिए है?

मैं शायद हर 1 घंटे लॉग घुमाता हूं और इसका बैकअप लेता हूं। मतलब, बहाल करने से डेटा 1 घंटे पुराना हो जाएगा, और आप अंतिम पूर्ण स्नैपशॉट के बाद से किसी भी समय पुनर्स्थापित कर सकते हैं।

+2

तो हम यह कैसे करते हैं? क्या आपके पास PHP/MySQL में कुछ नमूना कोड हैं? – Tarik

0

आप mysqldump के साथ नियमित रूप से अपने स्कीमा डंप कर सकते हैं, प्रत्येक स्कीमा के लिए हमेशा एक ही फ़ाइल नाम और पथ का उपयोग (यानी नवीनतम एक जगह)

फिर गठबंधन है कि किसी भी बैकअप उपकरण, वृद्धिशील/डेल्टा बैकअप का समर्थन करता है कि के लिए के साथ उदाहरण rdiff-backup, डुप्लिकेट, डुप्लिकेटी या अरेका बैकअप। दोहरेपन डॉक्स से एक उदाहरण:

क्योंकि दोहरेपन librsync का उपयोग करता है, वृद्धिशील अभिलेखागार अंतरिक्ष कुशल और अपना पहला बैकअप केवल फाइलों के कुछ हिस्सों को बदल दिया है कि के बाद से पिछले बैकअप

इस तरह रिकॉर्ड कर रहे हैं पहले पूर्ण डंप की संपीड़ित प्रति होगी, और दूसरे में 1 और 2 डंप से संपीड़ित मतभेद होंगे और इसी तरह। आप समय पर किसी भी बिंदु की mysqldump फ़ाइल को पुनर्स्थापित कर सकते हैं और फिर उस फ़ाइल को MySQL में पुनर्स्थापित कर सकते हैं।

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