पिछले एक साल में, मैंने Azure SQL डेटाबेस पर कई सत्र प्रस्तुत किए हैं और साथ ही साथ कई लेख और ब्लॉग भी लिखे हैं। मुझसे अक्सर पूछा जाता है कि क्या Azure SQL डेटाबेस का उपयोग करते समय डेटाबेस रखरखाव अभी भी एक महत्वपूर्ण कारक है। हां - इंडेक्स मेंटेनेंस, स्टैटिस्टिक्स अपडेट और कंसिस्टेंसी चेकिंग जैसे कार्य अभी भी महत्वपूर्ण हैं, और इन कार्यों को शेड्यूल करना डीबीए पर निर्भर है। यह भ्रम Azure SQL डेटाबेस के एक सेवा के रूप में एक प्लेटफ़ॉर्म होने और Microsoft के बुनियादी ढांचे के साथ-साथ बैकअप को संभालने के लिए जिम्मेदार होने से उपजा है। जबकि भौतिक भ्रष्टाचार के कुछ पहलुओं के लिए जिम्मेदार ठहराया जा सकता है, डेटाबेस के भीतर तार्किक भ्रष्टाचार नहीं है। इसी कारण से, मैं अब भी ग्राहकों को DBCC CHECKDB
run चलाने की सलाह देता हूं यह सुनिश्चित करने के लिए कि वे पूरी तरह सुरक्षित हैं।
Azure SQL डेटाबेस के साथ काम करने वाले किसी भी नए DBA के साथ जो समस्या उत्पन्न होती है, वह यह है कि SQL सर्वर एजेंट में कोई अंतर्निहित नहीं है जैसा कि हम SQL सर्वर मानक और एंटरप्राइज़ संस्करणों के साथ उपयोग करते हैं।
Azure SQL डेटाबेस के विरुद्ध रखरखाव कार्य शेड्यूल करने के लिए, आपके पास कई विकल्प हैं:
- लिंक किए गए सर्वर
- डेटाबेस रखरखाव योजनाएं
- पावरशेल
- Azure सेवाएँ
- लोचदार नौकरियां
निम्नलिखित डेमो मानते हैं कि आपने अपने Azure SQL डेटाबेस को दूरस्थ रूप से एक्सेस करने के लिए लॉगिन खाते, फ़ायरवॉल नियम और अन्य सुरक्षा सेटिंग्स पहले ही कॉन्फ़िगर कर ली हैं।
लिंक किए गए सर्वर
लिंक किए गए सर्वर का उपयोग करके Azure SQL डेटाबेस से कनेक्ट करना एक बहुत ही सामान्य तरीका है क्योंकि अधिकांश DBA पहले से ही लिंक किए गए सर्वर बनाने और प्रबंधित करने से परिचित हैं। लिंक किए गए सर्वर का उपयोग करने वाले क्लाइंट को मैंने जिन दो सबसे सामान्य तरीकों से देखा है, वे प्रदाता के रूप में ODBC ड्राइवर्स के लिए SQL सर्वर नेटिव क्लाइंट या Microsoft OLE DB प्रदाता के साथ हैं। यदि आप मूल क्लाइंट का उपयोग करते हैं, तो आपको डेटा स्रोत के रूप में सर्वर का नाम देना होगा; हालाँकि यदि ODBC ड्राइवर का उपयोग कर रहे हैं, तो आपको कनेक्शन स्ट्रिंग प्राप्त करने और प्रदाता स्ट्रिंग के रूप में उपयोग करने की आवश्यकता होगी। ये दोनों मान आपके डेटाबेस के लिए Azure पोर्टल में पाए जा सकते हैं। एक बार जब आप अपने डेटाबेस पर क्लिक करते हैं, तो आपको सर्वर का नाम और डेटाबेस कनेक्शन स्ट्रिंग्स दिखाने का विकल्प दिखाई देगा। यह सर्वर नाम, sqlperformance.database.windows.net वह है जो मैं SQL सर्वर नेटिव क्लाइंट डेटा स्रोत के लिए उपयोग करूंगा।
जब आप “डेटाबेस कनेक्शन स्ट्रिंग्स दिखाएँ” पर क्लिक करते हैं, तो आपके पास वर्तमान में ADO.NET, JDBC, ODBC और PHP के विकल्प होते हैं। ODBC के लिए कनेक्शन स्ट्रिंग देखने के लिए, ODBC टैब पर क्लिक करें।
आगे आपको SSMS में लिंक्ड सर्वर बनाना होगा। "सर्वर ऑब्जेक्ट" के अंतर्गत, "लिंक्ड सर्वर" पर राइट क्लिक करें, "नया लिंक्ड सर्वर" चुनें, और अपनी डेटा स्रोत प्रदाता पसंद के आधार पर आवश्यक जानकारी टाइप करें।
अगला "सुरक्षा" पर क्लिक करें और अपनी प्राथमिकताओं को परिभाषित करें। आमतौर पर मुझे दिए गए दूरस्थ लॉगिन और पासवर्ड के साथ "इस सुरक्षा संदर्भ का उपयोग करके बने रहें" विकल्प दिखाई देता है।
एक बार जब आप यह सब परिभाषित कर लें, तो ओके पर क्लिक करें। अब आप अपने नए लिंक किए गए सर्वर पर राइट क्लिक कर सकते हैं और कनेक्शन का परीक्षण कर सकते हैं।
अब आप किसी भी संग्रहीत कार्यविधि को कॉल करने के लिए लिंक किए गए सर्वर को संदर्भित कर सकते हैं, जैसे कि ओला हॉलेंग्रेन के इंडेक्स ऑप्टिमाइज़ और डेटाबेसइंटेग्रिटीचेक सीधे SQL एजेंट जॉब चरण में Azure SQL डेटाबेस के विरुद्ध।
डेटाबेस रखरखाव योजनाएं
यदि आप अपने रखरखाव के लिए डेटाबेस रखरखाव योजना का उपयोग करने की योजना बना रहे हैं, तो प्रक्रिया थोड़ी आसान है। आरंभ करने के लिए, बस मैन्युअल रूप से या विज़ार्ड का उपयोग करके अपनी रखरखाव योजना बनाएं। यदि आप विज़ार्ड का उपयोग कर रहे हैं, तो एक बार रखरखाव योजना बनाने के बाद, आप योजना को संपादित कर सकते हैं, और फिर Azure कनेक्शन जोड़ सकते हैं। फिर आप नए कनेक्शन का उपयोग करने के लिए प्रत्येक कार्य को बदलते हैं। आपकी कनेक्शन स्क्रीन निम्न के समान दिखनी चाहिए:
अब आप अपने डेटाबेस रखरखाव योजना को अपनी रखरखाव विंडो के दौरान चलाने के लिए शेड्यूल कर सकते हैं।
पावरशेल
पावरशेल दोहराए जाने योग्य कार्य के साथ काम करने के लिए एक उत्कृष्ट विकल्प है और एज़्योर एसक्यूएल डेटाबेस के साथ पावरशेल का उपयोग सीधे आगे है। आप Invoke-SqlCmd फ़ंक्शन का उपयोग अपने डेटाबेस के विरुद्ध कथनों को क्वेरी या निष्पादित करने के लिए कर सकते हैं।
एक सामान्य तरीका यह है कि निम्न के समान स्क्रिप्ट का उपयोग किया जाए:
$params = @{ 'Database' = 'YourDatabase' 'ServerInstance' = 'instance.database.windows.net' 'Username' = 'UserName' 'Password' = 'ComplexP@$$word' 'Query' = 'Your Query Here' } Invoke-Sqlcmd @params
अपनी क्वेरी के लिए, आप Ola Hallengren के इंडेक्स ऑप्टिमाइज़ और कंसिस्टेंसी चेक, या किसी भी कस्टम स्क्रिप्ट का उपयोग कर सकते हैं जिसका आप उपयोग कर रहे हैं। फिर आपको अपने संगठन के लिए उपयोग किए जाने वाले किसी भी शेड्यूलर का उपयोग करके अपनी पावरशेल स्क्रिप्ट को शेड्यूल करना होगा।
Azure सेवाएं
Azure प्लेटफ़ॉर्म में निर्मित Azure Automation है और आरंभ करने के लिए, आपको एक स्वचालन खाता बनाना होगा। आपको खाते के लिए एक नाम प्रदान करना होगा, अपनी सदस्यता, संसाधन समूह, स्थान का चयन करना होगा और यह निर्धारित करना होगा कि क्या आप एक Azure रन अस खाता बनाना चाहते हैं।
एक बार जब आप अपना खाता बना लेते हैं, तो आप रनबुक बनाना शुरू कर सकते हैं। आप रनबुक के साथ कुछ भी कर सकते हैं। कई मौजूदा रन बुक हैं जिन्हें आप ब्राउज़ कर सकते हैं और अपने स्वयं के उपयोग के लिए संशोधित कर सकते हैं, जिसमें प्रावधान, निगरानी, जीवन चक्र प्रबंधन, और बहुत कुछ शामिल हैं।
आप रनबुक ऑफ़लाइन बना सकते हैं, या Azure पोर्टल का उपयोग कर सकते हैं, और वे PowerShell का उपयोग करके बनाए गए हैं। इस उदाहरण में, हम पावरशेल डेमो से कोड का पुन:उपयोग करेंगे और यह भी प्रदर्शित करेंगे कि हम अपने मौजूदा पावरशेल कोड को चलाने के लिए बिल्ट इन एज़्योर सर्विस शेड्यूलर का उपयोग कैसे कर सकते हैं और ऑन-प्रिमाइसेस शेड्यूलर, टास्क शेड्यूलर या एज़्योर वीएम पर निर्भर नहीं रहना है। नौकरी निर्धारित करने के लिए।
रनबुक पर क्लिक करके प्रारंभ करें
अगला "एक रनबुक जोड़ें" पर क्लिक करें
"नई रनबुक बनाएं" पर क्लिक करें
एक नाम और रनबुक प्रकार प्रदान करें, मैंने अपने डेमो के लिए पावरशेल का चयन किया है।
फिर आप अपनी नई रनबुक के लिए संपादन स्क्रीन में हैं। यहां आप विवरण कॉन्फ़िगर कर सकते हैं और अपनी रनबुक बना सकते हैं। इस डेमो के लिए, मैं सिर्फ एक डेटाबेस के खिलाफ एक संग्रहीत कार्यविधि को कॉल करने के लिए एक PowerShell स्क्रिप्ट चला रहा हूँ। एक बार जब आप अपना पूरा कोड तैयार कर लेते हैं, तो आप अपनी रनबुक को प्रकाशित और सहेज सकते हैं।
यहां से, आप रनबुक शुरू कर सकते हैं और सब कुछ उसी के अनुसार मान्य कर सकते हैं, साथ ही रनबुक को विशिष्ट समय पर चलाने के लिए शेड्यूल कर सकते हैं। आइए "शेड्यूल" पर क्लिक करके इस प्रक्रिया को पूरा करें
हमें "अपनी रनबुक से एक शेड्यूल लिंक करें" पर क्लिक करना होगा और चूंकि हमने पहले कोई शेड्यूल नहीं बनाया है, इसलिए हमें "एक नया शेड्यूल बनाएं" पर क्लिक करके एक नया शेड्यूल परिभाषित करना होगा।
जैसा कि हम SQL सर्वर एजेंट में करते हैं, एक शेड्यूल नाम, यदि आप चाहें तो एक विवरण प्रदान करें, कब शुरू करें, और इसे कितनी बार चलाना चाहिए। मैंने इसे हर दिन 2AM पर होने वाला सेट किया है।
अब मेरे पास एक प्रकाशित रनबुक है, जो मेरे डेटाबेस में से एक पर इंडेक्स रखरखाव करने के लिए प्रत्येक रात 2AM पर चलने के लिए निर्धारित है।
लोचदार नौकरियां
इलास्टिक जॉब्स अभी भी पूर्वावलोकन में है, इसलिए स्क्रीन और कार्यक्षमता में बदलाव की उच्च संभावना के कारण मैं विस्तृत विवरण में नहीं जाऊंगा।
इलास्टिक जॉब्स का उपयोग करने के लिए आवश्यक है कि आपने एक इलास्टिक डेटाबेस पूल को परिभाषित किया हो और इसके खिलाफ जॉब चलाने के लिए पूल में कम से कम एक डेटाबेस असाइन किया हो। एक बार जब आप इलास्टिक पूल बना लेते हैं और एक डेटाबेस जोड़ लेते हैं, तो आप क्रिएट जॉब पर क्लिक कर सकते हैं।
अपनी नौकरी को एक वर्णनात्मक नाम दें और डेटाबेस से कनेक्ट करने के लिए उपयोगकर्ता नाम और पासवर्ड प्रदान करें, साथ ही वह स्क्रिप्ट जिसे आप चलाना चाहते हैं। सहेजें पर क्लिक करें और अब आपके पास एक लोचदार काम है।
फिर आप कार्य को चलाने, स्क्रिप्ट देखने या कार्य के चलने पर उसे रद्द करने का विकल्प चुन सकते हैं।
जबकि कुछ चीजें हैं जो आप एज़्योर पोर्टल के माध्यम से लोचदार नौकरियों के साथ कर सकते हैं, वास्तविक शक्ति और कॉन्फ़िगरेशन विकल्प पावरशेल एपीआई के माध्यम से उपलब्ध हैं। किसी कार्य को शेड्यूल करने के लिए, आपको cmdlet New-AzureSQLJobSchedule का उपयोग करना होगा। अतिरिक्त सुविधाओं और नौकरियों को शेड्यूल करने के तरीके के बारे में अधिक विवरण यहां पाया जा सकता है:
- पावरशेल का उपयोग करके SQL डेटाबेस इलास्टिक जॉब बनाएं और प्रबंधित करें
कुल मिलाकर मुझे इलास्टिक जॉब्स फीचर पसंद है और उम्मीद है कि जब इसे आम तौर पर उपलब्ध कराया जाएगा, तो अधिक कार्यक्षमता को पावरशेल के साथ प्रबंधित किए बिना Azure पोर्टल में बनाया जाएगा। मुझे यह पसंद है कि आप टी-एसक्यूएल को सीधे पावरशेल के भीतर चलाए बिना चला सकते हैं और यह पूल में सभी डेटाबेस के खिलाफ कैसे चल सकता है।
सारांश
जब Azure SQL डेटाबेस की बात आती है, हाँ, आप अभी भी अपने डेटाबेस पर कुछ रखरखाव के लिए ज़िम्मेदार हैं। आपके पास कार्य शेड्यूल करने के कई तरीके हैं, और आपकी आवश्यकता और आपके परिवेश के आकार के आधार पर, कुछ विकल्प बेहतर समाधान बनाते हैं। यदि आपके पास ऑन-प्रिमाइसेस या Azure VMs SQL सर्वर के साथ पहले से कॉन्फ़िगर है, और एक छोटा Azure परिनियोजन है, तो लिंक किए गए सर्वर और डेटाबेस रखरखाव योजनाएँ त्वरित और आसान तरीके हैं। पावरशेल हमेशा एक अच्छा विकल्प है, आपको बस स्क्रिप्ट चलाने के लिए शेड्यूलिंग के लिए एक समाधान खोजना होगा। एज़्योर ऑटोमेशन एक बहुत ही मजबूत समाधान है जिससे आप किसी भी चीज़ को पूरा करने के लिए रनबुक बना सकते हैं और आसानी से रनबुक को शेड्यूल कर सकते हैं और इलास्टिक जॉब एक और बेहतरीन एज़्योर आधारित समाधान है यदि आपके पास ऐसे कार्य हैं जिन्हें आपको इलास्टिक पूल में डेटाबेस के समूह के विरुद्ध चलाने की आवश्यकता है।