काम पर हम अपने mysql डेटाबेस के एक रात के डंप करते हैं। दिन-प्रतिदिन, मैं समझूंगा कि 90-95% के करीब डेटा डुप्लिकेट है, जैसे-जैसे समय बढ़ता जा रहा है। (इस बिंदु पर बिल्ली शायद कुछ 99% हैं)
ये डंप जहां एक लाइन एक एकल mysql INSERT स्टेटमेंट है, इसलिए केवल अंतर पूरी लाइनें हैं, और जिस क्रम में वे फ़ाइल में हैं, उसी क्रम में हैं। यदि मैं उन्हें क्रमबद्ध करता, तो फ़ाइल से फ़ाइल में वास्तविक अंतर बहुत छोटा होता।
मैं देख रहा हूं, और मुझे डंप पर आउटपुट को सॉर्ट करने का कोई तरीका नहीं मिला है। मैं इसे sort
कमांड के माध्यम से पाइप कर सकता हूं , हालांकि। फिर समान लाइनों के लंबे, लंबे ब्लॉक होंगे।
इसलिए मैं केवल डिफरेंशियल स्टोर करने का तरीका जानने की कोशिश कर रहा हूं। मैं एक मास्टर डंप के साथ शुरू कर सकता हूं, और प्रत्येक रात उस के खिलाफ अलग हो सकता हूं। लेकिन हर रात डिफरेंस बड़ा होगा। या, मैं अलग-अलग रोल कर सकता था, जो व्यक्तिगत रूप से बहुत छोटा होगा, लेकिन ऐसा लगता है कि इसे गणना करने में अधिक समय और अधिक समय लगेगा, अगर मुझे हर रात पूरी श्रृंखला के एक मास्टर अंतर को एक साथ रखना होगा।
क्या यह संभव है? किस उपकरण के साथ?
संपादित करें मैं नहीं पूछ रहा कि mysql बैकअप कैसे करें। पल के लिए mysql भूल जाओ। यह एक लाल हेरिंग है। मैं जानना चाहता हूं कि रोलिंग की एक श्रृंखला फाइलों की एक श्रृंखला से कैसे भिन्न होती है। प्रत्येक रात हमें एक फ़ाइल मिलती है (जो कि mysqldump फ़ाइल होती है ) जो कि इससे पहले की 99% समान है। हां, हम उन सभी को गज़ब करते हैं। लेकिन यह बेमानी है कि पहली बार में यह सब अतिरेक है। मुझे वास्तव में रात से पहले के मतभेदों की आवश्यकता है ... जो कि रात से पहले केवल 1% अलग है ... और इसी तरह। तो मैं क्या कर रहा हूँ के बाद कैसे diffs की एक श्रृंखला बनाने के लिए है तो मैं केवल दुकान है कि हर रात 1% की जरूरत है।