यदि आपके पास एक डीबीए था जो लाइव वातावरण में डेटाबेस को तैनात करने के लिए ज़िम्मेदार था, तो आप उसे क्या देना चुनेंगे? डेटाबेस निर्माण स्क्रिप्ट या बैकअप जिसे वह किसी मौजूदा डेटाबेस पर पुनर्स्थापित कर सकता है? वहां किस प्रकार के फायदे/नुकसान हैं? (हम MSSQL2000 और MSSQL2005 का उपयोग कर रहे हैं)डेटाबेस परिनियोजन: स्क्रिप्ट या बैकअप
उत्तर
जब मैं एक डेटाबेस बैकअप का उपयोग कर के जॉन की पहली तैनाती सुझाव से सहमत है, मैं विचार कम से कम स्क्रिप्ट समीक्षा के लिए उपलब्ध होने की, कोडिंग मानकों, प्रदर्शन मूल्यांकन के लिए जाँच के लिए अनुमति देने के लिए आदि
यदि आप पसंद करते हैं टर्नकी की तलाश कर रहे हैं जिसे पहले से ही समीक्षा की जा चुकी है, तो बैकअप/पुनर्स्थापना पहली तैनाती के लिए एक आदर्श विकल्प है, और भी अगर ऐसा है कि उस डेटाबेस में "चरणबद्ध" कॉन्फ़िगरेशन डेटा है। यह लंबी या जटिल सम्मिलित बयान से बचने में मदद करता है।
यह एक दिया गया है कि पहले से रिलीज़ होने के लिए स्क्रिप्ट किया जा रहा है। हमारे पर्यावरण में हमें स्क्रिप्ट के सर्वर, उदाहरण और पथ निर्दिष्ट करने के लिए रिलीज नोट्स की आवश्यकता होती है। स्क्रिप्ट को संख्यात्मक क्रम में प्रदान किया जाना चाहिए, रोलबैक स्क्रिप्ट के दूसरे सेट के साथ, लक्ष्य डेटाबेस द्वारा फ़ोल्डर में अलग किया जाना चाहिए। हमें यह भी आवश्यक है कि प्रत्येक स्क्रिप्ट में शीर्ष पर एक यूएसई स्टेटमेंट है, इसलिए हमें मास्टर डेटाबेस में नई ऑब्जेक्ट्स बनाने के बारे में चिंता करने की ज़रूरत नहीं है! ;)
डीबी निर्माण स्क्रिप्ट बेहतर है - आप हमेशा एक नोटपैड खोल सकते हैं और इसे ठीक कर सकते हैं।
मुझे बैकअप विकल्प के बारे में निश्चित नहीं है लेकिन एक डीबी निर्माण स्क्रिप्ट के साथ डीबीए डाटाबेस को सेट कर सकता है जैसा कि वह चाहता है (है, अनुमतियां इत्यादि) तो बस स्क्रिप्ट के साथ टेबल आदि बनाएं।
मैं तैनाती के लिए एक स्क्रिप्ट पसंद करता हूं, वे बहुत कम घुसपैठ कर रहे हैं। एक पुनर्स्थापना पूरे डेटाबेस, डेटा और सभी को ओवरराइट करेगा, जो शायद आपके उत्पादन वातावरण पर एक अच्छा विचार नहीं है ..
पहले परिनियोजन के लिए; डेटाबेस बैकअप ... यह बस इतना तेज़ और आसान है।
यदि डेटाबेस पहले से ही लाइव है; यह संख्याबद्ध स्क्रिप्ट की एक श्रृंखला होनी चाहिए। निजी तौर पर, मैं अपनी स्क्रिप्ट्स को नंबर देता हूं और केवल स्क्रिप्ट के माध्यम से डेटाबेस परिवर्तन करता हूं। यह सुनिश्चित करता है कि सभी डेटाबेस synch में हैं, या वास्तव में आसानी से synch में किया जा सकता है।
कुछ लोग सोचते हैं कि यह गुदा है ... लेकिन मेरे पास कभी भी उत्पादन परिनियोजन समस्या नहीं होगी।
मैं एक स्क्रिप्ट पसंद करता हूं क्योंकि आप इसे एक भंडार में डाल सकते हैं और इसे ट्रैक कर सकते हैं। आप इसे दूरस्थ सर्वर पर भी आसानी से चला सकते हैं।
स्रोत नियंत्रण के तहत स्क्रिप्ट का उपयोग करें - एक सुंदर साइड-लाभ यह है कि आप डेटाबेस में प्रत्येक ऑब्जेक्ट का खोज करने योग्य इतिहास बनाते हैं और यह मानव-पठनीय है। बैकअप काले बक्से हैं - आप नहीं जानते कि वे आपके डीबी में क्या करने जा रहे हैं।
मैं स्क्रिप्ट के साथ जाऊंगा - मानव-पठनीयता का संयोजन, स्रोत कोड नियंत्रण के माध्यम से संगतता और आसानी से आपके डेटाबेस इंजन में उन्नयन को संभालने की क्षमता हमारे संगठन में जाने का तरीका बनाती है।
निश्चित रूप से SQL स्क्रिप्ट के साथ जाएं क्योंकि वे संस्करण नियंत्रित हो सकते हैं। पसंदीदा रूप से उन्हें छोटा बनाएं और उन्हें किसी ज्ञात क्रम (वृद्धिशील) में चलाने के लिए किसी प्रकार का बैच रखें ताकि उन्हें पहले से ही एक डेटाबेस में चलाने में आसान हो।
एसक्यूएल स्क्रिप्ट का एक विकल्प माइग्रेशन फ्रेमवर्क का उपयोग करना है। आप स्रोत कोड में छोटे चरणों में डेटाबेस परिवर्तन निर्दिष्ट करते हैं।माइग्रेशन फ्रेमवर्क का लाभ यह है कि एक प्रोग्रामर जो एसक्यूएल नहीं जानता है, वह डेटाबेस में बदलाव कर सकता है (हालांकि कुछ डेटाबेस मूलभूत जानकारी जानने की ज़रूरत नहीं है)।
वे इस बारे में स्पष्ट हैं कि आप कैसे बढ़ते हैं और वृद्धिशील चरणों में डेटाबेस को फाड़ते हैं। यह किसी डेटाबेस सिस्टम या एप्लिकेशन के विभिन्न संस्करणों में बग का परीक्षण और पुन: निर्माण करना आसान बनाता है।
प्रवास चौखटे है कि मैं के बारे में पता के कुछ उदाहरण हैं:
- Migratordotnet नेट जो इस तरह के रूप में MSBuild निर्माण लिपियों में चलाए जा रहे हैं के लिए।
- Ruby on Rails माइक्रोसॉफ्ट का उपयोग करता है जो रेक के माध्यम से चलाया जाता है।
बैकअप वास्तव में डेटाबेस का बैकअप लेने के लिए है। चूंकि डेटाबेस पोर्टेबिलिटी बढ़ता है। इसलिए एक प्रोग्रामर को केवल डेटा के सबसेट की आवश्यकता होती है। सुरक्षा कारणों से उन्हें वास्तविक डेटा के बजाय परीक्षण डेटा से निपटना चाहिए। कुछ टेस्ट-डेटा जेनरेटर हाथ में रखना एक अच्छा अभ्यास है ताकि डेवलपर और परीक्षक उत्पादन में हानिकारक डेटा के बिना उनके कार्यान्वयन के माध्यम से परीक्षण कर सकें।
- 1. हेरोकू डेटाबेस बैकअप रणनीति?
- 2. PHP रिकर्सिव बैकअप स्क्रिप्ट
- 3. बैकअप MySQL डेटाबेस
- 4. नमूना एसक्यूएल स्क्रिप्ट को ज़िप और हस्तांतरण डेटाबेस बैकअप फ़ाइल
- 5. बैकअप डेटाबेस उपयोग crontab
- 6. mysqlump डेटाबेस बैकअप mysqldump
- 7. एसक्यूएल सर्वर डेटाबेस बैकअप के लिए एक सरल कमांड लाइन प्रोग्राम या स्क्रिप्ट क्या है?
- 8. बैकअप डेटाबेस प्रोग्रामेटिक रूप से
- 9. SQL डेटाबेस बैकअप फ़ाइल नाम
- 10. Django परिनियोजन: डेटाबेस में डेटा को संभालना
- 11. आईओएस: iCloud में बैकअप कोर डेटा डेटाबेस?
- 12. स्क्रिप्ट टू बैकअप svn रिपॉजिटरी नेटवर्क शेयर
- 13. एक MySQL डेटाबेस के आवधिक बैकअप लेना
- 14. कॉच डीबी बैकअप और डेटाबेस क्लोनिंग
- 15. एक सोलर डेटाबेस बैकअप कैसे करें?
- 16. एक फ़ाइलस्ट्रीम डेटाबेस बैकअप कैसे करें?
- 17. नेटवर्क पर डेटाबेस बैकअप को पुनर्स्थापित करें
- 18. MySQL बैकअप
- 19. गीता परिनियोजन
- 20. विजुअल स्टूडियो डेटाबेस प्रोजेक्ट्स के साथ नॉनट्रिविअल वृद्धिशील परिवर्तन परिनियोजन
- 21. Autorun ELMAH डेटाबेस स्क्रिप्ट
- 22. क्यों मेरी डेटाबेस बैकअप स्क्रिप्ट php में काम नहीं कर रहा?
- 23. बैकअप अनुमतियां
- 24. बैकअप
- 25. बैकअप एसक्यूएल स्कीमा केवल?
- 26. बैकअप फ़ाइल
- 27. बैकअप
- 28. वीएस -2010 डेटाबेस प्रोजेक्ट परिनियोजन, विफल होने पर डेटा हानि हो सकती है या नहीं?
- 29. ड्रॉप डेटाबेस को उत्पन्न करने से आप VS2010 डेटाबेस प्रोजेक्ट परिनियोजन को कैसे रोकते हैं?
- 30. विंडोज सर्वर पर स्वचालित रूप से MySQL डेटाबेस बैकअप
डेटाबेस बैकअप का उपयोग करते समय प्रारंभिक परिनियोजन के लिए एक आसान समाधान है, यह सर्वर पर तैनाती के लिए एक अच्छा समाधान नहीं हो सकता है, जिसमें बैकअप लिया गया सर्वर से अलग क्षेत्रीय सेटिंग्स हैं। हमने अतीत में इस दृष्टिकोण का उपयोग किया है और हमारे ग्राहकों के लिए टक्कर संघर्ष के साथ इस तथ्य के बाद समस्याओं में भाग लिया है। डेटाबेस बैकअप अपने संयोजन को बरकरार रखता है, जबकि एक स्क्रिप्ट सर्वर के डिफ़ॉल्ट संयोजन में डेटाबेस बनाएगी (जब तक कि आप इसे निर्दिष्ट न करें)। इस कारण से हम प्रारंभिक तैनाती और बाद के अपडेट के लिए स्क्रिप्ट में स्थानांतरित हो गए हैं। – Parmenion