2009-01-28 18 views
6

यदि आपके पास एक डीबीए था जो लाइव वातावरण में डेटाबेस को तैनात करने के लिए ज़िम्मेदार था, तो आप उसे क्या देना चुनेंगे? डेटाबेस निर्माण स्क्रिप्ट या बैकअप जिसे वह किसी मौजूदा डेटाबेस पर पुनर्स्थापित कर सकता है? वहां किस प्रकार के फायदे/नुकसान हैं? (हम MSSQL2000 और MSSQL2005 का उपयोग कर रहे हैं)डेटाबेस परिनियोजन: स्क्रिप्ट या बैकअप

उत्तर

5

जब मैं एक डेटाबेस बैकअप का उपयोग कर के जॉन की पहली तैनाती सुझाव से सहमत है, मैं विचार कम से कम स्क्रिप्ट समीक्षा के लिए उपलब्ध होने की, कोडिंग मानकों, प्रदर्शन मूल्यांकन के लिए जाँच के लिए अनुमति देने के लिए आदि

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

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

+0

डेटाबेस बैकअप का उपयोग करते समय प्रारंभिक परिनियोजन के लिए एक आसान समाधान है, यह सर्वर पर तैनाती के लिए एक अच्छा समाधान नहीं हो सकता है, जिसमें बैकअप लिया गया सर्वर से अलग क्षेत्रीय सेटिंग्स हैं। हमने अतीत में इस दृष्टिकोण का उपयोग किया है और हमारे ग्राहकों के लिए टक्कर संघर्ष के साथ इस तथ्य के बाद समस्याओं में भाग लिया है। डेटाबेस बैकअप अपने संयोजन को बरकरार रखता है, जबकि एक स्क्रिप्ट सर्वर के डिफ़ॉल्ट संयोजन में डेटाबेस बनाएगी (जब तक कि आप इसे निर्दिष्ट न करें)। इस कारण से हम प्रारंभिक तैनाती और बाद के अपडेट के लिए स्क्रिप्ट में स्थानांतरित हो गए हैं। – Parmenion

0

डीबी निर्माण स्क्रिप्ट बेहतर है - आप हमेशा एक नोटपैड खोल सकते हैं और इसे ठीक कर सकते हैं।

1

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

6

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

3

पहले परिनियोजन के लिए; डेटाबेस बैकअप ... यह बस इतना तेज़ और आसान है।

यदि डेटाबेस पहले से ही लाइव है; यह संख्याबद्ध स्क्रिप्ट की एक श्रृंखला होनी चाहिए। निजी तौर पर, मैं अपनी स्क्रिप्ट्स को नंबर देता हूं और केवल स्क्रिप्ट के माध्यम से डेटाबेस परिवर्तन करता हूं। यह सुनिश्चित करता है कि सभी डेटाबेस synch में हैं, या वास्तव में आसानी से synch में किया जा सकता है।

कुछ लोग सोचते हैं कि यह गुदा है ... लेकिन मेरे पास कभी भी उत्पादन परिनियोजन समस्या नहीं होगी।

1

मैं एक स्क्रिप्ट पसंद करता हूं क्योंकि आप इसे एक भंडार में डाल सकते हैं और इसे ट्रैक कर सकते हैं। आप इसे दूरस्थ सर्वर पर भी आसानी से चला सकते हैं।

1

स्रोत नियंत्रण के तहत स्क्रिप्ट का उपयोग करें - एक सुंदर साइड-लाभ यह है कि आप डेटाबेस में प्रत्येक ऑब्जेक्ट का खोज करने योग्य इतिहास बनाते हैं और यह मानव-पठनीय है। बैकअप काले बक्से हैं - आप नहीं जानते कि वे आपके डीबी में क्या करने जा रहे हैं।

0

मैं स्क्रिप्ट के साथ जाऊंगा - मानव-पठनीयता का संयोजन, स्रोत कोड नियंत्रण के माध्यम से संगतता और आसानी से आपके डेटाबेस इंजन में उन्नयन को संभालने की क्षमता हमारे संगठन में जाने का तरीका बनाती है।

1

निश्चित रूप से SQL स्क्रिप्ट के साथ जाएं क्योंकि वे संस्करण नियंत्रित हो सकते हैं। पसंदीदा रूप से उन्हें छोटा बनाएं और उन्हें किसी ज्ञात क्रम (वृद्धिशील) में चलाने के लिए किसी प्रकार का बैच रखें ताकि उन्हें पहले से ही एक डेटाबेस में चलाने में आसान हो।

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

वे इस बारे में स्पष्ट हैं कि आप कैसे बढ़ते हैं और वृद्धिशील चरणों में डेटाबेस को फाड़ते हैं। यह किसी डेटाबेस सिस्टम या एप्लिकेशन के विभिन्न संस्करणों में बग का परीक्षण और पुन: निर्माण करना आसान बनाता है।

प्रवास चौखटे है कि मैं के बारे में पता के कुछ उदाहरण हैं:

  • Migratordotnet नेट जो इस तरह के रूप में MSBuild निर्माण लिपियों में चलाए जा रहे हैं के लिए।
  • Ruby on Rails माइक्रोसॉफ्ट का उपयोग करता है जो रेक के माध्यम से चलाया जाता है।

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

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