Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> SQL Server

SQL Server मिररिंग से निरंतर उपलब्धता प्राप्त करें

डेटाबेस मिररिंग समाधान SQL Server में हाई-अवेलेबिलिटी डेटाबेस मैनेजमेंट सिस्टम बनाने में मदद करता है जो काफी सरल है और मध्यम आकार और निचले स्तर के डेटाबेस के लिए उपयुक्त है।

हाई उपलब्ध डेटाबेस मैनेजमेंट सिस्टम की आवश्यकता तेजी से जरूरी होती जा रही है, कभी-कभी संगठनों और कंपनियों के लिए एक महत्वपूर्ण कारक। हालांकि, हाई उपलब्धता (लगभग हमेशा सक्रिय) प्राप्त करना सरल नहीं है, क्योंकि हमेशा कई कारक होते हैं जो सिस्टम प्रदर्शन को प्रभावित करते हैं: हार्डवेयर समस्याएं, नेटवर्क इंफ्रास्ट्रक्चर, ऑपरेटिंग सिस्टम त्रुटियां, एप्लिकेशन सॉफ्टवेयर त्रुटि, वायरस। लेख वर्तमान में उपयोग किए जा रहे डेटाबेस मैनेजमेंट सिस्टम पर हाई उपलब्धता (HA - High Availability) प्राप्त करने में मदद करने के लिए एक समाधान प्रस्तुत करता है: SQL Server ।

SQL Server पर HA समाधान

फेलओवर क्लस्टर

यह समाधान एक साझा हार्ड ड्राइव का उपयोग करता है - आमतौर पर एक SAN डेटाबेस को रखने के लिए। SQL Server के कई ' इंस्टेंस ' इंस्टॉल होते हैं, प्रत्येक इंस्टेंस एक नोड है, लेकिन एक समय में केवल एक नोड का डेटाबेस पर नियंत्रण होता है। जब इस नोड में कोई समस्या होती है, तो दूसरा नोड डेटाबेस को मैनेज करने के लिए इसे बदल देगा।

लॉग शिपिंग

डेटाबेस की एक अतिरिक्त संरचना मिरर (कॉपी) के रूप में। जब मुख्य डेटाबेस से कोई परिवर्तन या अपडेट होता है, तो इन परिवर्तनों को रिकॉर्ड करने वाली लॉग फाइल मिरर सर्वर इंस्टेंस को भेजी जाएगी। इस तरह, डेटाबेस की एक अपडेटेड कॉपी बनी रहती है। घटना की स्थिति में, कॉपी डेटाबेस को कम समय में मुख्य डेटाबेस में बदल दिया जाएगा।

SQL Server मिररिंग से निरंतर उपलब्धता प्राप्त करें छवि 1: SQL Server सेटअप हमेशा उपलब्ध

रीप्लिकेशन

यदि फेलओवर क्लस्टर और लॉग शिपिंग डेटाबेस स्तर पर हाई-अवेलेबिलिटी सुनिश्चित करने के दो समाधान हैं, तो रीप्लिकेशन केवल डेटाबेस में ऑब्जेक्ट्स के स्तर पर हाई-अवेलेबिलिटी सुनिश्चित करता है जैसे टेबल, व्यू। इन ऑब्जेक्ट्स को स्टोरेज के लिए SQL Server के दूसरे इंस्टेंस में कॉपी किया जाएगा।

SQL Server में डेटा मिररिंग

डेटाबेस मिररिंग (DM) SQL Server में हाई-अवेलेबल डेटाबेस बनाने का नया समाधान है। DM पिछले समाधानों के नुकसान को दूर करता है जैसे:

• फेलओवर क्लस्टर की तुलना में, DM को SANs जैसे विशेष हार्डवेयर की आवश्यकता नहीं होती, जिससे कॉन्फिगरेशन लागत कम होती है

• लॉग शिपिंग की तुलना में, DM एडमिनिस्ट्रेटर के कार्य किए बिना त्रुटि होने पर मिरर मशीन पर स्वचालित रूप से स्विच कर सकता है। लॉग शिपिंग के लिए T-SQL के साथ मैन्युअल कॉन्फिगरेशन आवश्यक है। इसलिए, DM को 'हॉट स्टैंडबाय' कहा जाता है, जब रुकावट का समय (डाउनटाइम) सेकंड में गणना की जा सकती है, और लॉग-शिपिंग को 'वार्म स्टैंडबाय' कहा जाता है, क्योंकि रुकावट का समय मिनटों में या उससे अधिक हो सकता है।

