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

विषम डेटाबेस प्रतिकृति को कॉन्फ़िगर करना - SQL सर्वर से Oracle

परिचय

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

SQL सर्वर प्रतिकृति डेटा को स्रोत से गंतव्य तक संभालने के तरीके का वर्णन करने के लिए प्रकाशन उद्योग में समान शब्दों का उपयोग करती है। मुख्य शर्तें इस प्रकार हैं:

  • प्रकाशक - एक SQL सर्वर इंस्टेंस जो डेटा को अन्य इंस्टेंस (प्रकाशन के रूप में पैक) में दोहराने के लिए उपलब्ध कराता है।
  • प्रकाशन - एक इकाई जो प्राप्त करने वाले उदाहरण को पारित करने के लिए तैयार है जो लेखों के संग्रह से बना है जो वास्तव में डेटाबेस ऑब्जेक्ट हैं।
  • वितरक - एक SQL सर्वर इंस्टेंस जो एक डेटाबेस में एक या अधिक प्रकाशकों से जुड़े डेटा को संग्रहीत करने के लिए जिम्मेदार है जिसे वितरण डेटाबेस कहा जाता है . एक स्थानीय वितरक एक दूरस्थ वितरक . के समय प्रकाशक के समान उदाहरण में संग्रहीत किया जाता है दूसरे उदाहरण में स्थित है।
  • सब्सक्राइबर - एक उदाहरण जो एक प्रतिकृति डेटाबेस प्राप्त करता है। एक ग्राहक सदस्यता एक प्रकाशन प्रति के लिए एक अनुरोध है जिसे वह प्रकाशक से प्राप्त करने की अपेक्षा करता है।
  • स्नैपशॉट.

लेख में, मैं कुछ बिंदुओं को साझा करने जा रहा हूं जो मैंने एक विषम ग्राहक का समर्थन करने के लिए SQL सर्वर प्रतिकृति को कॉन्फ़िगर करने से सीखा है। मैं एक प्रकाशन और बाद में एक Oracle सदस्यता तैयार करूंगा जो इस प्रकाशन पर निर्भर करेगा। मैं प्रक्रिया के प्रवाह के साथ कुछ बिंदुओं को भी प्रदर्शित करूंगा जो समस्याओं के निवारण के लिए बहुत महत्वपूर्ण हैं।

स्नैपशॉट प्रतिकृति सत्र को कॉन्फ़िगर करने के चरण इस प्रकार हैं:

  1. एक वितरक को कॉन्फ़िगर करें
  2. एक प्रकाशक को कॉन्फ़िगर करें (प्रकाशित होने वाले लेखों सहित प्रकाशन के साथ)
  3. सदस्य कॉन्फ़िगर करें

मैं प्रत्येक चरण का संक्षिप्त विवरण प्रदान करूंगा।

एक वितरक को कॉन्फ़िगर करना

एक वितरक प्रतिकृति के दौरान उपयोग की जाने वाली जानकारी संग्रहीत करने के लिए जिम्मेदार एक उदाहरण है। जब आप इंस्टेंस में पहली बार प्रकाशन बनाने का प्रयास करते हैं, तो SQL सर्वर आपको एक वितरक को कॉन्फ़िगर करने का सुझाव देगा। इस लेख में, हमारा वितरक एक स्थानीय वितरक है ।

एक प्रकाशन बनाना

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

प्रकाशन डेटाबेस बनाने के लिए, नीचे स्क्रीनशॉट में दिए गए निर्देशों का पालन करें।

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

इस चरण में, हम उन लेखों को चुनते हैं जिन्हें हम प्रकाशित करना चाहते हैं। SQL सर्वर हमें चार प्रमुख ऑब्जेक्ट प्रकारों को प्रकाशित करने की अनुमति देता है जैसे:

  1. टेबल्स
  2. संग्रहीत प्रक्रियाएं
  3. दृश्य
  4. उपयोगकर्ता परिभाषित कार्य

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

प्रकाशित तालिकाओं से अवांछित पंक्तियों को बाहर करने के लिए, जोड़ें… . क्लिक करें और फिर अगला

नीचे दिए गए स्क्रीनशॉट में दिखाया गया है कि ऑर्डरलाइन टेबल के कॉलम को कैसे फ़िल्टर किया जाता है।

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

सबसे पहले, स्नैपशॉट एजेंट को प्रारंभ करने के लिए शेड्यूल सेट करें। अगला क्लिक करें ।

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

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

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

अगला चरण (चित्र 16) आपके द्वारा चुने गए सभी विकल्पों को सारांशित करता है। समाप्त करें . पर क्लिक करने से पहले एक त्वरित समीक्षा करने की अनुशंसा की जाती है बटन।

प्रकाशन बनाने की प्रक्रिया शुरू होती है। आप रोकें . क्लिक कर सकते हैं प्रक्रिया को बाधित करने के लिए।

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

