/ / बैच स्क्रिप्ट SQL सर्वर डेटाबेस रखरखाव सरल बनाने के लिए

बैच स्क्रिप्ट SQL सर्वर डेटाबेस रखरखाव सरल बनाने के लिए

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

एक डेटाबेस को संकुचित / सिकोड़ना [/ कॉम्पैक्ट]

ऐसे कई कारक हैं जो SQL सर्वर डेटाबेस का उपयोग करते हुए भौतिक डिस्क स्थान में योगदान करते हैं। कुछ लोगों का नाम बताने के लिए:

  • समय के साथ जैसे रिकॉर्ड जोड़े जाते हैं, हटाए जाते हैं औरअद्यतन किया गया, SQL लगातार तालिकाओं को प्रदर्शन करने के लिए अस्थायी डेटा संरचनाओं को बनाने के साथ-साथ तालिकाओं को लगातार बढ़ रहा है और सिकुड़ रहा है। डिस्क भंडारण जरूरतों को समायोजित करने के लिए, SQL सर्वर डेटाबेस के आकार (आमतौर पर 10%) की आवश्यकता के रूप में वृद्धि करेगा ताकि डेटाबेस फ़ाइल का आकार लगातार बदल नहीं रहा है। हालांकि यह प्रदर्शन के लिए आदर्श है, यह उपयोग किए गए भंडारण स्थान के साथ एक डिस्कनेक्ट का कारण बन सकता है क्योंकि यदि, उदाहरण के लिए, आप बहुत बड़ी संख्या में रिकॉर्ड जोड़ते हैं जो डेटाबेस को बढ़ने का कारण बनता है और बाद में इन रिकॉर्डों को हटा देता है, तो SQL सर्वर स्वचालित रूप से इसे पुनः प्राप्त नहीं करेगा। डिस्क में जगह।
  • यदि आप अपने डेटाबेस पर पूर्ण पुनर्प्राप्ति मोड का उपयोग कर रहे हैं, तो ट्रांसेक्शनल लॉग फ़ाइल (LDF) विशेष रूप से अद्यतनों की उच्च मात्रा के साथ डेटाबेस पर काफी बड़ी हो सकती है।

डेटाबेस को संकुचित करना (या सिकोड़ना) होगाअप्रयुक्त डिस्क स्थान को पुनः प्राप्त करें। छोटे डेटाबेस (200 एमबी या उससे कम) के लिए यह आमतौर पर बहुत अधिक नहीं होगा, लेकिन बड़े डेटाबेस (1 जीबी या अधिक) के लिए पुनः प्राप्त स्थान महत्वपूर्ण हो सकता है।

डेटाबेस रींडेक्सिंग [/ Reindex]

बहुत कुछ लगातार बनाना, संपादन औरफ़ाइलों को हटाने से डिस्क विखंडन हो सकता है, डेटाबेस में रिकॉर्ड डालने, अपडेट करने और हटाने से टेबल विखंडन हो सकता है। व्यावहारिक परिणाम उसी में होते हैं कि पढ़ने और लिखने के संचालन को एक प्रदर्शन हिट होता है। एक पूर्ण सादृश्य नहीं है, जबकि डेटाबेस में तालिकाओं को फिर से जोड़ना अनिवार्य रूप से उन्हें डीफ़्रैग्मेन्ट करता है। कुछ मामलों में, यह डेटा पुनर्प्राप्ति की गति को महत्वपूर्ण रूप से बढ़ा सकता है।

SQL सर्वर के काम करने के तरीके के कारण तालिकाओं का होना आवश्यक हैव्यक्तिगत रूप से reindexed। बड़ी संख्या में तालिकाओं वाले डेटाबेस के लिए यह मैन्युअल रूप से करने के लिए वास्तविक दर्द हो सकता है, लेकिन हमारी स्क्रिप्ट संबंधित डेटाबेस में प्रत्येक तालिका को हिट करती है और सभी अनुक्रमितों का पुनर्निर्माण करती है।

