Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

Linux पर हमेशा उपलब्धता समूहों पर SQL सर्वर परिनियोजित करें

पिछले लेख में, मैंने बताया कि कैसे हम वर्चुअल मशीनों पर Ubuntu 18.04 और SQL Server 2019 को स्थापित कर सकते हैं। अब, आगे बढ़ने से पहले, कॉन्फ़िगरेशन के माध्यम से चलते हैं।

हमने तीन वर्चुअल मशीनें बनाई हैं, और विवरण निम्नलिखित हैं:

होस्ट नाम आईपी पता भूमिका
लिनक्सएसक्यूएल01 192.168.0.140 प्राथमिक प्रतिकृति
लिनक्सएसक्यूएल02 192.168.0.141 तुल्यकालिक माध्यमिक प्रतिकृति
लिनक्सएसक्यूएल03 192.168.0.142 अतुल्यकालिक माध्यमिक प्रतिकृति

होस्ट फ़ाइल को अपडेट करें।

कॉन्फ़िगरेशन में, हम एक डोमेन सर्वर का उपयोग नहीं कर रहे हैं। इसलिए, होस्टनाम को हल करने के लिए, हमें होस्ट फ़ाइल में एक प्रविष्टि जोड़नी होगी।

होस्ट फ़ाइल /etc . पर स्थित है निर्देशिका। फ़ाइल को संपादित करने के लिए निम्न कमांड चलाएँ:

[email protected]:/# vim /etc/hosts

होस्ट फ़ाइल में, सभी वर्चुअल मशीनों के होस्टनाम और आईपी पते दर्ज करें:

होस्ट फ़ाइल सहेजें।

सभी वर्चुअल मशीनों पर समान चरणों का पालन करें।

SQL सर्वर को हमेशा उपलब्धता समूहों पर सक्षम करें

ऑल्वेज़ऑन को परिनियोजित करने से पहले, हमें SQL सर्वर में उच्च उपलब्धता सुविधा को सक्षम करना होगा।

विंडोज सर्वर 2016 में, इस विकल्प को SQL सर्वर कॉन्फ़िगरेशन मैनेजर से सक्षम किया जा सकता है, लेकिन लिनक्स प्लेटफॉर्म में, हमें इसे बैश कमांड के साथ करना चाहिए।

पुट्टी का उपयोग करके LinuxSQL01 से कनेक्ट करें, और निम्न कमांड चलाएँ:

[email protected]:~# sudo /opt/mssql/bin/mssql-conf set hadr.hadrenabled  1

SQL सर्वर सेवाओं को पुनरारंभ करें:

[email protected]:~# service mssql-server restart

सभी वर्चुअल मशीनों पर उपरोक्त चरणों का पालन करें।

प्रमाणीकरण के लिए प्रमाणपत्र बनाएं

विंडोज सर्वर पर ऑलवेजऑन के विपरीत, लिनक्स परिनियोजन के लिए डोमेन नियंत्रक की आवश्यकता नहीं होती है। प्राथमिक और द्वितीयक प्रतिकृतियों के बीच प्रमाणीकरण और संचार के लिए, यह प्रमाणपत्र का उपयोग करता है।

निम्न स्क्रिप्ट एक प्रमाणपत्र और एक मास्टर कुंजी बनाती है। फिर यह प्रमाणपत्र का बैकअप लेता है और इसे पासवर्ड से सुरक्षित करता है।

LinuxSQL01 से कनेक्ट करें और निम्न स्क्रिप्ट चलाएँ:

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'abcd!1234';
CREATE CERTIFICATE AG_Auth_Cert WITH SUBJECT = 'dbm';
BACKUP CERTIFICATE AG_Auth_Cert
   TO FILE = '/var/opt/mssql/data/ AG_Auth_Cert_backup.cer'
   WITH PRIVATE KEY (
           FILE = '/var/opt/mssql/data/ AG_Auth_Cert_backup.pvk',
           ENCRYPTION BY PASSWORD = 'abcd!1234'
       );

एक बार जब हम प्रमाणपत्र और मास्टर कुंजी बना लेते हैं, तो हम उन्हें नीचे दिए गए आदेश को चलाकर द्वितीयक प्रतिकृतियों (LinuxSQL02 और LinuxSQL03) में कॉपी कर लेते हैं।

सुनिश्चित करें कि मास्टर कुंजी और प्रमाणपत्र का स्थान सभी प्रतिकृतियों पर समान है और पढ़ने-लिखने की अनुमति है।

/*Copy certificate and the key to LinuxSQL02*/