• रीप्लिकेशन की तुलना में , DM श्रेष्ठ है क्योंकि यह पूरे डेटाबेस की रक्षा करता है, और रीप्लिकेशन केवल डेटाबेस के हिस्सों की रक्षा करता है, उदाहरण के लिए मास्टर जैसी टेबल।

हालांकि, DM केवल Enterprise / Developer वर्जन के SQL Server 2005 SP1 / 2008 में उपलब्ध है।

1. SQL Server में DM की संरचना

SQL Server में DM को 3 मुख्य इंस्टेंस की आवश्यकता होती है: 1 इंस्टेंस (प्रिंसिपल भूमिका) डेटाबेस को मैनेज करने के लिए, 1 अतिरिक्त इंस्टेंस (मिरर) डेटाबेस बैकअप सुनिश्चित करने के लिए। एक विटनेस इंस्टेंस दो मुख्य और उप-इंस्टेंस इंस्टेंस के साथ जुड़ता है ताकि डेटाबेस की उपलब्धता की निगरानी और सुनिश्चित की जा सके।

जब विटनेस मौजूद हो: विटनेस सर्वर मुख्य सर्वर और मिरर सर्वर दोनों से जुड़ता है। अब पूरा सिस्टम एक कोरम बन जाता है जिसमें 3 में से 2 घटकों को निर्णय लेने का अधिकार होता है। यदि मुख्य सर्वर में कोई समस्या है, तो विटनेस सर्वर स्वचालित रूप से मिरर सर्वर को मुख्य सर्वर पर स्विच कर देगा। यदि फिर, मुख्य सर्वर फिर से काम कर रहा है, तो मुख्य सर्वर मिरर सर्वर की भूमिका ग्रहण करेगा (2 सर्वर अब एक दूसरे के लिए भूमिकाएं बदलते हैं) जब तक एडमिनिस्ट्रेटर का हस्तक्षेप नहीं होता ( आरेख 1 )।

SQL Server मिररिंग से निरंतर उपलब्धता प्राप्त करें छवि 2: SQL Server सेटअप हमेशा उपलब्ध

जब कोई विटनेस सर्वर न हो: एडमिनिस्ट्रेटर के प्रभाव के बिना स्वचालित रूपांतरण प्रक्रिया काम नहीं करेगी।

SQL Server में ' एंडपॉइंट ' की अवधारणा है जिसे 'कनेक्शन पॉइंट' के रूप में व्याख्या किया जा सकता है, जो SQL Server इंस्टेंस को TCP के माध्यम से एक दूसरे के साथ संवाद करने की अनुमति देता है ( आरेख 2 )।

प्रत्येक एंडपॉइंट को एक संबंधित पते और पोर्ट द्वारा पहचाना जाता है। सैद्धांतिक रूप से, पता पूर्ण डोमेन पता होना चाहिए, लेकिन व्यवहार में इसे चार तरीकों में से एक में उपयोग किया जा सकता है:

- सर्वर नाम के माध्यम से निर्धारित करें। उदाहरण: TCP: // PRINCIPAL: 7024।

- डोमेन नाम के माध्यम से निर्धारित करें। उदाहरण: TCP: //PRINCIPAL.DELTAX.COM: 7024।

- IPv4 के माध्यम से निर्धारित करें। उदाहरण: TCP: //192.168.1.3: 7024।

- IPv6 के माध्यम से निर्धारित करें।

नोट: यदि SQL Server इंस्टेंस एक ही मशीन पर चलता है, तो TCP पोर्ट अलग होना चाहिए।

2. मुख्य सर्वर और द्वितीयक सर्वर के बीच सूचना का आदान-प्रदान

SQL Server मिररिंग से निरंतर उपलब्धता प्राप्त करें छवि 3: SQL Server सेटअप हमेशा उपलब्ध

हाई-स्पीड मोड (हाई-परफॉरमेंस):

हाई-परफॉरमेंस मोड एसिंक्रोनस कॉपी निर्माण से मेल खाता है। मुख्य सर्वर मिरर सर्वर को अपडेट भेजता है और मिरर सर्वर के सफलतापूर्वक अपडेट होने की प्रतीक्षा किए बिना अन्य परिवर्तन करना जारी रखता है।

