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

PostgreSQL डेटा को दूरस्थ साइटों पर कैसे दोहराएं

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

डीबीए को यह भी सुनिश्चित करने की आवश्यकता है कि विभिन्न आवश्यकताओं को पूरा करने के लिए डेटा को दूरस्थ साइटों पर लगातार दोहराया जाता है। हालाँकि, ये आवश्यकताएँ हमेशा पूरे डेटाबेस को दोहराने के लिए नहीं हो सकती हैं; डेटा के केवल एक सबसेट को दोहराने की भी आवश्यकता हो सकती है (जैसे टेबल या टेबल्स का सेट या एनालिटिक्स, रिपोर्टिंग आदि के लिए SQL का उपयोग करके कई टेबल से डेटा)

इस ब्लॉग में, हम इस बात पर ध्यान देंगे कि रीयल-टाइम में तालिकाओं को दूरस्थ डेटाबेस में कैसे दोहराया जाए।

तालिका-स्तर प्रतिकृति क्या है?

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

टेबल-स्तरीय प्रतिकृति का उपयोग क्यों करें?

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

आइए कुछ आवश्यकताओं को देखें जो तालिका-स्तरीय प्रतिकृति हल करती हैं:

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

तालिका-स्तर प्रतिकृति को प्रभावित करने वाले विभिन्न कारक - क्या देखें

जैसा कि हमने ऊपर उल्लेख किया है, डीबीए को एक प्रभावी तालिका-स्तरीय प्रतिकृति प्रणाली को डिजाइन और कार्यान्वित करने के लिए विभिन्न प्रकार के वास्तविक समय के घटकों और कारकों को ध्यान में रखना होगा।

टेबल संरचना

डेटा तालिका का प्रकार अनुकूल है, प्रतिकृति प्रदर्शन पर बहुत प्रभाव पड़ता है। यदि तालिका बड़े आकार के बाइनरी डेटा के साथ BYTEA कॉलम को समायोजित कर रही है, तो प्रतिकृति प्रदर्शन हिट ले सकता है। नेटवर्क, सीपीयू और डिस्क पर प्रतिकृति के प्रभाव का सावधानीपूर्वक मूल्यांकन किया जाना चाहिए।

डेटा आकार

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

बुनियादी ढांचे के संसाधन

एक विश्वसनीय और स्थिर प्रदर्शन प्रतिकृति प्रणाली का निर्माण सुनिश्चित करने के लिए बुनियादी ढांचे को पर्याप्त रूप से पुनर्जीवित किया जाना चाहिए। किन बुनियादी ढांचे के घटकों पर विचार किया जाना चाहिए?

सीपीयू

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

नेटवर्क

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

स्मृति

यह सुनिश्चित करने के लिए पर्याप्त मेमोरी उपलब्ध होनी चाहिए कि तेजी से प्रतिकृति के लिए पर्याप्त डेटा कैश किया गया है।

स्रोत तालिका अपडेट

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

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

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

PostgreSQL में टेबल स्तर की प्रतिकृति को विभिन्न प्रकार के बाहरी उपकरणों (वाणिज्यिक या ओपन-सोर्स) का उपयोग करके लागू किया जा सकता है जो बाजार में उपलब्ध हैं या कस्टम निर्मित डेटा-स्ट्रीम का उपयोग करके।

आइए इनमें से कुछ टूल, उनकी विशेषताओं और क्षमताओं पर एक नज़र डालें...

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

स्लोनी

Slony सबसे लोकप्रिय टूल में से एक है जिसका उपयोग विशिष्ट व्यक्तिगत तालिका या तालिकाओं को वास्तविक समय में एक PostgreSQL डेटाबेस से दूसरे में अतुल्यकालिक रूप से दोहराने के लिए किया जाता है। यह एक पर्ल आधारित उपकरण है जो एक डेटाबेस से दूसरी साइट पर किसी तालिका (या तालिकाओं के सेट) के डेटा परिवर्तनों की ट्रिगर आधारित प्रतिकृति करता है। यह काफी विश्वसनीय है और इसमें वर्षों का विकास इतिहास है। हालांकि अत्यधिक विश्वसनीय, एक ट्रिगर-आधारित उपकरण होने के कारण, प्रतिकृति सेटअप को प्रबंधित करना जटिल हो सकता है।