scp /var/opt/mssql/data/AG_Auth_Cert_backup.cer [email protected]:/var/opt/mssql/data/
scp /var/opt/mssql/data/AG_Auth_Cert_backup.pvk   [email protected]:/var/opt/mssql/data/

/*Copy certificate and the key to LinuxSQL03*/

scp /var/opt/mssql/data/AG_Auth_Cert_backup.cer   [email protected]:/var/opt/mssql/data/
scp /var/opt/mssql/data/AG_Auth_Cert_backup.pvk   [email protected]:/var/opt/mssql/data/

प्रमाणपत्र और निजी कुंजी पर पढ़ने-लिखने की अनुमति देने के लिए द्वितीयक नोड्स पर निम्न आदेश निष्पादित करें:

/*Grant read-write permission on certificate and key to [email protected]*/

[email protected]:~# chmod 777 /var/opt/mssql/data/AG_Auth_Cert_backup.pvk
[email protected]:~# chmod 777 /var/opt/mssql/data/AG_Auth_Cert_backup.cer

/*Grant read-write permission on certificate and key to [email protected]*/

[email protected]:~# chmod 777 /var/opt/mssql/data/AG_Auth_Cert_backup.pvk
[email protected]:~# chmod 777 /var/opt/mssql/data/AG_Auth_Cert_backup.cer

अनुमति दिए जाने के बाद, हम LinuxSQL01 पर बनाए गए प्रमाणपत्र और मास्टर कुंजी के बैकअप का उपयोग करके प्रमाणपत्र और मास्टर कुंजी बनाते हैं।

ऐसा करने के लिए, दोनों द्वितीयक प्रतिकृतियों पर निम्न आदेश चलाएँ:

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'abcd!1234';
CREATE CERTIFICATE AG_Auth_Cert
    FROM FILE = '/var/opt/mssql/data/AG_Auth_Cert_backup.cer'
    WITH PRIVATE KEY (
    FILE = '/var/opt/mssql/data/AG_Auth_Cert_backup.pvk',
    DECRYPTION BY PASSWORD = 'abcd!1234'
            );

एक बार जब हम प्रमाणपत्र और मास्टर कुंजी बना लेते हैं, तो हम डेटाबेस मिररिंग पॉइंट्स को कॉन्फ़िगर करेंगे।

मिररिंग एंडपॉइंट बनाएं

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

एक मिररिंग एंडपॉइंट प्राथमिक और माध्यमिक प्रतिकृतियों से संदेश भेजने और प्राप्त करने के लिए टीसीपी/आईपी प्रोटोकॉल का उपयोग करता है और एक अद्वितीय टीसीपी/आईपी पोर्ट पर सुनता है।

प्राथमिक और द्वितीयक नोड्स पर समापन बिंदु बनाने के लिए निम्न स्क्रिप्ट चलाएँ:

/*Run this script on LinuxSQL01*/

CREATE ENDPOINT [AG_LinuxSQL01]
    AS TCP (LISTENER_PORT = 5022)
    FOR DATABASE_MIRRORING (
	    ROLE = ALL,
	    AUTHENTICATION = CERTIFICATE AG_Auth_Cert,
		ENCRYPTION = REQUIRED ALGORITHM AES
		);
ALTER ENDPOINT [AG_LinuxSQL01] STATE = STARTED;

/*Run this script on LinuxSQL02*/

CREATE ENDPOINT [AG_LinuxSQL02]
    AS TCP (LISTENER_PORT = 5022)
    FOR DATABASE_MIRRORING (
	    ROLE = ALL,
	    AUTHENTICATION = CERTIFICATE AG_Auth_Cert,
		ENCRYPTION = REQUIRED ALGORITHM AES
		);

ALTER ENDPOINT [AG_LinuxSQL02] STATE = STARTED;

/*Run this script on LinuxSQL03*/

CREATE ENDPOINT [AG_LinuxSQL03]
    AS TCP (LISTENER_PORT = 5022)
    FOR DATABASE_MIRRORING (
	    ROLE = ALL,
	    AUTHENTICATION = CERTIFICATE AG_Auth_Cert,
		ENCRYPTION = REQUIRED ALGORITHM AES
		);
ALTER ENDPOINT [AG_LinuxSQL03] STATE = STARTED;

एक बार मिररिंग पॉइंट बन जाने के बाद, हम एक उपलब्धता समूह बनाते हैं।

उपलब्धता समूह बनाएं

हम हमेशा SQL सर्वर प्रबंधन स्टूडियो का उपयोग करके कॉन्फ़िगर करने जा रहे हैं।

सबसे पहले, इसे लॉन्च करें और sa . का उपयोग करके LinuxSQL01 इंस्टेंस से कनेक्ट करें साख। SQL सर्वर इंस्टेंस से कनेक्ट होने के बाद, हमेशा उच्च उपलब्धता पर पर राइट-क्लिक करें और नई उपलब्धता समूह विज़ार्ड select चुनें ।

