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

SQL सर्वर लेनदेन संबंधी प्रतिकृति आंतरिक - भाग 2

SQL सर्वर लेनदेन संबंधी प्रतिकृति कई गंतव्यों में डेटा की प्रतिलिपि बनाने या वितरित करने के लिए उपयोग की जाने वाली सबसे अधिक उपयोग की जाने वाली प्रतिकृति तकनीकों में से एक है। पिछले लेख में, हमने SQL सर्वर प्रतिकृति, प्रतिकृति के प्रकार और मूल आंतरिक पर चर्चा की थी कि लेन-देन संबंधी प्रतिकृति कैसे काम करती है। अब, हम उन्नत इंटर्नल में गोता लगाने जा रहे हैं कि SQL सर्वर ट्रांजेक्शनल प्रतिकृति कैसे काम करती है।

लेन-देन प्रतिकृति वास्तुकला

इससे पहले कि हम शुरू करें, मैं आपको यहां अपने पिछले लेख के साथ अपने ज्ञान को ताज़ा करने की सलाह देता हूं।

आइए Microsoft दस्तावेज़ से नीचे दिखाए गए SQL सर्वर ट्रांजेक्शनल प्रतिकृति आर्किटेक्चर को देखकर शुरू करें।

प्रकाशक डेटाबेस . में , एक प्रकाशन बनाएं लेखों . की सूची शामिल (टेबल्स , दृश्य , आदि,) जिसे आपको सदस्य . को दोहराने की आवश्यकता है डेटाबेस। प्रतिकृति के लिए आलेख सक्षम हो जाने के बाद, इन लेखों में होने वाले किसी भी परिवर्तन को प्रतिकृति के लिए चिह्नित कर दिया जाएगा प्रकाशक डेटाबेस के लेन-देन संबंधी लॉग में।

SQL सर्वर ट्रांजेक्शनल प्रतिकृति को प्रकाशक . से प्रारंभ किया जा सकता है वितरक . को और फिर सब्सक्राइबर . को स्नैपशॉट एजेंट . के माध्यम से डेटाबेस या पूर्ण बैकअप . स्नैपशॉट एजेंट आरंभीकरण कर सकता है प्रतिकृति कॉन्फ़िगरेशन विज़ार्ड . के माध्यम से . पूर्ण बैकअप केवल T-SQL कथनों के द्वारा समर्थित है।

लॉग रीडर एजेंट प्रतिकृति के लिए चिह्नित ट्रैक किए गए परिवर्तनों का पता लगाने के लिए प्रकाशक डेटाबेस के लेन-देन संबंधी लॉग को स्कैन करता है। यह लेन-देन लॉग में कैप्चर किए गए अन्य परिवर्तनों को अनदेखा करता है और डेटा परिवर्तनों को लेन-देन लॉग से वितरण डेटाबेस में कॉपी करता है।

वितरण डेटाबेस या तो प्रकाशक या सब्सक्राइबर में हो सकता है, या यह किसी अन्य स्वतंत्र SQL सर्वर आवृत्ति में हो सकता है। निम्नलिखित बातों पर ध्यान दें:

  • लॉग रीडर एजेंट प्रतिकृति के लिए चिह्नित नए आदेशों को स्कैन करने के लिए वितरक सर्वर से लगातार चलता है। हालांकि, अगर आप लगातार दौड़ना नहीं चाहते हैं और इसके बजाय शेड्यूल पर चलना चाहते हैं, तो हम लॉग रीडर एजेंट एसक्यूएल जॉब को बदल सकते हैं जिसे बनाया जाएगा।
  • लॉग रीडर एजेंट ट्रांजेक्शनल लॉग इन बैचों से प्रतिकृति के लिए चिह्नित सभी रिकॉर्ड उठाता है और इसे वितरण डेटाबेस को भेजता है।
  • लॉग रीडर एजेंट प्रकाशक डेटाबेस के लेन-देन लॉग से केवल प्रतिबद्ध लेनदेन उठाता है। इसलिए, प्रकाशक डेटाबेस पर लंबे समय से चल रही कोई भी क्वेरी सीधे प्रतिकृति को प्रभावित कर सकती है क्योंकि यह सक्रिय लेनदेन के पूरा होने की प्रतीक्षा कर रहा है।