एक सदस्य जोड़ना

एक ग्राहक को प्रकाशक . द्वारा उपलब्ध कराए गए प्रकाशन प्राप्त होते हैं . एक ग्राहक को वितरित किए जाने वाले प्रकाशन की प्रति को सदस्यता . कहा जाता है . एक प्रकाशक के कई ग्राहक हो सकते हैं। प्रत्येक
ग्राहक इस प्रकाशक द्वारा प्रकाशित लेखों को एक इकाई के रूप में प्राप्त करता है जिसे प्रकाशन कहा जाता है जहां तक ​​प्रकाशक का संबंध है और सब्सक्राइबर की सदस्यता माना जाता है।

सब्सक्रिप्शन बनाकर, हम प्रकाशक को बस इतना कहते हैं, "मुझे इस प्रकाशन की प्रतियां चाहिए"। एक प्रकाशक के जितने प्रकाशन हो सकते हैं, उतने ही एक प्रकाशन के भी कई ग्राहक हो सकते हैं
प्रकाशन। इस प्रकार, प्रकाशकों का सदस्यों से संबंध एक-से-अनेक संबंध है।

नया सदस्यता विज़ार्ड हमें यह तय करने देता है कि हम किस प्रकाशन की सदस्यता लेना चाहेंगे। हम पहले बनाए गए प्रकाशनों की सूची में से चुन सकते हैं जैसा कि चित्र 20 में दिखाया गया है।

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

डेटा स्रोत नाम (DSN) का उपयोग करके Oracle ग्राहक जोड़ें। यह डीएसएन पहले से ही बनाया गया होगा, परीक्षण किया गया होगा और ओरेकल नेट के माध्यम से ओरेकल इंस्टेंस से जुड़ने में सक्षम होने के मामले में काम कर रहा होगा। इसका अर्थ यह है कि आपको SQL सर्वर होस्ट पर tnsnames.ora नामक फ़ाइल की प्रविष्टि के साथ एक Oracle क्लाइंट स्थापित करने की आवश्यकता है कनेक्शन के गंतव्य को परिभाषित करना। यह TNS प्रविष्टि बदले में डेटा स्रोत नाम को कॉन्फ़िगर करने के लिए उपयोग की जाती है जिसे नया सदस्यता विज़ार्ड इस स्तर पर मांग रहा है।

मैंने अपनी tnsnames.ora फ़ाइल में जो प्रविष्टि बनाई है वह इस तरह दिखती है:

ORCL10G =
 (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = IGIRI-LP)(PORT = 1522))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl10g)
    )
 )

हाइलाइट किया गया हिस्सा उपनाम है जबकि अन्य विवरण कनेक्शन के गंतव्य को परिभाषित करते हैं। हम पुष्टि कर सकते हैं कि क्या यह प्रविष्टि ठीक से काम कर रही है और क्या मेरे Oracle पर्यावरण चर tnsping का उपयोग करके सही तरीके से कॉन्फ़िगर किए गए हैं या नहीं उपयोगिता जैसा कि नीचे दिखाया गया है।

एक बार पुष्टि हो जाने पर, इस TNS प्रविष्टि का उपयोग उस DSN को कॉन्फ़िगर करने के लिए किया जाता है जिसका हम उपयोग करना चाहते हैं। हमारे TNS सेवा नाम को ORCL10G . कहा जाता है जबकि DSN को ORCLDC . कहा जाता है . यह वह DSN है जिसका उपयोग हम नए सदस्यता विज़ार्ड में करते हैं।

ध्यान दें कि हमने DSN को कॉन्फ़िगर करने के लिए ODBC के 64-बिट संस्करण का उपयोग किया है और यह एक सिस्टम DSN है, उपयोगकर्ता DSN नहीं। कॉन्फ़िगरेशन इस बात पर निर्भर नहीं करता है कि कंप्यूटर पर कौन लॉग ऑन है।

जोड़े जाने वाले ग्राहक प्रकार का चयन करें और डेटा स्रोत का नाम दर्ज करें। ठीकक्लिक करें ।

एक या अधिक सदस्य चुनें, साथ ही प्रत्येक सदस्यता के लिए एक डेटाबेस निर्दिष्ट करें।

एक बार DSN जुड़ जाने के बाद, हम वितरण एजेंट सुरक्षा को कॉन्फ़िगर करने के साथ आगे बढ़ सकते हैं। हमें पता चलता है कि यह उस स्थिति के समान है जब हमने स्नैपशॉट एजेंट सुरक्षा . को कॉन्फ़िगर किया था नए प्रकाशन विज़ार्ड में।

यहां, हालांकि, हमारे पास एक अनुभाग है जहां हम सदस्य . के साथ एक कनेक्शन स्थापित करते हैं प्रकाशक . के बजाय (याद रखें कि यह एक पुश सदस्यता है)। यह उपयोगकर्ता खाता Oracle इंस्टेंस पर बनाया गया होगा और इसके डिफ़ॉल्ट टेबलस्पेस पर टेबल और कोटा बनाने के लिए विशेषाधिकार होना चाहिए (यहां आपको Oracle DBA की आवश्यकता हो सकती है)।

