एक अच्छा विचार में एक MySQL डेटाबेस का समर्थन कर रहा है?


57

मैं अपने आवेदन के लिए बैकअप स्थिति में सुधार करने की कोशिश कर रहा हूं। मेरे पास एक Django एप्लिकेशन और MySQL डेटाबेस है। मैंने एक लेख पढ़ा जिसमें सुझाव दिया गया था कि Git में डेटाबेस का बैकअप लेना चाहिए।

एक तरफ मैं इसे पसंद करता हूं, क्योंकि यह डेटा की एक प्रतिलिपि और कोड को सिंक में रखेगा।

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

(डंप फ़ाइल वर्तमान में 100 एमबी असम्पीडित है, 5.7 एमबी जब bzipped।)

संपादित करें: कोड और डेटाबेस स्कीमा परिभाषाएं पहले से ही गिट में हैं, यह वास्तव में डेटा है जो मैं अब बैकअप के बारे में चिंतित हूं।


13
यदि आपकी कंपनी के पास एक आईटी (ऑप्स) विभाग है, तो उन्हें इसे संभालना चाहिए।
माइकल हैम्पटन

1
एप्लिकेशन का डेटा हिस्सा है, या एप्लिकेशन के माध्यम से क्या बनाया गया है?
विंस्टन एवर्ट

1
आपके द्वारा चलाए जाने पर Git सभी फ़ाइलों को अलग करने का प्रयास करेगा git gc(या यह अंतर्निहित है git repack; विन्यास डिफ़ॉल्ट रूप से, कभी-कभी इसे स्वचालित रूप से चलाएगा)। यह भी हमेशा उन्हें अपवित्र करेगा , इसलिए उन्हें असम्पीडित रूप से संग्रहित करना वास्तव में बेहतर हो सकता है।
Jan Hudec

1
यह किस तरह का डेटाबेस है: यह उत्पादन या विकास डेटाबेस है?
el.pescado

6
viget.com/extend/backup-your-database-in-git , वह एक "वरिष्ठ डेवलपर" है।
wobbily_col

जवाबों:


101

इससे पहले कि आप किसी भी डेटा को खो दें, मुझे इस प्रश्न के लिए एक संक्षिप्त दृष्टिकोण प्रस्तुत करने का प्रयास करने दें।

केवल एक कारण है कि हम बैकअप बनाते हैं: जब कुछ गलत हो जाता है, तो इसे पुनर्स्थापित करना संभव बनाने के लिए, जैसा कि यह हमेशा होगा। जैसे, एक उचित बैकअप प्रणाली की आवश्यकताएं होती हैं जो उस सीमा से बहुत आगे जाती हैं जो उचित रूप से संभाल सकती हैं।