वितरण एजेंट वितरण डेटाबेस से सभी अवितरित नए आदेश उठाता है और उन्हें पुश के माध्यम से सदस्यता डेटाबेस पर लागू करता है। या खींचें तंत्र

  • सदस्यता पुश करें - वितरक वितरण डेटाबेस से सब्सक्राइबर को परिवर्तन लागू करने के लिए स्वामित्व लेता है।
  • सदस्यता खींचें - सदस्य वितरण डेटाबेस से सब्सक्राइबर को परिवर्तन लाने के लिए डेटाबेस स्वामित्व लेता है।

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

प्रमुख प्रतिकृति रखरखाव नौकरियों में से एक है वितरण सफाई :वितरण डेटाबेस के आकार को नियंत्रण में रखने के लिए वितरण डेटाबेस से वितरित रिकॉर्ड को हटाने के लिए वितरण कार्य हर 10 मिनट में चलता है।

इसलिए, वर्तमान लेख के लिए हमारा लक्ष्य निम्नलिखित विषयों की खोज करना है:

  • वितरण डेटाबेस
  • प्रतिकृति एजेंट
    • स्नैपशॉट एजेंट
    • लॉग रीडर एजेंट
    • वितरण एजेंट
  • प्रतिकृति एजेंट प्रोफाइल
  • प्रतिकृति रखरखाव नौकरियां
  • प्रतिकृति विलंबता और अनुरेखक टोकन
  • टेबलडिफ यूटिलिटी
  • एसक्यूएल सर्वर एजेंट अलर्ट

SQL सर्वर वितरण डेटाबेस

एक वितरण डेटाबेस प्रतिकृति को कॉन्फ़िगर करते समय बनाया गया एक सिस्टम डेटाबेस है। यह प्रतिकृति का दिल है क्योंकि अधिकांश प्रक्रिया वितरण डेटाबेस से बाहर हो जाती है।

वितरण डेटाबेस की प्रकृति के कारण, हम उस पर केवल सीमित संचालन कर सकते हैं, जैसे कि बैकअप और पुनर्स्थापना। हम इसे सीधे उपयोगकर्ता डेटाबेस की तरह नहीं छोड़ सकते।

बहुत सारे डेटा की प्रतिकृति के साथ एक विशाल डेटाबेस के लिए, हमें प्रतिकृति थ्रूपुट प्रदर्शन को बेहतर बनाने के लिए कुछ विशेष उपाय करने होंगे:

डिफ़ॉल्ट रूप से, वितरण डेटाबेस SQL सर्वर में कॉन्फ़िगर किए गए डिफ़ॉल्ट स्थापना पथ पर बनाया जाता है . अगर कॉन्फ़िगर नहीं किया गया है, तो इसे C . पर बनाया जाएगा : ड्राइव या SQL सर्वर स्थापना फ़ोल्डर में। हम अनुशंसा करते हैं कि आप प्रदर्शन को बेहतर बनाने के लिए वितरण डेटाबेस को तेज़ स्टोरेज/डिस्क पर ले जाएँ।

प्रारंभिक फ़ाइल आकार और स्वतः वृद्धि वितरण डेटाबेस का मॉडल डेटाबेस के प्रारंभिक फ़ाइल आकार और ऑटोग्रोथ सेटिंग्स के अनुसार सेट किया जाएगा। लेन-देन में व्यस्त डेटाबेस प्रतिकृति के मामले में प्रारंभिक फ़ाइल आकार को 10GB जैसे बेहतर मान पर कॉन्फ़िगर करें। डेटा और लॉग दोनों फाइलों के लिए ऑटोग्रोथ गुण 512 एमबी या 1 जीबी तक होना चाहिए। फिर, डेटा और लॉग फ़ाइलों में अधिक विखंडन नहीं होगा।

दैनिक . को कॉन्फ़िगर करें या नियमित बैकअप कार्य किसी भी डेटा भ्रष्टाचार या हानि के मामले में संदर्भ उद्देश्यों या समस्या निवारण के लिए वितरण डेटाबेस शामिल करने के लिए।

दैनिक अनुक्रमणिका पुनर्गठनकॉन्फ़िगर करें या रखरखाव नौकरी वितरण डेटाबेस शामिल करने के लिए। डेटाबेस में MSrepl_transactions . में विशाल डेटा प्रविष्टि शामिल है और MSrepl_commands टेबल.

