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

पॉइंट इन टाइम रिकवरी का उपयोग करके अपने पोस्टग्रेएसक्यूएल डेटाबेस के लिए आरपीओ को कम कैसे करें

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

अगर आप रात के 10 बजे बैकअप करते हैं। और आपका डेटाबेस सिस्टम अपराह्न 3 बजे मरम्मत से परे क्रैश हो जाता है। अगले दिन, आप वह सब कुछ खो देते हैं जो आपके पिछले बैकअप के बाद से बदला गया था। इस विशेष संदर्भ में आपका RPO पिछले दिन का बैकअप है, जिसका अर्थ है कि आप एक दिन के महत्वपूर्ण परिवर्तनों को खोने का जोखिम उठा सकते हैं।

डिजास्टर रिकवरी पर हमारे श्वेतपत्र से नीचे दिया गया चित्र अवधारणा को दर्शाता है।

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

यहीं से प्वाइंट इन टाइम रिकवरी (PITR) की अवधारणा सामने आती है।

PITR क्या है?

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

PostgreSQL के लिए, परिवर्तन WAL लॉग में संग्रहीत किए जाते हैं (WAL और उनके द्वारा संग्रहीत डेटा के बारे में अधिक जानकारी के लिए, आप इस ब्लॉग को देख सकते हैं)।

इसलिए पीआईटीआर करने में सक्षम होने के लिए हमें दो चीजें सुनिश्चित करने की आवश्यकता है:बैकअप और वाल (हमें उनके लिए निरंतर संग्रह स्थापित करने की आवश्यकता है)।

PITR करने के लिए, हमें बैकअप पुनर्प्राप्त करने और फिर WALs लागू करने की आवश्यकता होगी।

यह कब उपयोगी हो सकता है?

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

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

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

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

ClusterControl के साथ इसका उपयोग कैसे करें?

पिछले ब्लॉग में, हम देख सकते थे कि PITR को मैन्युअल रूप से कैसे कार्यान्वित किया जाता है, अब देखते हैं कि इस कार्य को करने के लिए ClusterControl का उपयोग कैसे करें।

प्वाइंट इन टाइम रिकवरी को सक्षम करना

PITR सुविधा को सक्षम करने के लिए हमारे पास WAL संग्रह सक्षम होना चाहिए। इसके लिए हम क्लस्टरकंट्रोल पर जा सकते हैं -> पोस्टग्रेएसक्यूएल क्लस्टर का चयन करें -> नोड क्रियाएं -> वाल आर्काइविंग सक्षम करें, या बस क्लस्टरकंट्रोल पर जाएं -> पोस्टग्रेएसक्यूएल क्लस्टर चुनें -> बैकअप -> सेटिंग्स और विकल्प को सक्षम करें "पॉइंट-इन-टाइम रिकवरी सक्षम करें" (वाल संग्रह)” जैसा कि हम निम्नलिखित छवि में देखेंगे।

हमें यह ध्यान रखना चाहिए कि WAL संग्रह को सक्षम करने के लिए, हमें अपने डेटाबेस को पुनरारंभ करना होगा। ClusterControl हमारे लिए भी यह कर सकता है।

"बैकअप निर्देशिका" और "बैकअप अवधारण अवधि" जैसे सभी बैकअप के लिए सामान्य विकल्पों के अलावा, यहां हम WAL अवधारण अवधि भी निर्दिष्ट कर सकते हैं। डिफ़ॉल्ट रूप से 0 है, जिसका अर्थ है हमेशा के लिए।

यह पुष्टि करने के लिए कि हमने WAL संग्रह सक्षम किया है, हम ClusterControl में अपने मास्टर नोड का चयन कर सकते हैं -> PostgreSQL क्लस्टर का चयन करें -> नोड्स, और हमें WAL संग्रह सक्षम संदेश देखना चाहिए, जैसा कि हम निम्नलिखित छवि में देख सकते हैं।

प्वाइंट इन टाइम रिकवरी के साथ संगत बैकअप बनाना

WAL संग्रह सक्षम होने के बाद, जैसा कि हमने पिछले चरण में देखा था, हम अपना बैकअप PITR के साथ संगत बना सकते हैं। इसके लिए, ClusterControl पर जाएँ -> PostgreSQL क्लस्टर चुनें -> बैकअप -> बैकअप बनाएँ।

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

यहां हमें पीआईटीआर के साथ संगत "पीजी_बेसबैकअप" विधि का चयन करना होगा, जिस सर्वर से बैकअप लिया जाएगा (पीआईटीआर के साथ संगत होने के लिए, यह मास्टर होना चाहिए), और जहां हम बैकअप स्टोर करना चाहते हैं। हम संबंधित बटन को सक्षम करके अपने बैकअप को क्लाउड (AWS, Google या Azure) पर भी अपलोड कर सकते हैं।

फिर हम संपीड़न, एन्क्रिप्शन और हमारे बैकअप के प्रतिधारण के उपयोग को निर्दिष्ट करते हैं।

बैकअप अनुभाग पर, हम बैकअप की प्रगति और विधि, आकार, स्थान आदि जैसी जानकारी देख सकते हैं।

बैकअप से पॉइंट इन टाइम रिकवरी

एक बार बैकअप समाप्त हो जाने पर, हम इसे ClusterControl PITR सुविधा का उपयोग करके पुनर्स्थापित कर सकते हैं। इसके लिए, हमारे बैकअप सेक्शन (ClusterControl -> Select PostgreSQL Cluster -> Backup) में, हम "रिस्टोर बैकअप" का चयन कर सकते हैं, या सीधे उस बैकअप पर "रिस्टोर" कर सकते हैं जिसे हम रिस्टोर करना चाहते हैं।

यहां हम चुनते हैं कि हम किस बैकअप को पुनर्स्थापित करना चाहते हैं और किस निर्देशिका से।

हम "रिस्टोर ऑन नोड" विकल्प को चयनित छोड़ देते हैं और जारी रखते हैं।

अब हमें यह चुनना होगा कि हमारे बैकअप को कहाँ पुनर्स्थापित करना है और PITR विकल्प को सक्षम करना है। समय निर्दिष्ट करके, यह वह समय होगा जब तक हम ठीक नहीं हो जाते। ध्यान रखें कि यूटीसी टाइमज़ोन का उपयोग किया जाता है और मास्टर में हमारी पोस्टग्रेएसक्यूएल सेवा फिर से शुरू हो जाएगी।

हम अपने ClusterControl में गतिविधि अनुभाग से अपने पुनर्स्थापना की प्रगति की निगरानी कर सकते हैं।

निष्कर्ष

कड़े RPO को पूरा करने के लिए PITR एक आवश्यक विशेषता है। एक सही आपदा वसूली योजना सुनिश्चित करने के लिए हमें इसे सही ढंग से स्थापित करने की आवश्यकता है। ClusterControl आपके PostgreSQL डेटाबेस के लिए PITR को लागू करने में आपकी मदद करने के लिए उपयोग में आसान इंटरफ़ेस प्रदान करता है।


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

  2. Slony-I 2.0.x को नवीनतम संस्करण 2.1.x में अपग्रेड करना

  3. मैं php को postgresql के साथ काम करने के लिए कैसे सक्षम करूं?

  4. Postgres 9.1 में किसी तालिका का OID निर्धारित करना?

  5. Psql सर्वर से कनेक्ट नहीं हो सका:ऐसी कोई फ़ाइल या निर्देशिका नहीं, 5432 त्रुटि?