सत्यनिष्ठता सत्यापित करें [/ सत्यापित करें]

एक डेटाबेस के लिए दोनों कार्यात्मक रहने के लिएऔर सटीक परिणाम देते हैं, कई अखंडता आइटम हैं जो जगह में होने चाहिए। शुक्र है, शारीरिक और / या तार्किक अखंडता समस्याएं बहुत आम नहीं हैं, लेकिन अपने डेटाबेस पर कभी-कभी अखंडता सत्यापन प्रक्रिया चलाने और परिणामों की समीक्षा करना अच्छा अभ्यास है।

जब हमारी स्क्रिप्ट के माध्यम से सत्यापन प्रक्रिया को चलाया जाता है तो केवल त्रुटियां ही बताई जाती हैं, इसलिए कोई भी खबर अच्छी खबर नहीं होती है।

स्क्रिप्ट का उपयोग करना

SQLMaint बैच स्क्रिप्ट SQL के साथ संगत है2005 और उच्चतर और एक मशीन पर चलाया जाना चाहिए जिसमें SQLCMD उपकरण स्थापित है (SQL सर्वर स्थापना के भाग के रूप में स्थापित)। यह अनुशंसा की जाती है कि आप इस स्क्रिप्ट को अपने Windows PATH चर (यानी C: Windows) में सेट किए गए स्थान में छोड़ दें ताकि इसे आसानी से कमांड लाइन से किसी अन्य एप्लिकेशन की तरह कहा जा सके।

सहायता जानकारी देखने के लिए, बस दर्ज करें:

SQLMaint /?

छवि

उदाहरण

एक विश्वसनीय कनेक्शन का उपयोग करके "MyDB" डेटाबेस पर एक कॉम्पैक्ट और फिर एक सत्यापन चलाने के लिए:

SQLMaint MyDB / कॉम्पैक्ट / सत्यापित करें

नाम "उदाहरण" पर "MyDB" पर एक रेनडेक्स और फिर कॉम्पैक्ट करने के लिए "123456" पासवर्ड के साथ "सा" उपयोगकर्ता का उपयोग करके विशेष:

SQLMaint MyDB /S:.Special / U: sa / P: 123456 / Reindex / Compact

अंदर से एक बैच स्क्रिप्ट का उपयोग करना

जबकि SQLMaint बैच स्क्रिप्ट का उपयोग कमांड लाइन से एक एप्लिकेशन की तरह किया जा सकता है, जब आप इसे किसी अन्य बैच स्क्रिप्ट के अंदर उपयोग कर रहे हैं, तो इसे CALL कीवर्ड से पहले होना चाहिए।

उदाहरण के लिए, यह स्क्रिप्ट विश्वसनीय प्रमाणीकरण का उपयोग करते हुए डिफ़ॉल्ट SQL सर्वर इंस्टॉलेशन पर प्रत्येक गैर-सिस्टम डेटाबेस पर सभी रखरखाव कार्यों को चलाता है:

@ECHO रवाना
सेटलाक सक्षम करें
सेट DBList = "% TEMP% DBList.txt"
SqlCmd -E -h-1 -w 300 -Q “सेट नॉटकाउंट ऑन; Master.dbo.sysDat डेटाबेस से नाम का चयन करें, जहां नाम नहीं है (F मास्टर ’, d मॉडल’,, msdb ’, p tempdb’) ”>% DBList%
के लिए / एफ "यूज़बैकq टोकन = 1%% आई में (% DBList%) DO)
कॉल SQLMaint "%% i" / कॉम्पैक्ट / Reindex / सत्यापित करें
ECHO ++++++++++++++
)
यदि EXIST% DBList% DEL / F / Q% DBList%
ENDLOCAL

SysadminGeek.com से SQLMaint बैच स्क्रिप्ट डाउनलोड करें