नोट:इन 2 टेबलों पर लगातार पोलिंग और सब्सक्राइबर डेटाबेस में सफलतापूर्वक डेटा भेजने के बाद उनमें से DELETE करने से विखंडन का खतरा बढ़ जाता है। निर्धारित आधार पर इन तालिकाओं के पुनर्निर्माण से वितरण डेटाबेस के प्रदर्शन में सुधार हो सकता है।

प्रतिकृति से संबंधित किसी भी वितरण डेटाबेस विशेषता को देखने और संशोधित करने के लिए, प्रतिकृति पर राइट-क्लिक करें। > वितरक गुण :

दीर्घवृत्त पर क्लिक करें सूचीबद्ध अलग-अलग विकल्पों के बारे में अधिक विवरण देखने के लिए दाईं ओर स्थित बटन।

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

लेन-देन प्रतिधारण निर्दिष्ट करता है कि वितरण डेटाबेस में कितना डेटा रखा जाना चाहिए। न्यूनतम और अधिकतम मान घंटों या दिनों में निर्दिष्ट किए जा सकते हैं।

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

इतिहास प्रतिधारण लेन-देन प्रतिकृति प्रदर्शन इतिहास डेटा संग्रहीत करने के लिए अवधारण अवधि निर्दिष्ट करता है। डिफ़ॉल्ट रूप से, यह 48 घंटे का होता है।

वितरण डेटाबेस छोड़ने . के लिए , हमें प्रकाशन अक्षम करना . करना होगा उस विशेष वितरण डेटाबेस से जुड़े और फिर दो विधियों में से एक का उपयोग करके इसे छोड़ दें। एक अक्षम प्रकाशन और वितरण विज़ार्ड का संयोजन है। दूसरा sp_dropdistributor का उपयोग कर रहा है या sp_dropdistributiondb प्रक्रियाएं। वितरण को अक्षम करने और वितरण डेटाबेस को छोड़ने के लिए विज़ार्ड आंतरिक रूप से इन 2 प्रक्रियाओं का उपयोग करता है।

SQL सर्वर प्रतिकृति एजेंट

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

सबसे पहले, आइए इन स्टैंडअलोन कार्यक्रमों का स्थान देखें।

प्रतिकृति को कॉन्फ़िगर करने के लिए, हमारे पास प्रतिकृति घटक होना चाहिए SQL सर्वर इंस्टॉलर के माध्यम से स्थापित। जब किया जाता है, तो हम इंस्टॉलेशन पथ में उपलब्ध प्रतिकृति एजेंट-संबंधित स्टैंडअलोन प्रोग्राम देख सकते हैं:

C:\Program Files\Microsoft SQL Server\130\COM

मेरे मामले में, SQL सर्वर संस्करण का संस्करण 2016 है। इसलिए, यह पथ में 130 से कम है।

प्रत्येक प्रतिकृति एजेंट के लिए, हम संबंधित स्टैंडअलोन प्रोग्राम उपलब्ध देख सकते हैं:

  • DISTRIB.exe - वितरण एजेंट
  • Logread.exe - लॉग रीडर एजेंट
  • Qrdrsvc.exe - कतार पाठक सेवा एजेंट
  • Replmerg.exe - प्रतिकृति एजेंट मर्ज करें
  • स्नैपशॉट.exe - स्नैपशॉट एजेंट
  • Tablediff.exe - तालिकाओं की तुलना करने की उपयोगिता। हम इस लेख में बाद में अधिक विवरण प्राप्त कर सकते हैं।

अब जब हम जानते हैं कि ये स्टैंडअलोन प्रोग्राम किसके लिए ज़िम्मेदार हैं और वे कहाँ स्थित हैं, तो हम समझ सकते हैं कि उन्हें SQL सर्वर एजेंट जॉब्स के माध्यम से कैसे निष्पादित किया जाता है।

चूंकि हम SQL सर्वर ट्रांजेक्शनल प्रतिकृति के साथ काम कर रहे हैं, हम स्नैपशॉट एजेंट, लॉग रीडर एजेंट और वितरण एजेंट नौकरियों के माध्यम से जाएंगे (वही तर्क अन्य सभी एजेंटों पर लागू होता है)।

स्नैपशॉट एजेंट

स्नैपशॉट एजेंट वितरण डेटाबेस रखने वाले सर्वर से चलता है। यह एक प्रकाशक पर प्रकाशन में शामिल सभी लेखों की स्कीमा और प्रारंभिक डेटा तैयार करता है, स्नैपशॉट फ़ोल्डर में स्नैपशॉट फ़ाइलें बनाता है, और वितरण डेटाबेस में सिंक्रनाइज़ेशन विवरण रिकॉर्ड करता है।