मिरर सर्वर के अपडेट होने की प्रतीक्षा न करके, मुख्य सर्वर के पास तेज एक्सेस स्पीड होती है और अनावश्यक लोडिंग से बचा जाता है।

इस प्रक्रिया को निम्नलिखित योजना द्वारा चित्रित किया जा सकता है:

हाई-स्पीड मोड के लिए, मिरर सर्वर मुख्य सर्वर की तुलना में हमेशा धीमी गति से अपडेट होता है, और यदि मुख्य सर्वर मिरर सर्वर को डेटा भेजे बिना ऑपरेशन बाधित करता है तो डेटा हानि हो सकती है। हालांकि, यह अलग डेटाबेस भाग अपेक्षाकृत छोटा और स्वीकार्य है। हाई परफॉरमेंस मोड - हाई परफॉरमेंस मोड के लिए विटनेस सर्वर आवश्यक नहीं है।

हाई-सेफ्टी मोड (हाई-सेफ्टी):

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

हाई सिक्योरिटी मोड के लिए हॉट स्टैंडबाय - हॉट स्टैंडबाय सुनिश्चित करने के लिए विटनेस सर्वर आवश्यक है।

3. DM कॉन्फिगरेशन:

SQL Server पर DM कॉन्फिगर करने में 3 बुनियादी चरण होते हैं:

- मुख्य सर्वर पर पूरे डेटाबेस का बैकअप लें और फिर मिरर सर्वर पर रिस्टोर करें।

- संबंधित एंडपॉइंट बनाएं ताकि मुख्य सर्वर, मिरर और विटनेस एक साथ काम कर सकें।

- एक सत्र बनाएं (Database Mirroring Session)

SQL Server मिररिंग से निरंतर उपलब्धता प्राप्त करें छवि 4: SQL Server सेटअप हमेशा उपलब्ध

DM कॉन्फिगरेशन SQL Server Management Studio (SSMS) के इंटरफेस का उपयोग करके किया जा सकता है, या T-SQL के साथ कॉन्फिगर किया जा सकता है।

SQL Server Management Studio के इंटरफेस के साथ कॉन्फिगर करना काफी सरल है, मिरर सर्वर पर डेटा सफलतापूर्वक रिस्टोर करने के बाद, बस डेटाबेस पर राइट-क्लिक करें और ' Mirroring ' चुनें, फिर चरणों का पालन करें।

परिणाम DM सत्र का इनिशियलाइज़ेशन होगा।

SSMS कॉन्फिगरेशन T-SQL के साथ किए जाने पर अधिकांश ऑपरेशन को हटाने की अनुमति देता है, लेकिन यदि आप चाहते हैं, तो आप उच्चतम लचीलेपन को प्राप्त करने के लिए अभी भी T-SQL का उपयोग कर सकते हैं।

T-SQL पर कॉन्फिगरेशन एंडपॉइंट्स को प्रमाणित करने के 2 तरीकों का उपयोग कर सकता है: लॉगिन द्वारा सत्यापन या प्रमाणपत्र द्वारा प्रमाणीकरण। T-SQL कोड पूरा है इसलिए DM कॉन्फिगरेशन काफी लंबा है, इसलिए हम केवल कुछ विशिष्ट चरणों का परिचय देते हैं।

लॉगिन के साथ कॉन्फिगरेशन

मान लीजिए हम SQL Server में लॉग इन करने के लिए Windows अकाउंट का उपयोग करते हैं, SQL Server अकाउंट का उपयोग करने के मामले में भी यही तरीका है।

CREATE LOGIN [PRICIPAL-SRVAdministrator]
FROM WINDOWS
GO

एंडपॉइंट बनाएं:

CREATE ENDPOINT Partner
STATE = STARTED
AS TCP (LISTENER_PORT = 5022)
FOR DATABASE_MIRRORING (
AUTHENTICATION = WINDOWS NEGOTIATE,
ENCRYPTION = SUPPORTED,
ROLE = ALL)
GO

ध्यान दें कि ROLE = ALL के साथ एंडपॉइंट बनाने के लिए प्रिंसिपल और मिरर सर्वर दोनों पर प्रदर्शन करने की आवश्यकता है, विटनेस सर्वर पर, आप ROLE = WITNESS से प्रतिस्थापित करते हैं।

