यदि आप SQL सर्वर उपलब्धता समूह परिनियोजित कर रहे हैं, तो एक सफल परिनियोजन के महत्वपूर्ण पहलुओं में से एक प्राथमिक प्रतिकृति के साथ द्वितीयक प्रतिकृति डेटाबेस के सिंक्रनाइज़ेशन की निगरानी करना है। उपलब्धता समूह में प्रतिकृति सिंक्रनाइज़ेशन की निगरानी करने के कई तरीके हैं, और यह पोस्ट उनमें से प्रत्येक को दिखाएगा और उनके लाभ और कमियों की व्याख्या करेगा,
उपलब्धता समूह, प्रत्येक प्रतिकृति सर्वर और उपलब्धता डेटाबेस की स्थिति की निगरानी करने के सबसे आसान तरीकों में से एक, प्रबंधन स्टूडियो में अंतर्निहित डैशबोर्ड के माध्यम से है। हालाँकि, डैशबोर्ड का डिफ़ॉल्ट लेआउट बहुत अधिक विवरण प्रदान नहीं करता है, और प्रतिकृति सर्वर के साथ-साथ उपलब्धता डेटाबेस के बारे में अतिरिक्त जानकारी दिखाने के लिए इसे अनुकूलित करने की आवश्यकता होगी। डैशबोर्ड पर कॉलम जोड़ें/निकालें लिंक के माध्यम से लेआउट में अतिरिक्त कॉलम जोड़े जा सकते हैं, या किसी भी मौजूदा कॉलम हेडर पर राइट-क्लिक संदर्भ मेनू के माध्यम से, जैसा कि नीचे दिखाया गया है:
SSMS में AG डैशबोर्ड को कस्टमाइज़ करना
उपलब्धता डेटाबेस के लिए, लॉग भेजें कतार आकार (केबी), लॉग भेजें दर (केबी/सेकंड), अनुमानित डेटा हानि (समय), अनुमानित पुनर्प्राप्ति समय (सेकंड), और सिंक्रनाइज़ेशन प्रदर्शन (सेकंड) की निगरानी आपको बेहतर समझ देगी। कैसे डेटा प्रतिकृतियों और उपलब्धता डेटाबेस के समग्र स्वास्थ्य के लिए प्रवाहित हो रहा है। उदाहरण के लिए, नीचे दिए गए स्क्रीनशॉट में, मैंने SQL03 के लिए VM नेटवर्क कॉन्फ़िगरेशन को संशोधित किया है ताकि इसमें उच्च विलंबता और निम्न थ्रूपुट हो, जो डेटाबेस के सिंक्रनाइज़ेशन को प्रभावित कर रहा है:
यहां हम देख सकते हैं कि SQL03 के लिए लगभग छह मिनट की संभावित डेटा हानि है, और 505 एमबी बिना भेजे गए लॉग को 7 एमबी/सेकंड की दर से सेकेंडरी को भेजा जा रहा है (जो इस मामले में, एक एसिंक्रोनस सेकेंडरी है) . जबकि SQL02 वर्तमान में पकड़ा गया है और कॉन्फ़िगरेशन में सिंक्रोनस सेकेंडरी के रूप में कोई डेटा हानि नहीं है।
उपलब्धता समूह डैशबोर्ड का एक विकल्प DMVs की सीधी क्वेरी करना है, जो वह जगह है जहां डैशबोर्ड अपनी जानकारी को स्रोत के रूप में खींचता है। निम्न क्वेरी उपलब्धता समूह में प्रत्येक डेटाबेस के लिए वर्तमान स्थिति और सिंक्रनाइज़ेशन मीट्रिक दिखाती है:
SELECT ar.replica_server_name, adc.database_name, ag.name AS ag_name, drs.is_local, drs.is_primary_replica, drs.synchronization_state_desc, drs.is_commit_participant, drs.synchronization_health_desc, drs.recovery_lsn, drs.truncation_lsn, drs.last_sent_lsn, drs.last_sent_time, drs.last_received_lsn, drs.last_received_time, drs.last_hardened_lsn, drs.last_hardened_time, drs.last_redone_lsn, drs.last_redone_time, drs.log_send_queue_size, drs.log_send_rate, drs.redo_queue_size, drs.redo_rate, drs.filestream_send_rate, drs.end_of_log_lsn, drs.last_commit_lsn, drs.last_commit_time FROM sys.dm_hadr_database_replica_states AS drs INNER JOIN sys.availability_databases_cluster AS adc ON drs.group_id = adc.group_id AND drs.group_database_id = adc.group_database_id INNER JOIN sys.availability_groups AS ag ON ag.group_id = drs.group_id INNER JOIN sys.availability_replicas AS ar ON drs.group_id = ar.group_id AND drs.replica_id = ar.replica_id ORDER BY ag.name, ar.replica_server_name, adc.database_name;
डीएमवी को सीधे प्राथमिक प्रतिकृति पर क्वेरी करके, प्रबंधन स्टूडियो में डैशबोर्ड की ताज़ा अवधि की प्रतीक्षा किए बिना अद्यतित जानकारी प्राप्त करना आसान है। डेटा केंद्रों के बीच लिंक विफलता वाले क्लाइंट के साथ परामर्श करते समय यह कई बार उपयोगी रहा है, या जहां कनेक्टिविटी समय की अवधि के लिए रखरखाव के लिए नीचे थी, और द्वितीयक प्रतिकृतियां कनेक्शन बहाल होने के बाद पकड़ने की प्रक्रिया में हैं ।
उपलब्धता समूह सिंक्रनाइज़ेशन की निगरानी के लिए अंतिम मूल उपकरण SQLServer:डेटाबेस प्रतिकृति प्रदर्शन ऑब्जेक्ट का उपयोग करते हुए प्रदर्शन मॉनिटर है। नीचे दी गई तालिका ऑनलाइन पुस्तकों से प्रासंगिक प्रदर्शन काउंटर और उनके विवरण दिखाती है (https://msdn.microsoft.com/en-us/library/ff878356(v=sql.110).aspx):
काउंटर का नाम | <थ>विवरण|
---|---|
फ़ाइल बाइट प्राप्त/सेकंड | अंतिम सेकंड में द्वितीयक डेटाबेस के लिए द्वितीयक प्रतिकृति द्वारा प्राप्त FILESTREAM डेटा की मात्रा। |
लॉग बाइट प्राप्त/सेकंड | अंतिम सेकंड में डेटाबेस के लिए द्वितीयक प्रतिकृति द्वारा प्राप्त लॉग रिकॉर्ड की मात्रा। |
पूर्ववत करने के लिए शेष लॉग करें | पूर्ववत चरण को पूरा करने के लिए शेष किलोबाइट लॉग इन की मात्रा। |
लॉग भेजें कतार | प्राथमिक डेटाबेस की लॉग फ़ाइलों में किलोबाइट्स में लॉग रिकॉर्ड की मात्रा, जो अभी तक द्वितीयक प्रतिकृति को नहीं भेजी गई है। यह मान प्राथमिक प्रतिकृति से द्वितीयक प्रतिकृति को भेजा जाता है। कतार के आकार में FILESTREAM फ़ाइलें शामिल नहीं होती हैं जो द्वितीयक को भेजी जाती हैं। |
पुनर्प्राप्ति कतार | द्वितीयक प्रतिकृति की लॉग फ़ाइलों में लॉग रिकॉर्ड की मात्रा जिसे अभी तक दोबारा नहीं बनाया गया है। |
अवरुद्ध/सेकंड फिर से करें | डेटाबेस के पाठकों द्वारा रखे गए ताले पर फिर से किए गए थ्रेड को अवरुद्ध करने की संख्या। |
शेष बाइट्स फिर से करें | वापसी के चरण को पूरा करने के लिए लॉग इन किलोबाइट की मात्रा को फिर से किया जाना शेष है। |
बाइट्स/सेकंड फिर से करें | अंतिम सेकंड में द्वितीयक डेटाबेस पर दोबारा किए गए लॉग रिकॉर्ड की मात्रा। |
कुल लॉग को पूर्ववत करने की आवश्यकता है | लॉग के कुल किलोबाइट जिन्हें पूर्ववत किया जाना चाहिए। |
पर्यावरण की निगरानी के लिए प्रदर्शन मॉनिटर का उपयोग करने की चुनौतियों और सीमाओं में से एक यह है कि ऑब्जेक्ट केवल SQL सर्वर के उदाहरण पर मान्य है जो द्वितीयक प्रतिकृति को होस्ट करता है। इसका मतलब है कि आपको प्रत्येक सेकेंडरी रेप्लिका से काउंटर्स को परफॉर्मेंस मॉनिटर में जोड़ना होगा, सभी सेकेंडरी डेटाबेस के साथ क्या हो रहा है, इसका पूरा दृश्य प्राप्त करें, जहां मैनेजमेंट स्टूडियो में एजी डैशबोर्ड और प्राइमरी रेप्लिका के खिलाफ डीएमवी क्वेरी दोनों प्रदान करते हैं। एक ही स्थान पर सभी द्वितीयक डेटाबेस के बारे में जानकारी।
उपलब्धता समूह सिंक्रनाइज़ेशन की निगरानी के लिए अंतर्निहित सुविधाओं के विकल्प के रूप में, आप SQL संतरी प्रदर्शन सलाहकार जैसे तृतीय पक्ष टूल का भी लाभ उठा सकते हैं, जिसमें एक मानक सुविधा के रूप में उपलब्धता समूहों की निगरानी शामिल है। आप ग्रेग गोंजालेज की इस ब्लॉग पोस्ट में इस सुविधा के बारे में अधिक पढ़ सकते हैं जिसने पहली बार उत्पाद के संस्करण 7.5 में इस सुविधा को पेश किया था।
प्रदर्शन सलाहकार AG डैशबोर्ड
प्रदर्शन सलाहकार में प्रतिकृति टैब डेटाबेस और उनके वर्तमान सिंक्रनाइज़ेशन डेटा को आसानी से दिखाने के लिए प्रत्येक द्वितीयक प्रतिकृति सर्वर को विस्तारित करने की अनुमति देता है। डैशबोर्ड के शीर्ष पर WSFC नोड/ग्रुप मैट्रिक्स डिफ़ॉल्ट लेआउट प्राथमिक प्रतिकृति की प्रेषण कतार स्थिति, द्वितीयक प्रतिकृति की फिर से कतार स्थिति, और प्रत्येक प्रतिकृति सर्वर के बीच डेटा के प्रवाह के बारे में स्वास्थ्य जानकारी भी देता है। इस उदाहरण में, हम देख सकते हैं कि SQL01 और SQL03 के बीच कनेक्टिविटी मुद्दों को ठीक करने के बाद, सर्वर के बीच लाइन की चौड़ाई के आधार पर, प्राथमिक पर लॉग भेजने की कतार वर्तमान में SQL01 से SQL03 तक बड़ी मात्रा में डेटा भेज रही है। पर्यावरण। दाईं ओर का चार्ट उस दर को दिखाता है जिस पर SQL01 से डेटा ट्रांसफर किया जा रहा है, साथ ही लॉग सेंड क्यू के वर्तमान आकार के साथ, क्योंकि यह बाईं ओर चयनित प्रतिकृति है। WSFC नोड/ग्रुप मैट्रिक्स लेआउट में अन्य प्रतिकृति सर्वरों में से किसी एक पर क्लिक करने से चार्ट भी बदल जाएगा, जो उस विशिष्ट प्रतिकृति के दायीं ओर प्रदर्शन मीट्रिक से मेल खाएगा।
SQL सर्वर में उपलब्धता समूह में प्रतिकृति सर्वरों के बीच डेटा सिंक्रनाइज़ेशन के प्रदर्शन की निगरानी करने के कई तरीके हैं। प्रबंधन स्टूडियो में बिल्ट-इन उपलब्धता समूह डैशबोर्ड में ऐसी जानकारी का खजाना होता है जिसे एक बार एक्सेस करना आसान हो जाता है जब आप जानते हैं कि डैशबोर्ड पर सबसे महत्वपूर्ण जानकारी दिखाने के लिए लेआउट को कैसे अनुकूलित किया जाए। ट्रांजैक्ट-एसक्यूएल का उपयोग करके डेटा सिंक्रनाइज़ेशन के प्रदर्शन की निगरानी के लिए प्राथमिक प्रतिकृति सर्वर से सीधे डीएमवी का उपयोग करना भी संभव है, और एसक्यूएल संतरी जैसे तीसरे पक्ष के टूल में डेटा सिंक्रनाइज़ेशन की निगरानी भी शामिल है। जबकि प्रदर्शन मॉनिटर यह वही जानकारी प्रदान कर सकता है, यह तथ्य कि प्रदर्शन काउंटर केवल द्वितीयक प्रतिकृति सर्वर से उपलब्ध हैं, यह पूरे वातावरण का पूरा दृश्य प्राप्त करने के लिए थोड़ा और काम करता है।