वितरण एजेंट सुरक्षा में पैरामीटर जोड़ें और ठीक . क्लिक करें ।

प्रत्येक वितरण एजेंट के लिए खाता और कनेक्शन विकल्प निर्दिष्ट करें और अगला . क्लिक करें ।

प्रत्येक एजेंट के लिए सिंक्रनाइज़ेशन शेड्यूल निर्धारित करें। हमारे मामले में, हमने लगातार सिंक्रनाइज़ करना चुना। अगला क्लिक करें ।

सदस्यता को तुरंत आरंभ करने के विकल्प का चयन करें, जिसका अर्थ है कि स्नैपशॉट फ़ोल्डर में उपलब्ध सभी डेटा को फिर से कॉपी करना। प्रकाशन में कोई नया लेख जोड़े जाने पर NoSQL सर्वर ग्राहकों को सदस्यता को फिर से शुरू करने की सलाह दी जाती है। अगला क्लिक करें ।

प्रक्रिया सफलतापूर्वक पूरी होने के बाद किए जाने वाले विकल्पों का चयन करें। अगला क्लिक करें ।

आपके द्वारा जोड़ी गई जानकारी सत्यापित करें और समाप्त करें click क्लिक करें ।

सदस्यता बनाने की प्रक्रिया चलती है।

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

निगरानी और समस्या निवारण

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

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

वास्तविक Oracle त्रुटियाँ प्रतिकृति मॉनिटर और SQL सर्वर त्रुटि लॉग में सूचीबद्ध होती हैं जब उनका सामना किया जाता है। विवरण का यह स्तर SQL सर्वर प्रतिकृति को समस्या निवारण के लिए दिलचस्प बनाता है। Oracle (SQL Server DBA के लिए) का ज्ञान होने से उत्पन्न होने वाली त्रुटियों को समझने में काफी समय लगेगा।

चित्र 34 में त्रुटि के उदाहरण पर एक नज़र डालें। यह त्रुटि Oracle नेट और ODBC परिवेशों को सही ढंग से कॉन्फ़िगर किए जाने से पहले हुई थी। त्रुटियाँ बहुत स्पष्ट संकेत देती हैं कि समस्या कहाँ है।

जॉब एक्टिविटी मॉनिटर व्यू हमें यह भी बताता है कि कौन सी जॉब सफल होती है और जॉब हिस्ट्री की जांच करके हमें किस जॉब की समस्या का समाधान करना चाहिए।

एक बार पिछली सभी त्रुटियों का समाधान हो जाने के बाद, सदस्यता को डबल-क्लिक करके खोलना हमें सभी सत्रों, त्रुटियों का एक विस्तृत दृश्य देता है, और परिणाम जब हम सब कुछ ठीक होने की उम्मीद करते हैं। ध्यान दें कि एजेंट बल्क प्रकाशक से सब्सक्राइबर को बैचों में डेटा कॉपी करता है। हम Oracle उदाहरण में बनाई गई तालिकाओं को भी क्वेरी कर सकते हैं और रिकॉर्ड की तुलना कर सकते हैं। (चित्र 37)।

जैसा कि आप देख सकते हैं, SQL सर्वर Oracle में तालिका बनाने और डेटा की प्रतिलिपि बनाने से पहले स्रोत स्कीमा (बिक्री) को छोड़कर तालिका तैयार करता है।

Oracle उदाहरण में रिकॉर्ड गणना स्रोत तालिका में से एक से मेल खाती है और इस तथ्य को ध्यान में रखती है कि हम 1000 से अधिक ऑर्डर आईडी के लिए ऑर्डरलाइन तालिका को फ़िल्टर करते हैं।

निष्कर्ष

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

संदर्भ

हमेशा उपलब्ध उपलब्धता समूहों के लिए प्रतिकृति कॉन्फ़िगर करें
गैर-Oracle सदस्य
विषम डेटाबेस प्रतिकृति
Oracle सदस्य


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सही उपयोगकर्ता नाम और पासवर्ड देकर, ORA-01017 प्राप्त करें:अमान्य उपयोगकर्ता नाम/पासवर्ड; लॉगऑन अस्वीकृत

  2. Oracle प्रबंधित ODP.NET tnsnames.ora नहीं ढूँढ सकता

  3. संरचना का उपयोग कैसे करें और कॉलम सूची, refcursor के डेटाटाइप कैसे प्राप्त करें?

  4. एक तालिका से चयन करें, दूसरी तालिका में डालें oracle sql क्वेरी

  5. ओरेकल में लॉग टेबल से ईमेल बॉडी में डेटा कैसे एक्सपोर्ट करें?