वितरण से MSSnapshot_agents तालिका में, हम स्नैपशॉट एजेंट गतिविधियों को करने वाले SQL सर्वर एजेंट कार्य की पहचान कर सकते हैं। प्रत्येक प्रकाशन में एक समर्पित SQL सर्वर एजेंट कार्य शामिल होता है जिसे स्नैपशॉट एजेंट की जिम्मेदारियों का ध्यान रखना चाहिए।

विस्तृत करें SQL सर्वर एजेंट और ऊपर बताए गए जॉब का नाम खोलें। यह विवरण और श्रेणी . प्रदर्शित करेगा नाम - आरईपीएल-स्नैपशॉट

चरण पर क्लिक करें स्नैपशॉट एजेंट द्वारा की गई गतिविधियों को देखने के लिए।

स्नैपशॉट एजेंट की नौकरी की जानकारी देखने के लिए कुछ अलग-अलग चरणों पर क्लिक करें।

चरण 1 हर बार जब स्नैपशॉट एजेंट sp_MSadd_snapshot_history का उपयोग करके इतिहास तालिका में प्रवेश करता है प्रक्रिया।

स्नैपशॉट एजेंट द्वारा निष्पादित विवरण का इतिहास रखने वाली तालिका MSsnapshot_history है वितरण डेटाबेस में तालिका।

यह स्नैपशॉट एजेंट स्थिति देखें . से मेल खाएगा डायलॉग विंडो।

चरण 2 . पर जाएं - एजेंट चलाएं . यह स्नैपशॉट एजेंट का काम शुरू करेगा

कमांड . के अंतर्गत , हमें कोई टी-एसक्यूएल स्टेटमेंट या क्वेरी नहीं मिली। केवल कुछ पैरामीटर सूचीबद्ध थे। तो, उत्तर उपरोक्त चित्रण पर हाइलाइट किए गए अनुभाग में निहित है। यह दर्शाता है कि कार्य चरण प्रकार है प्रतिकृति स्नैपशॉट जो snapshot.exe स्टैंडअलोन प्रोग्राम लॉन्च करता है स्नैपशॉट एजेंट की ज़िम्मेदारियाँ निभाने के लिए।

Snapshot.exe के बारे में अधिक जानकारी के लिए, यह MSDN आलेख देखें। हम बाद में प्रतिकृति-संबंधी समस्याओं का निवारण करते समय भी विस्तार से जानेंगे।

अंत में, हम चरण 3 . जा रहे हैं - अंतिम नौकरी चरण। यह एजेंट जॉब्स के किसी भी अप्रत्याशित शटडाउन को पकड़ लेता है और उन्हें लॉग आउट कर देता है।

लॉग रीडर एजेंट

जब भी प्रकाशन को डेटाबेस पर कॉन्फ़िगर किया जाता है, तो उन लेखों में होने वाले किसी भी परिवर्तन को लेनदेन लॉग में प्रतिकृति के लिए चिह्नित किया जाता है। लॉग रीडर एजेंट उन डेटा परिवर्तनों को logread.exe के माध्यम से पढ़ता है और उन्हें 2 अलग-अलग प्रक्रियाओं के माध्यम से वितरण डेटाबेस में संग्रहीत करता है:

  • लेन-देन संबंधी लॉग पढ़ें - यह sp_replcmds . का उपयोग करता है प्रकाशक से डेटा परिवर्तनों को स्कैन करने के लिए विस्तारित संग्रहीत कार्यविधि। चूंकि यह संग्रहीत कार्यविधि DLL फ़ाइलों का संदर्भ देती है, इसलिए Microsoft लॉग फ़ाइलों को वास्तव में कैसे पढ़ता है, इस पर आंतरिक की पहचान नहीं की जाती है। हालांकि, हम fn_dblog() . जैसे गैर-दस्तावेज कार्यों को आजमा सकते हैं और fn_dump_dblog() यह समझने के लिए कि लेन-देन संबंधी लॉग फ़ाइल कैसे काम करती है।
  • वितरण डेटाबेस को लिखें - यह sp_MSadd_replcmds . का उपयोग करता है प्रकाशक डेटाबेस के ट्रांजेक्शनल लॉग से पढ़े गए बाइनरी डेटा को लिखने के लिए वितरण डेटाबेस में संग्रहीत प्रक्रिया। यह MSrepl_transactions . को लेन-देन का विवरण लिखता है MSrepl_commands . के लिए तालिका और अलग-अलग कमांड टेबल.