आइए नजर डालते हैं स्लोनी की कुछ क्षमताओं पर...

स्लोनी का उपयोग करने के लाभ

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

स्लोनी का उपयोग करने के नुकसान

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

बुकार्डो

Bucardo PostgreSQL के लिए एक अन्य ओपन-सोर्स पर्ल-आधारित प्रतिकृति प्रणाली है जो दो या अधिक PostgreSQL उदाहरणों के बीच विशिष्ट तालिका डेटा की अतुल्यकालिक प्रतिकृति का समर्थन करता है। बुकार्डो को स्लोनी से जो अलग बनाता है वह यह है कि यह मल्टी-मास्टर प्रतिकृति का भी समर्थन करता है।

आइए हम विभिन्न प्रकार के प्रतिकृति तंत्रों को देखें जिन्हें लागू करने में बुकार्डो मदद करता है...

  • मल्टी-मास्टर प्रतिकृति:तालिकाओं को दो या अधिक PostgreSQL उदाहरणों के बीच दोनों दिशाओं में दोहराया जा सकता है और लेन-देन संबंधी डेटा को द्वि-दिशात्मक रूप से समन्वयित किया जाएगा
  • मास्टर-स्लेव:मास्टर में टेबल से डेटा को एसिंक्रोनस रूप से स्लेव में दोहराया जाएगा और स्लेव ऑपरेशन पढ़ने के लिए उपलब्ध है
  • पूर्ण प्रतिलिपि मोड (मास्टर-दास):बुकार्डो -/दास से सभी डेटा को हटाकर मास्टर से दास नोड में संपूर्ण डेटा को दोहराएं

बुकार्डो के उपयोग के लाभ

  • इंस्टॉल करने में आसान
  • मल्टी-मास्टर, मास्टर-स्लेव और पूर्ण प्रतिलिपि प्रतिकृति मोड का समर्थन करता है
  • इसका उपयोग डेटाबेस को अपग्रेड करने के लिए किया जा सकता है
  • विभिन्न PostgreSQL संस्करणों के बीच प्रतिकृति की जा सकती है

बुकार्डो के उपयोग के नुकसान

  • ट्रिगर-आधारित प्रतिकृति होने के कारण, प्रदर्शन एक चुनौती हो सकता है
  • DDL जैसे स्कीमा परिवर्तन प्रतिकृति को तोड़ सकते हैं
  • बड़ी संख्या में तालिकाओं को दोहराने से रखरखाव का खर्चा बढ़ सकता है
  • अच्छे प्रदर्शन करने वाले प्रतिकृति के लिए बुनियादी ढांचे के संसाधनों को अनुकूलित किया जाना चाहिए, अन्यथा, स्थिरता प्राप्त नहीं की जा सकती।

PostgreSQL तार्किक प्रतिकृति

तार्किक प्रतिकृति PostgreSQL की एक क्रांतिकारी अंतर्निहित विशेषता है जो WAL रिकॉर्ड के माध्यम से अलग-अलग तालिकाओं को दोहराने में मदद करती है। WAL आधारित प्रतिकृति होने के नाते (स्ट्रीमिंग प्रतिकृति के समान) pg तार्किक अन्य तालिका प्रतिकृति उपकरणों की तुलना में अलग है। WAL रिकॉर्ड के माध्यम से डेटा की प्रतिलिपि बनाना हमेशा नेटवर्क पर डेटा की नकल करने का सबसे विश्वसनीय और प्रदर्शनकारी तरीका होता है। तार्किक प्रतिकृति को छोड़कर बाजार में लगभग सभी उपकरण ट्रिगर-आधारित प्रतिकृति प्रदान करते हैं।

PostgreSQL लॉजिकल प्रतिकृति का उपयोग करने के लाभ

  • सबसे अच्छा विकल्प जब आप किसी एक टेबल या टेबल के सेट की प्रतिकृति बनाना चाहते हैं
  • यह एक अच्छा विकल्प है यदि आवश्यकता रिपोर्टिंग या विश्लेषणात्मक उद्देश्यों के लिए विभिन्न डेटाबेस से विशिष्ट तालिकाओं को एक एकल डेटाबेस (जैसे डेटा वेयरहाउसिंग या रिपोर्टिंग डेटाबेस) में माइग्रेट करना है
  • ट्रिगर की कोई झंझट नहीं