यहाँ कुछ मुद्दे हैं जो मैं आपके डेटाबेस को git में बैकअप देने की कोशिश कर सकता हूँ:

  • हर "बैकअप" के साथ भंडार नाटकीय रूप से बढ़ेगा। चूँकि git पूरे ऑब्जेक्ट्स (यद्यपि संपीड़ित) को संग्रहीत करता है और फिर उन्हें बाद में अलग करता है (जैसे जब आप दौड़ते हैं git gc) , और हमेशा के लिए इतिहास रखता है , तो आपके पास बहुत बड़ी मात्रा में डेटा संग्रहीत होगा जिसकी आपको वास्तव में आवश्यकता नहीं है या यहां तक ​​कि आपको भी चाहिए। आपको डिस्क स्थान या कानूनी कारणों से बचाने के लिए बैकअप की राशि या अवधारण अवधि को सीमित करने की आवश्यकता हो सकती है, लेकिन बहुत अधिक संपार्श्विक क्षति के बिना पुराने रेपो से पुराने संशोधनों को हटाना मुश्किल है।
  • पुनर्स्थापना उस समय के बिंदुओं तक सीमित है जिसे आपने भंडार में संग्रहीत किया है, और चूंकि डेटा इतना बड़ा है, समय की एक तुच्छ मात्रा से अधिक वापस जाना धीमा हो सकता है। उद्देश्य के लिए डिज़ाइन किया गया एक बैकअप सिस्टम संभवतः अधिक ग्रैन्युलैरिटी प्रदान करते हुए संग्रहीत डेटा की मात्रा को सीमित करता है, और एक आपदा की स्थिति में डाउनटाइम को कम करते हुए तेजी से पुनर्स्थापना प्रदान करता है। डेटाबेस-अवगत बैकअप समाधान ( उदाहरण ) निरंतर बैकअप प्रदान कर सकता है , यह सुनिश्चित करता है कि एक भी लेन-देन खो न जाए।
  • डेटाबेस के बढ़ने के साथ कमिट भी धीमा होने की संभावना है, और धीमी गति से प्राप्त करें। याद रखें कि git मूल रूप से एक फाइल-सिस्टम पर मैप किया जाने वाला एक महत्वपूर्ण-मूल्य डेटा स्टोर है , और इस प्रकार अंतर्निहित फाइल सिस्टम के प्रदर्शन विशेषताओं के अधीन है। यह समय की इस लंबाई के लिए संभव है कि अंततः बैकअप अंतराल से अधिक हो, और उस बिंदु पर अब आप अपने SLA को पूरा नहीं कर सकते। उचित बैकअप सिस्टम भी डेटा बढ़ने के साथ बैकअप लेने में अधिक समय लेता है, लेकिन लगभग इतने नाटकीय रूप से नहीं, क्योंकि वे आपके द्वारा बनाए गए अवधारण नीति के आधार पर स्वचालित रूप से अपने आकार का प्रबंधन करेंगे।

इस तथ्य के बावजूद कि जाहिरा तौर पर कई दिलचस्प चीजें हैं जो आप डेटाबेस डंप के साथ कर सकते हैं यदि आप इसे गिट में डालते हैं, तो कुल मिलाकर मैं बैकअप रखने के उद्देश्य से इसकी सिफारिश नहीं कर सकता। विशेष रूप से चूंकि बैकअप सिस्टम व्यापक रूप से उपलब्ध हैं (और कई तो ओपन सोर्स भी हैं) और अपने डेटा को सुरक्षित रखने और इसे जल्द से जल्द ठीक करना संभव बनाने में बहुत बेहतर काम करते हैं।


यह सबसे अच्छा जवाब है क्योंकि माइकल ने निरंतरता के मुद्दों को कवर किया है। डेटाबेस के आकार और उपयोग के आधार पर एक स्नैपशॉट भरोसेमंद रूप से दिए गए बिंदु पर डेटा को पुन: उत्पन्न नहीं कर सकता है और आपको बाधा मुद्दों में चलाने की संभावना है। प्रतिकृति कुछ ऐसी हो सकती है जिसे आप देखना चाहते हैं - dev.mysql.com/doc/refman/5.0/en/replication.html
हारून न्यूटन

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

2
@ जिमीशेल्टर विचार का एक स्कूल है कि DevOps का मतलब यह नहीं है कि देव और ऑप्स एक साथ मिलकर काम करते हैं, लेकिन देव वास्तव में ऑप्स करते हैं। यह आमतौर पर अच्छी तरह से काम नहीं करता है, लेकिन यह लोगों को यह कोशिश करना बंद नहीं करता है।
माइकल हैम्पटन

यह स्वीकृत उत्तर होना चाहिए। यह स्पष्ट रूप से बैकअप सिस्टम के लिए आवश्यकताओं और उद्देश्यों की व्याख्या करता है, फिर दिखाता है कि कैसे फिट नहीं होता है। स्थिरता और प्रदर्शन की चर्चा के लिए अतिरिक्त बोनस अंक।
गैब्रियल बॉमन