SQL Server मिररिंग से निरंतर उपलब्धता प्राप्त करें छवि 5: SQL Server सेटअप हमेशा उपलब्ध

प्रमाणपत्र द्वारा कॉन्फिगरेशन:

प्रत्येक एंडपॉइंट को पहचानने के लिए लॉगिन अकाउंट का उपयोग करने के बजाय, प्रमाणपत्र बनाने के लिए एक वैकल्पिक समाधान का उपयोग करना संभव है - प्रमाणपत्र।

- मास्टर की एन्क्रिप्शन बनाएं (प्रमाणपत्र निर्यात करने के लिए आवश्यक):

create master key encryption from password = 'abc123 !!';

- एक प्रमाणपत्र बनाएं:

create certificate PRINCIPAL_cert
with subject = 'PRINCIPAL certificate',
start_date = '2007/11/01',
expiry_date = '2020/11/01';

SQL Server मिररिंग से निरंतर उपलब्धता प्राप्त करें छवि 6: SQL Server सेटअप हमेशा उपलब्ध - प्रमाणपत्र से संबंधित एंडपॉइंट बनाएं:

create endpoint endpoint_mirroring state = started
as tcp (listener_port = 7024, listener_ip = all)
for database_mirroring (authentication = certificate PRINCIPAL_cert, encryption = disabled, role = all);

- प्रमाणपत्र को अलग फाइल में निर्यात करें:

Backup certificate PRINCIPAL_cert to file = 'c: PRINCIPAL_cert.cer';
मिरर सर्वर और विटनेस पर भी ऐसा ही करें, जरूरत पड़ने पर role = witness बदलें। सभी 3 इंस्टेंस पर एंडपॉइंट्स बनाने और प्रमाणपत्र निर्यात करने के बाद, प्रिंसिपल सर्वर पर लौटें:

- मिरर सर्वर के लिए लॉगिन बनाएं:

create login MIRROR_login with PASSWORD = 'abc123 !!';
GO

- उस लॉगिन से संबंधित यूजर बनाएं

create user MIRROR_user from login MIRROR_login;
GO

- सर्वर की .cer फाइल से प्रमाणपत्र बनाएं:

Create certificate MIRROR_cert
Authorization MIRROR_user
From file = 'c: MIRROR_cert.cer';
GO

- सर्वर के लॉगिन मिरर के लिए एंडपॉइंट से कनेक्ट करने की अनुमति दें:

Grant CONNECT ON Endpoint :: endpoint_mirroring to [MIRROR_login];
GO

SQL Server मिररिंग से निरंतर उपलब्धता प्राप्त करें छवि 7: SQL Server सेटअप हमेशा उपलब्ध विटनेस सर्वर प्रमाणपत्र के लिए भी ऐसा ही करें, साथ ही मिरर और विटनेस सर्वर पर ताकि 3 कंप्यूटर एक दूसरे को पहचान और प्रमाणित कर सकें।

एंडपॉइंट्स बनाने के बाद, आप निम्नलिखित क्वेरी से उनकी जांच कर सकते हैं:

SELECT name, state_desc, role_desc
FROM sys.database_mirroring_endpoint

अंतिम कार्य DM के लिए एक सत्र शुरू करना है:

* प्रिंसिपल सर्वर पर:

ALTER DATABASE AdventureWorks
SET PARTNER = 'TCP: //mirror-srv.deltax.com: 5022'
GO

* मिरर सर्वर पर:

ALTER DATABASE AdventureWorks
SET PARTNER = 'TCP: //pricipal-srv.deltax.com: 5022'
GO

* प्रिंसिपल सर्वर पर, विटनेस सर्वर सेट करें:

ALTER DATABASE AdventureWorks
SET WITNESS = 'TCP: //witness-srv.deltax.com: 5022'
GO

सिस्टम ऑपरेशन में होने के बाद, इसकी निगरानी Database Mirroring Monitor टूल : से की जा सकती है

SQL Server मिररिंग से निरंतर उपलब्धता प्राप्त करें छवि 8: SQL Server सेटअप हमेशा उपलब्ध

4. मिडलवेयर प्रोग्रामिंग:

DM का उपयोग मिडलवेयर पक्ष से डेटाबेस कनेक्शन के लिए लगभग पारदर्शी कहा जाता है। यदि आप ADO.NET लाइब्रेरी का उपयोग करते हैं, तो बस मिरर सर्वर के लिए ConnectionString में ' फेलओवर पार्टनर ' फील्ड जोड़कर संशोधित करें, उदाहरण के लिए:

Data Source = pricipal.database.com; Failover Partner = mirror.database.com; Initial Catalog = AdventureWorks;
Integrated Security = True;

इसके अलावा, ADO.NET एक ' कनेक्शन पूल ' बनाता है जो इनिशियलाइज़्ड कनेक्शन के कैशिंग की अनुमति देता है, इसलिए किसी समस्या की स्थिति में जो सर्वर स्विच की ओर ले जाती है, आपको सक्रिय रूप से अतिरिक्त ऑपरेशन लागू करने की आवश्यकता है। इस कैश को हटाएं।

SqlConnection.ClearPool (conn);

उपसंहार

SQL Server मिररिंग से निरंतर उपलब्धता प्राप्त करें छवि 9: SQL Server सेटअप हमेशा उपलब्ध SQL Server में DM काफी सरल, कॉन्फिगर करने, उपयोग करने और निगरानी करने में आसान है, लेकिन इसकी क्षमताएं अपेक्षाकृत सीमित हैं। यह केवल मध्यम आकार और निचले स्तर के डेटाबेस के लिए उपयुक्त है, और बड़े डेटाबेस के लिए जिनमें निरंतरता के लिए सख्त आवश्यकताएं हैं, प्रस्तावित दृष्टिकोण पूरा नहीं हुआ है, लेकिन समग्र ऑपरेटिंग सिस्टम समाधान की आवश्यकता है। हार्डवेयर सिस्टम, नेटवर्क।

लेख को उम्मीद है कि आपको SQL Server में हाई उपलब्ध डेटाबेस मैनेजमेंट सिस्टम बनाने के तरीके का अवलोकन प्राप्त करने में मदद मिलेगी।

संदर्भ: https://technet.microsoft.com/en-us/library/cc917680.aspx

शुभकामनाएं।

आपने "SQL Server सेटअप हमेशा उपलब्ध" लेख पढ़ना समाप्त किया जिसे TipsMake टीम द्वारा संपादित किया गया है। हमें उम्मीद है कि इस लेख ने आपको कई उपयोगी तकनीकी टिप्स और ट्रिक्स प्रदान किए हैं। आप टिप्स और गाइड पर समान लेख खोज सकते हैं। पढ़ने और नियमित रूप से हमें फॉलो करने के लिए धन्यवाद।


  1. C# कोड के लिए यूनिट टेस्टिंग C# कोड के लिए यूनिट टेस्टिंग

    यूनिट टेस्टिंग C# कोड के लिए महत्वपूर्ण है क्योंकि यह विकास प्रक्रिया में कोड को बनाए रखने में मदद कर सकता है। यह आपको विकास चक्र में समस्याओं के बारे में बताता है। यूनिट टेस्टिंग के साथ, आप कोड को विश्वसनीय और पुन: प्रयोज्य बना सकते हैं। यूनिट टेस्टिंग अपनाने के मौलिक सिद्धांतों में से एक TDD (टेस

  1. C# ASP.NET WebAPI में क्वेरीस्ट्रिंग पैरामीटर के साथ वर्जनिंग कैसे करें? C# ASP.NET WebAPI में क्वेरीस्ट्रिंग पैरामीटर के साथ वर्जनिंग कैसे करें?

    Web API में DefaultHttpControllerSelector क्लास उस उपयुक्त कंट्रोलर एक्शन मेथड का चयन करने के लिए जिम्मेदार है जिसे हम URI में भेजते हैं। मान लीजिए हमें क्वेरी स्ट्रिंग में वर्जनिंग लागू करनी है जैसे नीचे: v=1 StudentsV1Controller (Version 1) v=2 StudentsV2Controller (Version 2) यदि हम वर्जनिंग

  1. Tkinter में OptionMenu या Checkbutton Changes Detect कैसे करें? Tkinter में OptionMenu या Checkbutton Changes Detect कैसे करें?

    मान लीजिए किसी particular एप्लिकेशन में, हमारे पास user के लिए drop-down list में कुछ fixed set of options या choices हैं। Options या Choices को OptionMenu Widget Constructor का उपयोग करके बनाया जा सकता है। OptionMenu(window, variable, choice1, choice2, choice3...) एक बार option बन जाने के बाद, इसका