PostgreSQL तार्किक प्रतिकृति का उपयोग करने के नुकसान

  • WAL फ़ाइलों/WAL संग्रह फ़ाइलों का गलत प्रबंधन तार्किक प्रतिकृति के लिए चुनौतियां खड़ी कर सकता है
  • हम प्राथमिक या अद्वितीय कुंजियों के बिना तालिकाओं को दोहरा नहीं सकते
  • DDL और TRUNCATE को दोहराया नहीं जाता है
  • यदि WAL को हटा दिया जाए तो प्रतिकृति अंतराल बढ़ सकता है। इसका मतलब है, प्रतिकृति और वाल प्रबंधन को एक दूसरे के पूरक होना चाहिए ताकि यह सुनिश्चित हो सके कि प्रतिकृति टूट न जाए
  • बड़ी वस्तुओं को दोहराया नहीं जा सकता

पोस्टग्रेएसक्यूएल लॉजिकल प्रतिकृति और इसके और स्ट्रीमिंग प्रतिकृति के बीच अंतर को बेहतर ढंग से समझने में आपकी सहायता के लिए यहां कुछ और संसाधन दिए गए हैं।

विदेशी डेटा रैपर

जबकि विदेशी डेटा रैपर वास्तव में डेटा की नकल नहीं करते हैं, मैं PostgreSQL की इस विशेषता को उजागर करना चाहता था क्योंकि यह DBA को वास्तव में डेटा की प्रतिकृति के बिना प्रतिकृति के समान कुछ हासिल करने में मदद कर सकता है। इसका मतलब है कि डेटा को स्रोत से लक्ष्य तक दोहराया नहीं जाता है और डेटा को लक्ष्य डेटाबेस से एप्लिकेशन द्वारा एक्सेस किया जा सकता है। लक्ष्य डेटाबेस में केवल एक तालिका संरचना होती है जिसमें स्रोत तालिका के होस्ट और डेटाबेस विवरण वाले लिंक होते हैं और जब एप्लिकेशन लक्ष्य तालिका को क्वेरी करता है, तो डेटा को स्रोत डेटाबेस से डेटाबेस लिंक के समान लक्ष्य डेटाबेस में खींच लिया जाता है। यदि FDW मदद कर सकते हैं, तो, आप पूरी तरह से नेटवर्क पर डेटा की नकल करने के ऊपरी हिस्से से बच सकते हैं। कई बार हम ऐसी स्थिति में आ जाते हैं, जहां डेटा को भौतिक रूप से मौजूद होने की आवश्यकता के बिना दूरस्थ लक्ष्य डेटाबेस पर रिपोर्ट निष्पादित की जा सकती है।

निम्नलिखित स्थितियों में FDW एक बेहतरीन विकल्प हैं -

  • यदि आपके पास स्रोत डेटाबेस में छोटी और स्थिर तालिकाएँ हैं, तो, यह वास्तव में डेटा को दोहराने लायक नहीं है
  • वास्तव में फायदेमंद हो सकता है, यदि आपके पास स्रोत डेटाबेस में वास्तव में बड़ी तालिकाएं हैं और आप लक्ष्य डेटाबेस पर कुल क्वेरी चला रहे हैं।

विदेशी डेटा रैपर का उपयोग करने के लाभ

  • डेटा की नकल करने से पूरी तरह बचा जा सकता है जिससे समय और संसाधनों की बचत हो सकती है
  • कार्यान्वयन में आसान
  • डाटा लिया गया डेटा हमेशा नवीनतम होता है
  • सिर पर कोई रखरखाव नहीं

विदेशी डेटा रैपर का उपयोग करने के नुकसान

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

निष्कर्ष

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डेटाबेस में अंतिम एन पंक्तियों को क्रम में प्राप्त करें?

  2. विंडोज के लिए पोस्टग्रेएसक्यूएल विकसित करना, भाग 3

  3. Postgres में JSON फ़ील्ड पर इंडेक्स कैसे बनाएं?

  4. आने वाले सभी कनेक्शनों को स्वीकार करने के लिए PostgreSQL को कैसे कॉन्फ़िगर करें

  5. पीएल/पीजीएसक्यूएल में पूर्णांक [] पर पुनरावृति