मुझे टिप्पणी करने दें कि मैंने अपना जवाब यह मानते हुए पोस्ट किया कि ओपी के पास कोई ऑपरेशन टीम नहीं है जो उसके लिए इस मुद्दे को संभाल सके। मैं आपके साथ सहमत हूं कि इस तरह का कार्य उन लोगों के लिए सबसे अच्छा है जो वास्तव में सिस्टम का संचालन कर रहे हैं, और इसके चारों ओर अपना रास्ता जानते हैं। लेकिन ऐसी परिस्थितियां हैं जहां आपको एक ऐसी टोपी डालनी है जो बिल्कुल आपकी नहीं है, और मेरा मानना ​​है कि उस स्थिति में बेहतर होगा कि आप अपने स्वयं के आकस्मिक समाधान के साथ आने से कुछ सर्वोत्तम प्रथाओं को सीखने की कोशिश करें। मेरा कहना है कि मुझे आपका उत्तर भी बहुत शिक्षाप्रद लगा!
लॉग इन करें

39

मेरे दो सेंट: मुझे नहीं लगता कि यह एक अच्छा विचार है। जीआईटी "समय में विभिन्न बिंदुओं पर फ़ाइलों के एक सेट के स्नैपशॉट्स" को स्टोर करने जैसा कुछ करता है, इसलिए आप जीआईटी का उपयोग उस तरह की किसी चीज़ के लिए पूरी तरह से कर सकते हैं , लेकिन इसका मतलब यह नहीं है कि आपको चाहिए । जीआईटी को सोर्स कोड को स्टोर करने के लिए डिज़ाइन किया गया है, इसलिए आप इसकी अधिकांश कार्यक्षमता को याद नहीं करेंगे, और आप थोड़ी सी सुविधा के लिए बहुत अधिक प्रदर्शन कर रहे होंगे।

मुझे लगता है कि मुख्य कारण आप इस बारे में सोच रहे हैं कि "डेटा की एक प्रतिलिपि और सिंक्र में कोड रखें", और इसका मतलब है कि आप चिंतित हैं कि आपके कोड के संस्करण 2.0 को संस्करण 1.0 की तुलना में एक अलग डेटाबेस स्कीमा की आवश्यकता है । एक सरल समाधान डेटाबेस स्कीमा को संग्रहीत करने के लिए होगा, CREATEबयानों के साथ SQL स्क्रिप्ट के एक सेट के रूप में, आपके गिट रिपॉजिटरी में स्रोत कोड के साथ। फिर, आपकी स्थापना प्रक्रिया का एक हिस्सा पहले से स्थापित डेटाबेस सर्वर पर उन लिपियों को निष्पादित करना होगा।

उन जस्ट-डी टेबल की वास्तविक सामग्रीCREATE का आपके स्रोत कोड के संस्करण से कोई लेना-देना नहीं है। कल्पना करें कि आप अपना सॉफ़्टवेयर, संस्करण 1.0, सर्वर ए और सर्वर बी पर स्थापित करते हैं, जो विभिन्न कंपनियों द्वारा विभिन्न टीमों में उपयोग किए जाते हैं। कुछ हफ्तों के बाद, तालिकाओं की सामग्री बहुत अलग होगी, भले ही स्कीमा बिल्कुल समान हों।

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

संपादित करें :

मूल पोस्ट पढ़ने के बाद जिसने प्रश्न को प्रेरित किया , मुझे यह एक और भी संदिग्ध विचार लगता है। मुख्य बिंदु यह है कि mysqldumpकमांड DB की वर्तमान स्थिति को SQL INSERTस्टेटमेंट की एक श्रृंखला में बदल देती है , और GIT उन्हें केवल अपडेट की गई तालिका पंक्तियों को प्राप्त करने के लिए अलग कर सकती है।

mysqldumpके बाद से इस है हिस्सा है, आवाज़ है बैकअप तरीकों में से एक MySQL के दस्तावेज़ में सूचीबद्ध। GIT हिस्सा वह है जहां लेखक यह नोटिस करने में विफल रहता है कि डेटाबेस सर्वर MySQL सहित क्रैश से उबरने के लिए ट्रांजेक्शन लॉग रखते हैं । यह इस लॉग का उपयोग कर रहा है , जीआईटी का नहीं, कि आपको अपने डेटाबेस के लिए वृद्धिशील बैकअप बनाना चाहिए। यह, सबसे पहले और सबसे महत्वपूर्ण, लाभ है कि आप रिकवरी के बाद लॉग को घुमा सकते हैं या फ्लश कर सकते हैं, बजाय एक जीआई रिपॉजिटरी को अनन्तता और उससे आगे बढ़ाने के लिए ...