उपलब्धता समूह विज़ार्ड शुरू होता है।

<एच4>1. परिचय

एक परिचय . में स्क्रीन, कार्य सूची देखें जो उपलब्धता समूह विज़ार्ड द्वारा निष्पादित की जाएगी। अगला क्लिक करें।

<एच4>2. उपलब्धता समूह विकल्प निर्दिष्ट करें

उपलब्धता समूह विकल्प निर्दिष्ट करें स्क्रीन पर, वांछित उपलब्धता समूह नाम प्रदान करें और बाहरी चुनें क्लस्टर प्रकार . से ड्रॉप-डाउन मेनू।

साथ ही, डेटाबेस स्तर स्वास्थ्य जांच . के लिए एक चेकमार्क लगाएं चेकबॉक्स। यह समूह स्वास्थ्य की उपलब्धता के लिए विस्तारित ईवेंट सत्र को सक्षम बनाता है।

<एच4>3. डेटाबेस चुनें

आप डेटाबेस चुनें . पर उपलब्धता समूह में जोड़ने के लिए डेटाबेस चुन सकते हैं स्क्रीन। नोट:डेटाबेस को निम्नलिखित पूर्व-आवश्यकताओं को पूरा करना चाहिए:

  1. डेटाबेस पूर्ण पुनर्प्राप्ति मॉडल में होना चाहिए।
  2. डेटाबेस का एक पूर्ण बैकअप बनाया जाना चाहिए।

मैंने WideWorldImportors . का बैकअप बहाल कर दिया है प्राथमिक प्रतिकृति पर डेटाबेस। डेटाबेस पूर्ण में है पुनर्प्राप्ति मॉडल, और एक पूर्ण बैकअप जनरेट किया गया है।

WideWorldImportors . चुनें सूची से डेटाबेस और अगला . क्लिक करें .

<एच4>4. प्रतिकृति निर्दिष्ट करें

प्रतिकृति निर्दिष्ट करें . पर स्क्रीन, हमारे पास विभिन्न विकल्पों को कॉन्फ़िगर करने के लिए कई टैब हैं। आइए उन सभी की समीक्षा करें।

प्रतिकृति टैब

यहां, हम प्राथमिक और द्वितीयक प्रतिकृतियां, उपलब्धता मोड और विफलता मोड निर्दिष्ट करते हैं।

हम LinuxSQL01 . का उपयोग करते हैं एक प्राथमिक प्रतिकृति के रूप में। लिनक्सएसक्यूएल02 और लिनक्सएसक्यूएल03 एक माध्यमिक प्रतिकृति हैं।

LinuxSQL02 . के लिए उपलब्धता मोड सिंक्रोनस कमिट होगा , और LinuxSQL03 . के लिए अतुल्यकालिक प्रतिबद्ध . होगा ।

प्रतिकृति जोड़ने के लिए, प्रतिकृति जोड़ें पर क्लिक करें . फिर, सर्वर से कनेक्ट करें . पर संवाद बॉक्स, सर्वर नाम और SQL लॉगिन विवरण निर्दिष्ट करें उदाहरण से जुड़ने के लिए:

समापन बिंदु टैब

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

बैकअप प्राथमिकताएं

यहां, आप उस प्रतिकृति को निर्दिष्ट करते हैं जिसका उपयोग आप बैकअप बनाने के लिए करना चाहते हैं। यह विकल्प तब उपयोगी होता है जब आप उपलब्धता समूह में SQL डेटाबेस बैकअप प्रक्रिया को ऑफ़लोड करना चाहते हैं।

आप निम्न में से कोई भी विकल्प चुन सकते हैं:

  1. सेकेंडरी को प्राथमिकता दें:सेकेंडरी रेप्लिका पर बैकअप जनरेट किया जाएगा। यदि द्वितीयक प्रतिकृति उपलब्ध नहीं है, तो प्राथमिक प्रतिकृति पर बैकअप तैयार किया जाएगा।
  2. केवल सेकेंडरी:सभी बैकअप सेकेंडरी रेप्लिका पर जेनरेट किए जाएंगे।
  3. प्राथमिक:बैकअप प्राथमिक प्रतिकृति पर जनरेट किया जाएगा।
  4. कोई भी प्रतिकृति:किसी भी प्रतिकृति से बैकअप तैयार किया जाएगा।

हम उपयोग करेंगे माध्यमिक को प्राथमिकता दें विकल्प:

श्रोता