प्रत्येक प्रकाशित डेटाबेस के लिए केवल एक लॉग रीडर SQL सर्वर एजेंट कार्य उपलब्ध है। आप नीचे दिखाए अनुसार इसके नाम की पहचान कर सकते हैं:

SQL सर्वर एजेंट का विस्तार करें और चरणों को देखने के लिए उपरोक्त लॉग रीडर एजेंट कार्य खोलें। यह कार्य प्रदर्शित करेगा Сश्रेणी प्रतिकृति लॉग रीडर के अंतर्गत।

चरणों पर क्लिक करें लॉग रीडर एजेंट द्वारा किए गए अलग-अलग चरणों को देखने के लिए। स्नैपशॉट एजेंट कार्य की तरह, हम लॉग रीडर एजेंट कार्य के लिए 3 समकक्ष चरण देख सकते हैं।

चरण 1 sp_MSadd_logreader_history . को कॉल करता है लॉग रीडर एजेंट के स्टार्टअप स्थिति इतिहास संदेशों को MSlogreader_history में लॉग करने की प्रक्रिया टेबल।

चरण 2 logread.exe स्टैंडअलोन प्रोग्राम का उपयोग करके लॉग रीडर एजेंट प्रक्रिया प्रारंभ करता है

आप संबंधित MSDN आलेख में logread.exe के बारे में अधिक जानकारी प्राप्त कर सकते हैं। बाद में, हम लॉग रीडर एजेंट के महत्वपूर्ण कॉन्फ़िगरेशन पैरामीटर की भी जांच करेंगे।

चरण 3 लॉग रीडर एजेंट की नौकरी के अचानक बंद होने पर कब्जा कर लेता है।

वितरण एजेंट

वितरण एजेंट (DISTRIB.exe) का उपयोग लेन-देन और स्नैपशॉट प्रतिकृति द्वारा प्रारंभिक स्नैपशॉट फ़ाइलों को लागू करने और वितरण डेटाबेस से सब्सक्राइबर डेटाबेस में उपलब्ध लंबित लेनदेन को बढ़ाने या लागू करने के लिए किया गया था।

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

SQL सर्वर एजेंट कार्य का विस्तार करें और अधिक जानकारी और प्रतिकृति वितरण को निर्दिष्ट श्रेणी देखने के लिए इसे खोलें।

चरणों . पर क्लिक करें - आप स्नैपशॉट और लॉग रीडर एजेंट नौकरियों के पहले उजागर किए गए चरणों के समान चरण देखेंगे।

चरण 1 sp_MSadd_distribution_history को कॉल करता है लॉग रीडर एजेंट के स्टार्टअप स्थिति इतिहास संदेशों को MSdistribution_history में लॉग करने की प्रक्रिया टेबल।

चरण 2 डिफ़ॉल्ट पैरामीटर के साथ वितरण एजेंट प्रक्रिया (DISTRIB.exe) शुरू करता है।

DISTRIB.exe के बारे में अधिक जानकारी के लिए, MSDN आलेख देखें। इसके अलावा, हम अगले लेखों में वितरण एजेंट के महत्वपूर्ण कॉन्फ़िगरेशन मापदंडों के बारे में जानेंगे।

चरण 3 वितरण एजेंट की नौकरी के अचानक बंद होने के बारे में विवरण कैप्चर करता है।

प्रतिकृति एजेंट प्रोफाइल

वितरक संपत्तियों . से , हम प्रतिकृति एजेंट प्रोफ़ाइल . देखने का विकल्प प्राप्त कर सकते हैं . एजेंट प्रोफ़ाइल को डिफ़ॉल्ट मानों पर छोड़ दें और केवल समस्या निवारण उद्देश्यों के लिए आवश्यकतानुसार बदलें।

प्रोफ़ाइल डिफ़ॉल्ट पर क्लिक करें सर्वर में उपलब्ध सभी प्रतिकृति एजेंटों के लिए कॉन्फ़िगर किए गए डिफ़ॉल्ट मानों को देखने के लिए।