2
मुझे यकीन नहीं है कि मैं संस्करण नियंत्रण में डेटा के बिना डेटाबेस स्कीमा को संग्रहीत करने में कोई बिंदु देखता हूं। डेटा सबसे महत्वपूर्ण चीज है, और यही मैं बैक अप लेना चाहता हूं। हालाँकि मुझे वर्तमान सॉफ़्टवेयर संस्करण के साथ डेटाबेस बैकअप को टैग करने का विचार पसंद है। मैं ऐसा कुछ लागू करने की कोशिश करूंगा।
wobbily_col

10
स्कीमा को डेटा के बिना संग्रहीत करने की बात यह है कि, स्थापना के ठीक बाद, आपका सॉफ़्टवेयर "उपयोग किए जाने के लिए तैयार" होना चाहिए। यदि यह एक विकी है, तो यह विकी पेज बनाने और उनमें कुछ लिखने के लिए तैयार होना चाहिए। यदि आप स्कीमा और सामग्री स्थापित करते हैं, तो आपकी विकी पहले से ही स्थापना के बाद एक्स विकी पृष्ठों से भर गई है ... जो कि "हमारी सामग्री को लिखने के लिए एक विकी सिस्टम स्थापित करना" नहीं है, लेकिन "इसे पढ़ने के लिए कहीं से विकी की नकल करना" ।
लॉग

3
यह एक अच्छा विचार हो सकता है कि आप अपने प्रश्न को वास्तविक स्थिति के साथ संशोधित करें। भले ही आप सभी विवरणों को पोस्ट नहीं कर सकते हैं, यह बताना महत्वपूर्ण होगा कि प्रत्येक इंस्टॉलेशन में अनमॉडिफाइड दिखने के लिए आपको बहुत सारे डेटा की आवश्यकता होगी, या एक एकल स्थापना है ...
लॉग

2
@wobbily_col एक गैर-पाठ, बाइनरी आधारित प्रारूप में स्रोत नियंत्रण के संदर्भ में सीमित मूल्य है। आप नहीं कर सकते diff यह, तुम नहीं कर सकते शाखा / विलय यह, आदि तो, आप निश्चित रूप से Git उपयोग कर सकते हैं डीबी स्टोर करने के लिए, ज्यादातर लोगों डीबी संरचना के साथ-साथ आवश्यक डेटा स्क्रिप्ट पसंद करते हैं। यह थोड़ा अधिक काम करने के बीच एक समझौता है, लेकिन उपरोक्त सुविधाओं की सूची प्रदान करना। आपको यह तौलना होगा कि आपके समाधान के लिए यह एक अच्छा विचार है या नहीं। अन्यथा, आप शायद डीबी को सीधे स्टोर करने के लिए जीआईटी प्राप्त कर सकते हैं, यह केवल कार्य के लिए सबसे अच्छा फिट नहीं है।
डैनियल बी

3
@RaduMurzea: मुझे लगता है कि यह सिद्धांतों का सवाल है। एक संस्करण नियंत्रण प्रणाली को स्रोत कोड को प्रबंधित करने के लिए डिज़ाइन किया गया है, और बायनेरिज़ नहीं, बस। यह आकार का सवाल नहीं है। नहीं, डेटाबेस डंप को रिपॉजिटरी में चेक नहीं किया जाना चाहिए, जैसे ट्रेनिंग वीडियो को भी चेक नहीं किया जाना चाहिए। लेकिन आपको ऐसा करने से कोई नहीं रोक रहा है। :)
मई'14

7

