MS SQL Server में उच्च उपलब्धता (High Availability - HA)
उच्च उपलब्धता (HA) एक समाधान / प्रक्रिया / तकनीक है जो यह सुनिश्चित करती है कि एप्लिकेशन / डेटाबेस किसी भी स्थिति में 24/7 सुलभ हों, चाहे वह इरादतन हो या अनपेक्षित।
मूल रूप से, MS SQL Server में डेटाबेस उपलब्धता स्थापित करने के लिए 5 विकल्प हैं।
- Replication (प्रतिकृति)
- Log Shipping (लॉग शिपिंग)
- Mirroring (मिररिंग)
- Clustering (क्लस्टरिंग)
- AlwaysON Availability Groups (ऑलवेजऑन उपलब्धता समूह)
Replication (प्रतिकृति)
मूल डेटा को प्रतिकृति कार्य (एजेंट / जॉब) के माध्यम से गंतव्य पर कॉपी किया जाता है, ऑब्जेक्ट स्तर पर तकनीक का उपयोग करके। जानने योग्य कुछ शर्तें:
Publisher (प्रकाशक) स्रोत सर्वर है।
- Distributor (वितरक) वैकल्पिक है, सब्सक्राइबर (Subscriber) को कॉपी किए गए डेटा को संग्रहीत करता है।
- Subscriber गंतव्य सर्वर है।
Log Shipping (लॉग शिपिंग)
स्रोत डेटा को Transaction Log बैकअप कार्य के माध्यम से गंतव्य पर कॉपी किया जाता है, डेटाबेस-स्तर की तकनीक का उपयोग करके। कुछ शर्तें:
- Primary Server (प्राथमिक सर्वर) स्रोत सर्वर है।
- Secondary Server (द्वितीयक सर्वर) गंतव्य सर्वर है।
- Monitoring Server (निगरानी सर्वर) वैकल्पिक है, Log Shipping स्थिति द्वारा निगरानी की जाती है।
Mirroring (मिररिंग)
प्राथमिक डेटा को प्रक्षेपण और पोर्ट नंबर कनेक्शन की मदद से नेटवर्क लेनदेन के माध्यम से द्वितीयक पर कॉपी किया जाता है, डेटाबेस-स्तर की तकनीक का उपयोग करके। कुछ शर्तें:
- Principal Server (मूल सर्वर) स्रोत सर्वर है।
- Mirror Server (मिरर सर्वर) गंतव्य सर्वर है।
- Witness Server (विटनेस सर्वर) वैकल्पिक है, स्वचालित फॉल्ट टॉलरेंस समाधानों के लिए उपयोग किया जाता है।
Clustering (क्लस्टरिंग)
डेटा एक सामान्य स्थान पर संग्रहीत होता है, जिसका उपयोग प्राथमिक और द्वितीयक दोनों सर्वरों द्वारा किया जाता है, इंस्टेंस स्तर पर तकनीक का उपयोग करके। आपको इस साझा स्टोरेज पर Windows Clustering सेट अप करने की आवश्यकता है। कुछ शर्तें:
- Active Node (सक्रिय नोड) वह जगह है जहां SQL Services चलता है।
- Passive Node (निष्क्रिय नोड) वह जगह है जहां SQL Services नहीं चलता है।
AlwaysON Availability Groups (ऑलवेजऑन उपलब्धता समूह)
प्राथमिक डेटा को लेनदेन के माध्यम से द्वितीयक पर स्थानांतरित किया जाएगा, डेटाबेस समूह स्तर पर तकनीक का उपयोग करके। Windows Clustering सेटिंग्स को सामान्य स्टोरेज की आवश्यकता नहीं होती है। कुछ शर्तें:
- Primary Replica (प्राथमिक प्रतिकृति) स्रोत सर्वर है।
- Secondary Replica (द्वितीयक प्रतिकृति) गंतव्य सर्वर है।
Mirroring और Log Shipping के लिए उच्च उपलब्धता कॉन्फ़िगर करने के चरण
नीचे Clustering, AlwaysON Availability Groups और Replication को छोड़कर HA (Mirroring और Log Shipping) को कॉन्फ़िगर करने के चरण दिए गए हैं।
चरण 1 - मूल डेटाबेस की एक पूर्ण प्रति और T-log प्रति प्राप्त करें
उदाहरण के लिए:
TESTINSTANCE को प्राथमिक SQL Server सर्वर के रूप में और DEVINSTANCE को द्वितीयक सर्वर के रूप में TestDB डेटाबेस के लिए Mirroring / Log Shipping कॉन्फ़िगर करने के लिए, स्रोत सर्वर (TESTINSTANCE) पर पूर्ण बैकअप और T-log प्राप्त करने के लिए निम्न क्वेरी का उपयोग करें।
SQL Server TESTINSTANCE से कनेक्ट करें और एक नई क्वेरी खोलें, नीचे दिया गया कोड लिखें और चित्र में दिखाए अनुसार निष्पादित करें।
Backup database TestDB to disk = 'D:testdb_full.bak'
GO
Backup log TestDB to disk = 'D:testdb_log.trn'