वितरण एजेंट चुनें अनुभाग और क्लिक करें दीर्घवृत्त डिफ़ॉल्ट एजेंट प्रोफ़ाइल . के बगल में स्थित बटन कॉन्फ़िगर किए गए मान देखने के लिए। नीचे दिया गया उदाहरण देखें:

देखें डिफ़ॉल्ट एजेंट प्रोफ़ाइल स्नैपशॉट एजेंटों में से पाठक एजेंट:

डिफ़ॉल्ट एजेंट प्रोफ़ाइल लॉग रीडर . के लिए एजेंट:

प्रतिकृति अनुरक्षण कार्य

प्रतिकृति एजेंटों के अलावा, हमारे पास प्रतिकृति अनुरक्षण कार्य हैं

ये SQL सर्वर एजेंट कार्य हैं जो SQL सर्वर ट्रांजेक्शनल प्रतिकृति को कॉन्फ़िगर करते समय बनाए गए हैं। वे यह सुनिश्चित करने के लिए उपलब्ध हैं कि लेन-देन संबंधी प्रतिकृति सही ढंग से काम कर रही है।

प्रतिकृति रखरखाव पर कुछ नौकरियां लेन-देन संबंधी प्रतिकृति के लिए आवश्यक हैं। आइए उनकी समीक्षा करें।

  • वितरण सफाई: वितरण - sp_MSवितरण_क्लीनअप निष्पादित करता है MSrepl_transactions . से प्रतिकृति आदेशों को हटाने की प्रक्रिया और MSrepl_commands टेबल। वितरण डेटाबेस में कॉन्फ़िगर किए गए लेनदेन प्रतिधारण अवधि मान के आधार पर सब्सक्राइबर डेटाबेस को सफलतापूर्वक आदेश भेजे जाने के बाद वितरण डेटाबेस पर क्लीन-अप होता है। डिफ़ॉल्ट रूप से, यह कार्य वितरण डेटाबेस पर हर 10 मिनट में चलता है। गहन मूल्यांकन के बाद ही इन मानों को बदलें।
  • एजेंट इतिहास की सफाई:वितरण - sp_MShistory_cleanup निष्पादित करता है वितरण डेटाबेस में प्रक्रिया उस डेटाबेस में कॉन्फ़िगर की गई इतिहास अवधारण अवधि से पुराने ऐतिहासिक रिकॉर्ड को साफ़ करने के लिए। डिफ़ॉल्ट रूप से, इसे 48 दिनों के लिए कॉन्फ़िगर किया जाता है और हर 10 मिनट में निष्पादित किया जाता है। अगर आप इन मूल्यों को बदलना चाहते हैं, तो सभी पहलुओं पर ध्यान से विचार करें।
  • समाप्त सदस्यता साफ़ करें - sp_expired_subscription_cleanup को निष्पादित करता है मास्टर डेटाबेस में उन सदस्यताओं को छोड़ने की प्रक्रिया जो समाप्त हो गई या लंबे समय से निष्क्रिय थीं। डिफ़ॉल्ट रूप से, यह प्रक्रिया दिन में एक बार निष्पादित होती है।

प्रतिकृति विलंबता और ट्रेसर टोकन

प्रतिकृति विलंबता प्रकाशक डेटाबेस से प्रकाशित लेखों पर होने वाले किसी भी परिवर्तन को ट्रैक करने के लिए प्रतिकृति प्रक्रिया द्वारा आवश्यक समय है जब तक कि इसे वितरक के माध्यम से सब्सक्राइबर को सफलतापूर्वक वितरित नहीं किया जाता है।

प्रतिकृति विलंबता को मिलीसेकंड में मापा जाता है। 0 (वास्तविक समय प्रतिकृति) का लक्ष्य मान बहुत कम मान (आदर्श मामले) के लिए। यह प्रतिकृति प्रदर्शन की निगरानी के लिए प्रमुख उपायों में से एक है।

हम प्रतिकृति मॉनिटर या समर्पित sp_replcounters का उपयोग करके प्रतिकृति विलंबता को सत्यापित कर सकते हैं प्रक्रिया।

चूंकि प्रतिकृति मॉनीटर ताज़ा करें . है दर, देखे गए मूल्यों से मामूली विचलन हो सकता है। प्रतिकृति विलंबता की गणना करते समय मामूली विचलन को दूर करने के लिए, ट्रेसर टोकन हमारे बचाव में आते हैं।

