AWS RDS PostgreSQL उदाहरण से वाल फाइलें प्राप्त करें


18

हमारे पास Amazon Web Services पर Postgres RDS उदाहरण है। हमारे पास स्वचालित बैकअप सक्षम हैं, और हम दैनिक आधार पर स्नैपशॉट लेते हैं। हम RDS उदाहरण का एक स्थानीय 'अप-टू-डेट' बैकअप उत्पन्न करना चाहते हैं जिसे हम स्वयं प्रबंधित कर सकते हैं। उदाहरण के खिलाफ pg_dump चलाना पर्याप्त नहीं है क्योंकि हम डेटाबेस को किसी भी समय पुनर्स्थापित करना चाहते हैं। हम उस बैकअप के बाद से आरडीएस और सभी वाल फाइलों का स्थानीय बैकअप लेना पसंद करेंगे। प्रशन:

  1. क्या वाल फाइल और बैकअप तक पहुँचना संभव है जो RDS अपने बैकअप रूटीन में स्वतः उत्पन्न हो रहा है? यह आदर्श होगा। मैं उनमें से एक स्थानीय प्रति डाउनलोड करना चाहूंगा। प्रारंभिक जांच के बाद, मुझे लगता है कि इस सवाल का जवाब 'नहीं' है। ऐसा लगता है कि आरडीएस एस 3 में अपनी वाल फाइलें और बैकअप स्टोर कर रहा है, लेकिन यह उन्हें हमारे लिए अप्राप्य बनाता है। मैं पुष्टि करना पसंद करूंगा।

  2. क्या आरडीएस उदाहरण पर होने वाले लेनदेन (वाल फाइलें) तक पहुंचने का कोई अन्य तरीका है? मुझे लगता है कि हमें अपने EC2 उदाहरण में एक EC2 पर पोस्टग्रेज डेटाबेस बनाने और हमारे प्राथमिक 'लाइव' RDS उदाहरण से 'फीड' लेनदेन करने में सक्षम होना चाहिए। एक बार हमारे EC2 उदाहरण को अपडेट करने के बाद, हम वहां से Wal files खींच सकते हैं। क्या सिरदर्द है, हालांकि: / क्या यह सेटअप संभव है? हमारे RDS उदाहरण से EC2 उदाहरण में 'फीड' करने के लिए क्या जादू है ताकि यह हमेशा अद्यतित रहे?

धन्यवाद!

जवाबों:


17

अपडेट: मैंने इसके बारे में AWS फ़ोरम में पोस्ट किया है - कृपया इसमें झंकार जाएं और वहां इसके लिए पूछें


लेखन के समय, अमेज़ॅन आरडीएस आरडीएस के बाहर भौतिक प्रतिकृति का समर्थन नहीं करता है। आप एक लॉगिन का उपयोग करके GRANTउपयोगकर्ताओं को REPLICATIONसही कर rds_superuserसकते हैं, लेकिन आप replicationबाहरी IP के लिए प्रविष्टियों को कॉन्फ़िगर नहीं कर सकते pg_hba.conf

इसके अलावा, जब आप आरडीएस में एक डीबी पैरामीटर समूह बनाते हैं, तो कुछ प्रमुख पैरामीटर दिखाए जाते हैं, लेकिन लॉक किए जाते हैं, जैसे archive_command, जिसे लॉक किया गया है /etc/rds/dbbin/pgscripts/rds_wal_archive %p। PostgreSQL के लिए AWS RDS इन वॉल्स को बाहरी एक्सेस (S3 के माध्यम से कहना) के लिए प्रकट नहीं होता है, क्योंकि आपको बाहरी PITR के लिए वाल-शिपिंग प्रतिकृति का उपयोग करना होगा।

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

तो आपको आरडीएस की अपनी बैकअप सुविधाओं - डंप, स्नैपशॉट और स्वयं के वाल-आधारित पीआईटीआर का उपयोग करने की आवश्यकता है।


यहां तक ​​कि अगर आरडीएस ने आपको प्रतिकृति कनेक्शन ( pg_basebackupया स्ट्रीमिंग प्रतिकृति के लिए) बनाने दिया और आपको संग्रहीत वाल तक पहुंचने की अनुमति दी, तो आप वास्तव में उस वाल का उपभोग करने में सक्षम नहीं हो सकते हैं। आरडीएस एक पैक्ड पोस्टग्रैसीक्यू चलाता है, हालांकि कोई नहीं जानता कि कितना भारी पैच है या क्या यह ऑन-डिस्क प्रारूप को महत्वपूर्ण रूप से बदल देता है। यह अमेज़ॅन द्वारा चयनित वास्तुकला पर भी चलता है, जो कि शायद x64 लिनक्स है, लेकिन आसानी से निर्धारित नहीं है। चूंकि PostgreSQL की डिस्क प्रारूप और प्रतिकृति आर्किटेक्चर पर निर्भर हैं, आप केवल उसी आर्किटेक्चर के साथ मेजबानों को दोहरा सकते हैं जैसा कि अमेज़ॅन आरडीएस द्वारा उपयोग किया जाता है, और केवल तभी जब आपका पोस्टग्रेक्यूएल बिल्ड उनके साथ संगत था।

