यह मुख्य रूप से बुनियादी अवधारणाओं पर केंद्रित SQL सर्वर में स्वचालन के बारे में एक परिचयात्मक लेख है। SQL सर्वर ऑटोमेशन के साथ शुरुआत करने वालों की मदद करने के लिए हम कुछ मानक प्रथाओं और कुछ उदाहरणों पर चर्चा करेंगे।
यह आलेख इन कार्यों को मैन्युअल रूप से करने के लिए आवश्यक समय और प्रयास को बचाने के लिए SQL सर्वर कार्यों को स्वचालित करने के महत्व पर भी प्रकाश डालता है।
इसके अतिरिक्त, हम उन मामलों को देखेंगे जिनमें इस तथ्य के बावजूद कि स्वचालन समय और प्रयास बचाता है, SQL सर्वर कार्यों को स्वचालित करना एक अच्छा विचार नहीं है।
SQL सर्वर को स्वचालित करने के बारे में
आइए पहले 'ऑटोमेशन' शब्द से परिचित हों और वास्तव में SQL सर्वर टास्क ऑटोमेशन क्या है।
स्वचालन क्या है?
ऑटोमेशन एक व्यापक शब्द है जिसमें कई तरह की चीजें शामिल होती हैं, लेकिन इसका आम तौर पर मतलब प्रोग्रामिंग टूल और डिवाइस से होता है जो बहुत कम या बिना किसी मानवीय हस्तक्षेप के स्वचालित रूप से कार्यों का एक सेट करने की अनुमति देता है।
SQL सर्वर स्वचालन क्या है?
SQL सर्वर स्वचालन के भी कई अर्थ हो सकते हैं, लेकिन यह समय और प्रयास बचाने के लिए SQL सर्वर व्यवस्थापकीय कार्यों को स्वचालित करने से सबसे अधिक संबंधित है।
SQL सर्वर और होस्ट किए गए डेटाबेस (डेटाबेस) के प्रबंधन के लिए जिम्मेदार डेटाबेस एडमिनिस्ट्रेटर या इंफ्रास्ट्रक्चर टीम अक्सर डेटाबेस रखरखाव कार्यों को करने में बहुत समय व्यतीत करते हैं जिन्हें विभिन्न तरीकों से स्वचालित किया जा सकता है और निर्दिष्ट अंतराल पर चलाने के लिए निर्धारित किया जा सकता है।
इस लेख में, हम मुख्य रूप से SQL सर्वर व्यवस्थापन कार्यों के स्वचालन पर ध्यान केंद्रित कर रहे हैं।
जब आपको SQL कार्यों को स्वचालित करना चाहिए
SQL सर्वर प्रशासनिक कार्य को स्वचालित करने से पहले इसे लागू करने से पहले सावधानीपूर्वक योजना बनाने की आवश्यकता होती है। कोई भी SQL प्रशासनिक कार्य जैसे बैकअप, डेटाबेस रखरखाव, या डेटाबेस निगरानी आदर्श रूप से स्वचालित होना चाहिए यदि यह बिना किसी अन्य समस्या के उद्देश्य को पूरा करता है।
जब आपको SQL कार्यों को स्वचालित नहीं करना चाहिए
अधिकांश मामलों में स्वचालन बहुत उपयोगी होने के बावजूद, अभी भी कुछ कार्य ऐसे हैं जिन्हें बेहतर ढंग से मैन्युअल रूप से किया जाना चाहिए।
उदाहरण के लिए, यदि किसी डेटाबेस व्यवस्थापन कार्य को पूरा करने में 5 मिनट का समय लगता है और उस कार्य को स्वचालित करने के लिए ऑटोमेशन स्क्रिप्ट लिखने और परीक्षण करने के लिए 15 घंटे की आवश्यकता होती है, तो यह कार्य मैन्युअल रूप से करना अधिक प्रभावी होता है। bacsql
कुछ कार्य ऐसे हैं जो स्वचालित नहीं होने चाहिए। उदाहरण के लिए, यह अक्सर एक डीबीए के काम का एक हिस्सा होता है, जो इसे लाइव सर्वर पर तैनात करने से पहले डेटाबेस परिवर्तनों की जांच करता है। यह सुनिश्चित करने के लिए किया जाता है कि परिवर्तन लक्ष्य डेटाबेस के साथ संगत हैं। इस कार्य को स्वचालित करने में लाभों की तुलना में अधिक जोखिम हैं, इसलिए इसे वैसे ही छोड़ दिया जाना बेहतर है।
सामान्यतया, यदि किसी डेटाबेस कार्य में आपकी कंपनी के नियमों और विनियमों के अनुसार मैन्युअल हस्तक्षेप की आवश्यकता होती है (अर्थात इसे किसी व्यक्ति/टीम द्वारा देखा या प्रबंधित किया जाना चाहिए ताकि अगले चरण/चरण में जा सकें), तो उस कार्य को पूरी तरह से स्वचालित करना है तब तक संभव नहीं है जब तक कि इसे आपकी कंपनी के शीर्ष प्रबंधन द्वारा अनुमोदित नहीं किया जाता है।
एसक्यूएल ऑटोमेशन के उदाहरण
आइए अब SQL स्वचालन के कुछ उदाहरण देखें।
डेटाबेस बैकअप परिदृश्य (डीबीए परिप्रेक्ष्य)
डेटाबेस एडमिनिस्ट्रेटर (डीबीए) कॉर्पोरेट डेटाबेस का ख्याल रखते हैं और उनके दिन-प्रतिदिन के कार्यों में डेटाबेस से संबंधित अनुरोधों को पूरा करना और डेटाबेस सर्वर का प्रबंधन करना शामिल है।
एक डीबीए अपना अधिकांश समय डेटाबेस में छोटे बदलावों को प्रबंधित करने और तैनात करने और डेटाबेस सर्वर की देखभाल करने में व्यतीत करता है।
एक DBA को निम्नलिखित सुसंगत कार्य करने होते हैं:
- प्रत्येक कार्य दिवस के अंत में डेटाबेस का दैनिक बैकअप बनाएं
- प्रत्येक सप्ताह के अंत में साप्ताहिक बैकअप बनाएं
- हर महीने के अंत में मासिक बैकअप बनाएं।
एक दैनिक बैकअप में आधा घंटा लगता है और यह आखिरी काम है जो डीबीए दिन के लिए निकलते समय करता है। हालांकि दैनिक बैकअप प्रक्रिया शुरू होने के बाद वे मल्टीटास्क कर सकते हैं, फिर भी उन्हें इस बात पर नज़र रखनी होगी कि यह कैसे सुनिश्चित करेगा कि बैकअप समाप्त हो गया है। ऐसा इसलिए है क्योंकि बैकअप तैयार होने पर बैकअप डिस्क पर संग्रहीत किया जाना चाहिए।
यहां तक कि अगर हम साप्ताहिक और मासिक बैकअप पर खर्च किए गए समय की उपेक्षा करते हैं, तो दैनिक बैकअप को पूरा करने के लिए आवश्यक समय इस प्रक्रिया को पूरा करने के लिए जितना अधिक होगा, क्योंकि डेटाबेस में अधिक से अधिक डेटा होने वाला है। भले ही शुरुआत में दैनिक बैकअप करने में आधा घंटा लगता हो, डेटाबेस सिस्टम में डेटा वृद्धि के आधार पर यह समय कुछ हफ़्ते या महीनों में लगभग एक घंटे तक बढ़ सकता है।
यह एक अपरिवर्तनीय कार्य है जिसे लगातार दोहराना पड़ता है, इसलिए एक डीबीए के लिए ऊब जाना या एकाग्रता खोना और गलती करना या एक या दो दिन चूकना संभव है।
यदि कोई DBA इस SQL कार्य को स्वचालित करता है, तो वे न केवल समय और प्रयास को बचाएंगे। गलती करने की संभावना कम से कम होने जा रही है।
दैनिक बैकअप प्रक्रिया को रात के समय शुरू करने के लिए शेड्यूल किया जा सकता है जब कम डेटाबेस इंटरैक्शन होता है। अगले दिन, डीबीए बैकअप की जांच कर सकता है और अधिक महत्वपूर्ण और जरूरी कार्यों के लिए कार्य दिवस के अंतिम घंटे (जो पहले बैकअप प्रक्रिया के लिए उपयोग किया जाता था) का उपयोग कर सकता है।
डेटाबेस विकास और परिनियोजन परिदृश्य
आइए डेटाबेस विकास और परिनियोजन के एक बहुत ही सामान्य उदाहरण पर विचार करें (मैं इस लेख के दायरे में रहने के लिए जानबूझकर परीक्षण को बाहर कर रहा हूं)। एक डेटाबेस डेवलपर डेटाबेस में नई टेबल जोड़ने के लिए SQL सर्वर डेटा टूल्स (SSDT) जैसे डेटाबेस डेवलपमेंट टूल का उपयोग करता है। एक बार यह हो जाने के बाद, वे SQL डेटाबेस प्रोजेक्ट में परिवर्तन सहेजते हैं। इन परिवर्तनों को तब DBA या आधारभूत संरचना टीम को भेजा जाता है, जिन्हें इन परिवर्तनों की समीक्षा करनी होती है और उन्हें लाइव सर्वर पर परिनियोजित करना होता है।
महत्वपूर्ण बिंदु इस प्रकार हैं:
- डेटाबेस डेवलपर्स को मानक प्रथाओं के अनुसार अपने डेटाबेस परिवर्तनों को सीधे लाइव सर्वर पर प्रकाशित नहीं करना चाहिए
- डेटाबेस व्यवस्थापक या लाइव सर्वर का प्रबंधन करने वाली आधारभूत संरचना टीम इन परिवर्तनों की समीक्षा करने से पहले लाइव डेटाबेस में कोई भी परिवर्तन प्रकाशित नहीं कर सकती है ताकि यह सुनिश्चित हो सके कि वे डेटाबेस की स्थिरता को चुनौती नहीं देते हैं।
जैसा कि हमने जो चर्चा की उससे आप समझ सकते हैं, डेटाबेस विकास और परिनियोजन कार्यों को पूरी तरह से स्वचालित करना व्यावहारिक नहीं है और कई सुरक्षा जोखिम पैदा करता है।
तो सबसे अच्छा निर्णय उन चरणों को स्वचालित करना होगा जो डीबीए या आधारभूत संरचना टीम पर निर्भर करते हैं।
डेटाबेस अनुक्रमणिका रखरखाव कार्य
डेटाबेस इंडेक्स परिणाम सेट (पंक्तियों) को डेटाबेस से जल्दी प्राप्त करने में महत्वपूर्ण भूमिका निभाते हैं। हालाँकि, इन अनुक्रमितों को समय के साथ रखरखाव की आवश्यकता होती है। डेटाबेस इंडेक्स रखरखाव को ऑफ-पीक घंटों या स्वचालित के दौरान मैन्युअल रूप से किया जा सकता है। यह बहुत समय लेने वाला कार्य हो सकता है, इसलिए इस कार्य को स्वचालित करना बेहतर है, खासकर जब प्रबंधन करने के लिए डेटाबेस सर्वर से संबंधित कई अन्य चीजें हों।
हालांकि, कुछ विशेषज्ञ इस दृष्टिकोण के साथ तर्क देते हैं और प्रक्रिया पर नजर रखने या यहां तक कि इसे पूरी तरह से मैन्युअल रूप से करने के लिए इंडेक्स रखरखाव को कुछ हद तक सीमित करने की सलाह देते हैं।
जब इंडेक्स रखरखाव की बात आती है, तो निम्नलिखित चीजें डेटाबेस इंडेक्स प्रदर्शन में सुधार कर सकती हैं:
- सूचकांक का पुनर्निर्माण करें
- सूचकांक पुनर्व्यवस्थित करें
- डीफ़्रैग इंडेक्स
- आंकड़े अपडेट करें
SQL कार्यों को स्वचालित कैसे करें
आइए अब एक बहुत ही सरल उदाहरण के बाद SQL कार्य को स्वचालित करने के लिए मूलभूत आवश्यकताओं को देखें।
सेटअप नमूना डेटाबेस
इस पूर्वाभ्यास के लिए निम्नलिखित एकल-तालिका नमूना डेटाबेस की आवश्यकता है जिसे UniversityV6 . कहा जाता है निम्नानुसार स्थापित किया जाना है:
-- (1) Create the UniversityV6 sample database CREATE DATABASE UniversityV6; GO USE UniversityV6 CREATE TABLE [dbo].[Student] ( [StudentId] INT IDENTITY (1, 1) NOT NULL, [Name] VARCHAR (30) NULL, [Course] VARCHAR (30) NULL, [Marks] INT NULL, [ExamDate] DATETIME2 (7) NULL, CONSTRAINT [PK_Student] PRIMARY KEY CLUSTERED ([StudentId] ASC) ); GO
नमूना डेटाबेस बनाने के लिए स्क्रिप्ट चलाएँ:
SQL सर्वर एजेंट प्रारंभ करना
SQL कार्य को स्वचालित करना आमतौर पर SQL सर्वर एजेंट पर निर्भर करता है जब तक कि आप कोई वैकल्पिक मार्ग चुनने का निर्णय नहीं लेते।
पहली चीज जो आपको चाहिए वह यह सुनिश्चित करना है कि SQL सर्वर एजेंट चल रहा है। यदि यह नहीं चल रहा है, तो आपको इसे मैन्युअल रूप से शुरू करना होगा और इसे चालू रखना होगा।
SQL सर्वर इंस्टेंस से कनेक्ट करें और ऑब्जेक्ट एक्सप्लोरर में SQL सर्वर एजेंट नोड देखें। यदि इस नोड पर लाल रंग का 'स्टॉप' आइकन प्रदर्शित होता है, तो यह अभी तक शुरू नहीं हुआ है:
. पर राइट-क्लिक करें एसक्यूएल सर्वर एजेंट नोड और क्लिक करें प्रारंभ:
इसके बाद, आपको पुष्टि करनी होगी कि आप अपने सर्वर पर SQL सर्वर एजेंट सेवा प्रारंभ करना चाहते हैं। क्लिक करें हां ऐसा करने के लिए:
एक बार शुरू होने के बाद, SQL सर्वर एजेंट के पास इसके आगे एक छोटा हरा आइकन प्रदर्शित होगा। अब आप नोड का विस्तार भी कर सकते हैं:
नई नौकरी बनाएं
नौकरियों . पर राइट-क्लिक करें फ़ोल्डर और क्लिक करें नई नौकरी... :
टाइप करें “बैकअप यूनिवर्सिटीV6 स्वचालित कार्य ” और चरण . क्लिक करें बाईं ओर नेविगेशन बार पर:
नया कार्य चरण जोड़ें
इसके बाद, नया click क्लिक करें , चरण नाम के रूप में "बैकअप यूनिवर्सिटीV6" टाइप करें, निम्न SQL स्क्रिप्ट जोड़ें, और ठीक क्लिक करें :
-- Backup the UniversityV6 sample database using the date time stamp DECLARE @BackupName VARCHAR(100) SET @BackupName=CONCAT('C:\Backup\UniversityV6-',FORMAT(GETDATE(),'yyyy-MM-dd-hh-mm-tt'),'.bak') BACKUP DATABASE UniversityV6 TO [email protected] WITH COMPRESSION, INIT; GO
क्लिक करें ठीक कार्य की स्थापना समाप्त करने के लिए।
सृजित कार्य देखें
SQL सर्वर एजेंट तक नीचे स्क्रॉल करें और नव-निर्मित कार्य का पता लगाएं:
नौकरी का परीक्षण करें (स्वचालित कार्य)
विश्वविद्यालय का बैकअप लेंV6 स्वचालित कार्य पर राइट-क्लिक करें और क्लिक करें चरण में कार्य प्रारंभ करें…:
कार्य प्रारंभ और समाप्त होगा:
बैकअप स्थान जांचें
अब, उस स्थान पर जाएँ जहाँ इस स्वचालित कार्य ने एक नया बैकअप बनाया है:
बधाई हो! आपने डेटाबेस बैकअप बनाने का कार्य सफलतापूर्वक स्वचालित कर लिया है। अब आप इसे किसी भी बैकअप ड्राइव को केवल ड्राइव अक्षर का नाम बदलकर स्टोर कर सकते हैं।
कृपया याद रखें कि आपको हमेशा सिस्टम ड्राइव C:के अलावा किसी अन्य बैकअप ड्राइव में बैकअप सहेजना चाहिए। आप P . पर क्लिक करके, कार्य पर राइट-क्लिक करके इस कार्य को लगातार अंतराल पर चलाने के लिए शेड्यूल कर सकते हैं गुण , और फिर अनुसूची . पर क्लिक करें :
करने के लिए चीज़ें
अब जब आप बुनियादी डेटाबेस बैकअप कार्यों को स्वचालित कर सकते हैं, तो कृपया अपने कौशल में सुधार करने के लिए निम्नलिखित प्रयास करें:
- इस कार्य को परीक्षण के रूप में एक सप्ताह के लिए हर दिन दोपहर में चलाने के लिए निर्धारित करें
- एक नई तालिका बनाएं जिसे आंकड़े कहा जाता है निम्नलिखित कॉलम के साथ नमूना डेटाबेस में:
- स्टेटिड (INT)
- स्टेटडेट (DATETIME2)
- कुल पंक्तियाँ (INT)
अब विद्यार्थी के लिए पंक्ति गणना लॉग करने का एक स्वचालित कार्य (नया कार्य) बनाकर स्वयं का परीक्षण करें आंकड़े . में दिनांक/समय के साथ तालिका टेबल। विद्यार्थी तालिका को बार-बार भरने का प्रयास करें।
कार्य को हर घंटे चलाने के लिए शेड्यूल करें और जांचें कि क्या आंकड़े तालिका आपको हर घंटे तालिका की पंक्ति संख्या दिखा कर आपके डेटा प्रविष्टि को दर्शाती है।