ट्रेसर टोकन . पर क्लिक करें टैब (उपरोक्त छवि देखें) प्रकाशक से परीक्षण आदेशों का एक नया सेट भेजने के लिए। फिर, जब यह डिस्ट्रीब्यूटर डेटाबेस तक पहुँचता है, और जब इसे सब्सक्राइबर डेटाबेस में भेजा जाता है, तो इसे मापें। ट्रैसर डालें . पर क्लिक करें प्रकाशक डेटाबेस से ट्रेसर टोकन भेजने के लिए:

एक बार सब्सक्राइबर में रिकॉर्ड सफलतापूर्वक प्राप्त हो जाने के बाद, हम अपने वर्तमान सेटअप के लिए कुल प्रतिकृति विलंबता को ट्रैक कर सकते हैं। हमारे मामले में, यह 9 सेकंड है:प्रकाशक से वितरक तक 4 सेकंड और वितरक से सब्सक्राइबर तक 5 सेकंड।

टेबलडिफ यूटिलिटी

Tablediff उपयोगिता(tablediff.exe) पथ में स्थापित किया जाएगा C:\Program Files\Microsoft SQL Server\130\COM एक बार जब हमारे पास प्रतिकृति घटक स्थापित हो जाते हैं।

TableDiff उपयोगिता गैर-अभिसरण के लिए 2 तालिकाओं की तुलना करती है। इसका अर्थ है कि हम 2 तालिकाओं की तुलना कर सकते हैं और उनके बीच के अंतरों की पहचान कर सकते हैं। फिर यह समर्पित INSERT/UPDATE/DELETE स्क्रिप्ट उत्पन्न करके स्रोत तालिका की तुलना में गंतव्य तालिका को सिंक्रनाइज़ करता है। अधिक विवरण आधिकारिक दस्तावेज़ीकरण में उपलब्ध हैं।

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

अन्य उपकरण तुलना और सिंक्रनाइज़ेशन को सरल बना सकते हैं। SQL सर्वर के लिए dbForge तुलना बंडल डेटाबेस और विशिष्ट तालिकाओं में विसंगतियों की जांच करता है और उन्हें पहचानता है और उनका विश्लेषण करता है। यह उन्हें सिंक्रनाइज़ करने के लिए आवश्यक स्क्रिप्ट भी बनाता है। यह एक विज़ुअल इंटरफ़ेस और कार्यों को तेज़ और सीधे चलाने के लिए विकल्पों का एक समूह प्रदान करता है।

SQL सर्वर एजेंट अलर्ट

प्रतिकृति एजेंटों से संबंधित सभी प्रमुख घटक रहते हैं क्योंकि नौकरियां SQL सर्वर एजेंट नौकरियों के अंतर्गत रहती हैं। इसलिए, यह सुनिश्चित करना महत्वपूर्ण है कि SQL सर्वर एजेंट कार्य लगातार कैसे कार्य करता है ताकि यह सुनिश्चित हो सके कि प्रतिकृति बिना किसी समस्या के काम करती है। सबसे आम समस्याएं नीचे दी गई हैं:

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

इसलिए किसी भी मुद्दे के बारे में तुरंत डीबीए या अन्य व्यक्ति को सूचित करने के लिए हमारे पास एक उचित चेतावनी तंत्र होना चाहिए।

किसी भी नौकरी की विफलता या त्रुटियों के मामले में डीबीए या अन्य लोगों को सतर्क करने के लिए, हमें ईमेल अलर्ट भेजने के लिए डेटाबेस मेल को कॉन्फ़िगर करना चाहिए। यह डीबीए को एक बार में जवाब देने और समस्या को ठीक करने की अनुमति देता है। हम बाद में एक अलग लेख में डेटाबेस मेल और अलर्ट को कॉन्फ़िगर करने के तरीके पर चर्चा करेंगे।

प्रतिकृति को कॉन्फ़िगर करते समय, 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. SQL सर्वर प्रबंधन स्टूडियो और Transact SQL में GO का क्या उपयोग है?

  2. सिस्टम सांख्यिकीय कार्यों का उपयोग करके SQL सर्वर सांख्यिकी जानकारी कैसे प्राप्त करें

  3. क्या प्राथमिक कुंजी निष्क्रिय हैं?

  4. एक सामान्य एमएस एसक्यूएल सर्वर प्रदर्शन संकेतक लागू करना

  5. एकाधिक तालिकाओं में SQL अद्वितीय बाधा