अन्य बातों के अलावा इसका मतलब है कि आपके पास आरडीएस से दूर जाने का कोई आसान तरीका नहीं है। आपको डेटाबेस के लिए लिखने के लिए लंबे समय तक सभी को रोकना pg_dumpहोगा, इसे पुनर्स्थापित करना होगा, और नए डीबी को चालू करना होगा। प्रतिकृति और विफलता के साथ सामान्य ट्रिक, rsync, आदि के साथ काम नहीं करेंगे, क्योंकि आपके पास DB होस्ट तक सीधी पहुंच नहीं है।

यहां तक ​​कि अगर आरडीएस एक अप्रकाशित पोस्टग्रेसीक्यूएल चलाता है, तो अमेज़ॅन शायद आपको आरडीएस में वाल स्ट्रीमिंग करने या pg_basebackupसुरक्षा कारणों का उपयोग करके आरडीएस में आयात करने की अनुमति नहीं देना चाहेगा । PostgreSQL डेटा निर्देशिका को विश्वसनीय सामग्री के रूप में मानता है, और यदि आपने किसी भी चतुर 'LANGUAGE c' फ़ंक्शन को तैयार किया है, जो आंतरिक कार्यक्षमता को हुक करता है या कुछ और मुश्किल है, तो आप सर्वर का अधिक से अधिक उपयोग करने में सक्षम हो सकते हैं, जो कि आपके लिए आवश्यक है। । इसलिए अमेज़न जल्द ही इनबाउंड वाल की अनुमति नहीं देने वाला है।

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


इसके बजाय आपको Londiste या Bucardo जैसे टूल का इस्तेमाल करना चाहिए।


यदि RDS PITR का समर्थन नहीं करता है, तो ऐसा कौन सा बटन है जो कहता है कि "एक समय में एक बिंदु पर पुनर्स्थापित करें" अच्छा है?
जो लव

1
RDS RDS के भीतर PITR का समर्थन करता है । आप आरडीएस के बाहर वाल शिप नहीं कर सकते । मैं उस उत्तर को स्पष्ट करने के लिए संपादित करूंगा, क्योंकि मैं देख सकता हूं कि आप इसे कैसे पढ़ सकते हैं क्योंकि यह कहना है कि आरडीएस का कोई PITR समर्थन नहीं था।
क्रेग रिंगर

3

यह अब लॉजिकल प्रतिकृति का उपयोग करना संभव है: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.Gonal.eatal.FeatureSupport.LogicalReplication


धन्यवाद! मुझे अक्सर "आधिकारिक" दस्तावेज मिलता है जो कि अमेज़ॅन के डॉक्स में इतना गहरा दफन है कि मुझे आपके जैसे उत्तरों के माध्यम से सामान
ढूंढना होगा

1

आरडीएस में लोंडिस्ट और बुकार्डो जैसे ट्रिगर-आधारित सिस्टम का उपयोग करके और उस फोरम थ्रेड पर एक उत्तर के अनुसार अब 10 नवंबर 2014 तक समर्थन किया गया है।

यहां घोषणा


1
यह काम है - लेकिन यहाँ के बारे में बात की जा रही है के रूप में एक ही बात नहीं है। वे आरडीएस के साथ बुकार्डो और लोंडिस्ट जैसे ट्रिगर-आधारित तार्किक प्रतिकृति के औंस के लिए समर्थन जोड़ रहे हैं। यह "भौतिक" लॉग-आधारित स्ट्रीमिंग के लिए समर्थन नहीं जोड़ता है जैसा कि हॉट स्टैंडबाय द्वारा उपयोग किया जाता है pg_basebackup, आदि। वे सबसे अच्छा विकल्प बना सकते हैं, क्योंकि सुरक्षा चिंताएं वास्तव में भौतिक प्रतिकृति का समर्थन करने से रोकती हैं।
क्रेग रिंगर

अहा, हां। और संपादन के लिए धन्यवाद। मुझे यह सवाल दूसरे से मिला कि अधिक उदारता से प्रतिकृति विकल्पों के लिए कहा गया है - इस पर ध्यान दिया जाना चाहिए कि विशेष रूप से वाल फाइलों के बारे में पूछता है।
माइकेल-स्लम

कृपया संबंधित प्रश्न के लिए भी एक लिंक जोड़ें। यह वैसे भी उपयोगी होगा।
क्रेग रिंगर

यहाँ आप हैं - मेरा जवाब वहाँ भी पोस्ट करेंगे: stackoverflow.com/questions/20468230/…
michel-slm
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.