व्यक्तिगत रूप से, मुझे नहीं लगता कि बैकअप फ़ाइलों को संग्रहीत करने के लिए स्रोत नियंत्रण संस्करण प्रणाली का उपयोग करना एक अच्छा विचार है, क्योंकि जीआईटी संस्करण नियंत्रण डेटा फ़ाइलों के लिए डिज़ाइन किया गया है, न कि बायनेरी या डंप फ़ाइलों जैसे कि MySQL बैकअप डंप फ़ाइल के लिए। तथ्य यह है कि आप यह कर सकते हैं इसका मतलब यह नहीं है कि आपको यह करना चाहिए । इसके अलावा, आपकी रिपॉजिटरी, प्रत्येक नए कमिट के लिए एक नए डेटाबेस बैकअप पर विचार करते हुए, हार्ड डिस्क स्थान का उपयोग करके नाटकीय रूप से विकसित होगी और जीआईटी का प्रदर्शन प्रभावित होगा, जिसके परिणामस्वरूप एक धीमी स्रोत नियंत्रण प्रणाली होगी। मेरे लिए यह एक बैकअप रणनीति को निष्पादित करने के लिए ठीक है और जब आपके कोड में कुछ गलत हो जाता है तो डेटाबेस को पुनर्स्थापित करने की आवश्यकता होने पर हमेशा बैकअप फ़ाइल तैयार होती है, लेकिन बाइनरी डेटा को स्टोर करने के लिए स्रोत नियंत्रण उपकरण नहीं बनाए जाते हैं।

इन कारणों से, मुझे दिन 1 और दिन 2 के लिए बैकअप फ़ाइलों को संग्रहीत करने में कोई उपयोगिता नहीं दिखाई देती है, और फिर दोनों बैकअप फ़ाइलों के बीच अंतर को देखते हुए। इसके लिए बहुत सारे अतिरिक्त और बेकार काम करने होंगे। जब आप नया कोड बनाते हैं, तो डेटाबेस बैकअप को स्टोर करने के लिए GIT का उपयोग करने के बजाय, डेटाबेस बैकअप को एक अलग पथ में संग्रहीत करें, दिनांक और समय के अनुसार अलग-अलग करें, और अपने कोड में प्रत्येक संस्करण के लिए बनाए गए नए डेटाबेस बैकअप, टैग का उपयोग करके कुछ संदर्भ डालें, जैसा कि किसी ने पहले ही सुझाव दिया था।

डेटाबेस बैकअप और GIT के बारे में मेरा अंतिम नोटएक डेटाबेस प्रशासक, जब उसे एक डेटाबेस को पुनर्स्थापित करने की आवश्यकता होती है क्योंकि कुछ डेटा खो गया है, दिन 1 के लिए बैकअप फ़ाइल और दिन 2 के लिए बैकअप फ़ाइल के बीच अंतर की जाँच करने की आवश्यकता नहीं है, उसे बस यह जानना होगा कि कौन सा है अंतिम बैकअप फ़ाइल जो उसे डेटाबेस को पुनर्स्थापित करने की अनुमति देगी, बिना किसी त्रुटि और डेटा हानि के, डाउनटाइम को कम करने के बिना। दरअसल, डेटाबेस एडमिनिस्ट्रेटर का काम डेटा को रिकवरी के लिए जल्द से जल्द उपलब्ध कराना है, जब सिस्टम, कुछ कारणों से, विफल हो जाता है। यदि आप GIT में डेटाबेस बैकअप स्टोर करते हैं, तो आपके कमिट्स से जुड़ा हुआ है, आप डेटाबेस व्यवस्थापक को डेटा को जल्दी से बहाल करने की अनुमति नहीं देते हैं, क्योंकि आपके बैकअप उस समय के बिंदुओं तक सीमित हैं, जो आपने GIT रिपॉजिटरी में संग्रहीत किए हैं, और डाउनटाइम को कम करने के लिए प्रणाली में,

फिर, मैं जीआईटी का उपयोग करके बैकअप स्टोर करने की अनुशंसा नहीं करता, एक अच्छा बैकअप सॉफ़्टवेयर समाधान के बजाय उपयोग करें (यहां उनमें से कुछ हैं ), जो अधिक दानेदारता प्रदान करेगा और आपको अपना डेटा सुरक्षित और सुरक्षित रखने, और अपना बनाने की अनुमति देगा आपदाओं के मामले में डेटा रिकवरी सरल और तेज है।


हो सकता है कि डाउनवॉटर यह बताएगा कि उसने / उसे क्यों उतारा ..
अल्बर्टो सोलानो