उपलब्धता समूह श्रोता एक आभासी नाम है जिसका उपयोग अनुप्रयोग द्वारा उपलब्धता समूह डेटाबेस को जोड़ने के लिए किया जाता है। श्रोता DNS नाम . में श्रोता DNS नाम और उसका पोर्ट निर्दिष्ट करें और पोर्ट टेक्स्ट बॉक्स।

स्थिर आईपी Select चुनें नेटवर्क मोड . से ड्रॉप-डाउन मेनू।

उपलब्धता समूह श्रोता के लिए IP पता जोड़ने के लिए, जोड़ें . क्लिक करें> IP पता दर्ज करें और सबनेट मास्क

केवल-पढ़ने के लिए रूटिंग

यहां, आप केवल-पढ़ने के लिए रूटिंग URL . प्रदान कर सकते हैं और केवल-पढ़ने के लिए रूटिंग सूची प्राथमिक और माध्यमिक प्रतिकृतियों के लिए।

हम अपने प्रदर्शन में केवल-पढ़ने के लिए रूटिंग को कॉन्फ़िगर नहीं करेंगे। इसलिए, अगला क्लिक करें। रीड-ओनली रूटिंग के बारे में अधिक जानने के लिए, आप ऑलवेज ऑन के लिए रीड-ओनली रूटिंग का संदर्भ ले सकते हैं।

अब, हम उस मुख्य प्रक्रिया पर वापस आते हैं जिस पर हम काम करते हैं।

5. प्रारंभिक डेटा सिंक्रनाइज़ेशन चुनें

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

  1. स्वचालित सीडिंग।
  2. पूर्ण डेटाबेस और लॉग बैकअप।
  3. केवल शामिल हों।
  4. प्रारंभिक डेटा सिंक्रनाइज़ेशन छोड़ें।

मैंने WideWorldImportors . नहीं बनाया है LinuxSQL02 और LinuxSQL03 प्रतिकृति पर डेटाबेस, स्वचालित सीडिंग . का चयन करते हुए विकल्प। यह दोनों प्रतिकृतियों पर डेटाबेस बनाएगा और डेटा सिंक्रनाइज़ेशन को शुरू करेगा। अगला क्लिक करें।

<एच4>6. सत्यापन और सारांश

सत्यापन . पर स्क्रीन, विज़ार्ड सभी कॉन्फ़िगरेशन को मान्य करता है।

हमेशा उपलब्धता समूह को सफलतापूर्वक परिनियोजित करने के लिए, आपको सभी सत्यापन सफल होने की आवश्यकता है। यदि कोई त्रुटि है, तो आपको उसका समाधान अवश्य करना चाहिए।

सारांश . पर स्क्रीन, आप उपलब्धता समूह को परिनियोजित करने के लिए चुने गए कॉन्फ़िगरेशन की सूची देख सकते हैं।

एक बार फिर विवरण की समीक्षा करें, और समाप्त करें . क्लिक करें - यह परिनियोजन प्रक्रिया शुरू करता है।

यदि आप परिनियोजन प्रक्रिया की स्क्रिप्ट जनरेट करना चाहते हैं, तो स्क्रिप्ट . पर क्लिक करें ।

जैसा कि हम देखते हैं, ऑलवेजऑन परिनियोजन प्रक्रिया शुरू होती है। इसे सफलतापूर्वक पूरा करने के बाद, बंद करें . क्लिक करें विज़ार्ड से बाहर निकलने के लिए।

इस प्रकार, SQL सर्वर 2019 पर ऑलवेजऑन उपलब्धता समूह का परिनियोजन पूरा हो गया है।

सारांश

यह आलेख हमें Linux पर SQL Server AlwaysOn उपलब्धता समूह की चरण-दर-चरण परिनियोजन प्रक्रिया को समझने में मदद करता है।

अगला लेख समझाएगा कि हम उपलब्धता समूह श्रोता को कैसे कॉन्फ़िगर कर सकते हैं और SQL सर्वर प्रबंधन स्टूडियो का उपयोग करके मैन्युअल फ़ेलओवर निष्पादित कर सकते हैं। बने रहें!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ISNUMERIC('.') 1 क्यों लौटाता है?

  2. मैं SQL सर्वर में ऑटो वृद्धि मूल्य के साथ स्ट्रिंग कैसे जोड़ूं?

  3. आप एक एसडीएफ फ़ाइल (एसक्यूएल सर्वर कॉम्पैक्ट संस्करण) कैसे खोलते हैं?

  4. SQL सर्वर (T-SQL) में एक डेटाबेस मेल खाता बनाएँ

  5. कॉलम नाम और संग्रहीत प्रक्रिया के प्रकार पुनर्प्राप्त करें?