बैकअप प्राप्त करने की क्वेरी
चरण 2 - बैकअप फ़ाइल को गंतव्य सर्वर पर कॉपी करें
इस मामले में हमारे पास केवल एक भौतिक सर्वर और SQL Server Instance के दो संस्करण हैं, इसलिए हमें कॉपी करने की आवश्यकता नहीं है। लेकिन अगर SQL Server Instance की दो प्रतियाँ दो अलग-अलग भौतिक सर्वरों पर स्थित हैं, तो उन दो फ़ाइलों को द्वितीयक सर्वर पर उस स्थान पर कॉपी करें जहां DEVINSTANCE स्थापित है।

बैकअप फ़ाइल को गंतव्य सर्वर पर कॉपी करें
चरण 3 - norecovery चुनकर गंतव्य सर्वर पर बैकअप फ़ाइल के साथ डेटाबेस को पुनर्स्थापित करें
उदाहरण के लिए।
SQL Server DEVINSTANCE से कनेक्ट करें और एक नई क्वेरी New Query खोलें। मूल डेटाबेस के समान नाम TestDB के साथ डेटाबेस को पुनर्स्थापित करने के लिए निम्न कोड लिखें। आप Log Shipping कॉन्फ़िगरेशन के लिए एक अलग नाम का उपयोग कर सकते हैं। पुनर्स्थापित करने के लिए norecovery विकल्प का उपयोग करें।
Restore database TestDB from disk = 'D:TestDB_full.bak'
with move 'TestDB' to 'D:DATATestDB_DR.mdf',
move 'TestDB_log' to 'D:DATATestDB_log_DR.ldf',
norecovery
GO
Restore database TestDB from disk = 'D:TestDB_log.trn' with norecovery

फ़ाइल सहेजकर डेटाबेस पुनर्स्थापित करें
DEVINSTANCE सर्वर पर डेटाबेस फ़ोल्डर को रीफ्रेश करें ताकि यह देखा जा सके कि डेटाबेस TestDB को नीचे दिखाए अनुसार पुनर्प्राप्ति स्थिति के साथ पुनर्स्थापित किया गया है।

डेटाबेस पुनर्प्राप्ति स्थिति
चरण 4 - नीचे दिखाए अनुसार HA (Log Shipping / Mirroring) कॉन्फ़िगर करें
उदाहरण के लिए:
SQL Server TestDB डेटाबेस TESTINSTANCE (रूट सर्वर) पर राइट-क्लिक करें और Properties पर क्लिक करें। नीचे दी गई स्क्रीन दिखाई देगी।

Log Shipping / Mirroring कॉन्फ़िगर करना