1
डाउनवॉटर नहीं, लेकिन मुझे लगता है कि यह दृष्टिकोण कभी-कभी वर्तमान मर्ज संघर्ष का परिचय देता है जो विशेष रूप से शाखा के लिए अनुकूल नहीं है, मर्ज-अक्सर वर्कफ़्लो जिसे अधिकांश गिट उपयोगकर्ता पसंद करते हैं।
डैनियल बी

@DanielB मैं डेटाबेस बैकअप फ़ाइलों को संग्रहीत करने के लिए संस्करण नियंत्रण प्रणाली का उपयोग नहीं करने का प्रस्ताव करता हूं। मुझे लगता है कि डेटाबेस बैकअप समस्या को किसी भी संस्करण नियंत्रण प्रणाली का उपयोग किए बिना आसानी से हल किया जा सकता है। संस्करण नियंत्रण प्रणाली (जीआईटी, टीएफएस, एसवीएन और इतने पर) सॉफ्टवेयर के लिए डिज़ाइन किए गए हैं, न कि डंप फाइलें या डेटाबेस बैकअप या बस डेटा संग्रहीत करने के लिए (इसके लिए बहुत सारे समाधान हैं)।
अल्बर्टो सोलानो

मुझे लगता है कि अधिकांश उपयोगकर्ता पहले कुछ वाक्य पढ़ते हैं और डाउनवोट करते हैं, क्योंकि ऐसा लगता है कि आप कह रहे हैं कि इसका उपयोग करना ठीक है।

1
@AlbertoSolano मैं देख रहा हूँ; लेकिन सवाल पढ़ते हुए ("क्या मैं जीआईटी में अपने डीबी का बैकअप ले सकता हूं?") और फिर आपका पहला बयान ("बैकअप फाइल को स्टोर करना ठीक है ..."), ऐसा लगता है जैसे आप विपरीत कह रहे हैं। शेष उत्तर यह कहते हुए प्रतीत होता है कि यह न तो यहां है और न ही है, जबकि मुझे संदेह है कि ज्यादातर लोगों को लगता है कि यह एक ट्रेन-मलबे होने की प्रतीक्षा कर रहा है।
डेनियल बी

1

आपको Git - विशेष रूप से डेटाबेस में बाइनरी डेटा स्टोर नहीं करना चाहिए।
कोड परिवर्तन और डेटाबेस डीएमएल परिवर्तन पूरी तरह से अलग चीजें हैं।

MySQL और Oracle समय में किसी भी बिंदु पर बहाल होने के उद्देश्य से संग्रह लॉग लिख सकते हैं। बस उन लॉग को कहीं सुरक्षित करने के लिए बैकअप लें और आप ठीक हो जाएंगे।

इन "संग्रह लॉग" का बैकअप लेने के लिए Git का उपयोग करने का कोई मतलब नहीं है। उत्पादन वातावरण में पुरातन लॉग नियमित रूप से भारी होते हैं और उन्हें नियमित पूर्ण बैकअप लेने के बाद हटा दिया जाना चाहिए। इसके अलावा उन्हें बेकार में रखना बेकार है - वे पहले से ही कुछ अर्थों में एक भंडार हैं।


1
MySQL द्वारा बनाए गए इन "आर्काइव लॉग्स" को वापस लेने के लिए कोई Git का उपयोग क्यों नहीं करेगा?
gnat

1
सिर्फ इसलिए कि इसका कोई मतलब नहीं है। उत्पादन वातावरण में पुरातन लॉग नियमित रूप से भारी होते हैं और उन्हें नियमित पूर्ण बैकअप लेने के बाद हटा दिया जाना चाहिए। इसके अलावा उन्हें बेकार में रखना बेकार है - वे पहले से ही कुछ अर्थों में एक भंडार हैं। माइकल हैम्पटन इस मुद्दे पर (इस पृष्ठ पर) बहुत अच्छा जवाब देता है।
जिहि

1
यदि आप गिट में हर चीज की एक प्रति रखने जा रहे हैं तो रोटेटिंग लॉग को परेशान क्यों करें? साथ ही साथ सिर्फ एक राक्षस लॉग फ़ाइल रख सकते हैं।
wobbily_col
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.