नई उपयोगिताओं के लिए धन्यवाद barman-cloud-restore और barman-cloud-wal-restore Barman 2.11 . में पेश किया गया , अब barman-cloud-wal-archive का उपयोग करके पहले से निष्पादित पूर्ण बैकअप का उपयोग करके PostgreSQL इंस्टेंस की पुनर्प्राप्ति को निष्पादित करना संभव है और barman-cloud-backup आदेश। आइए एक साथ देखें कि निम्नलिखित लेख में इसे कैसे लागू किया जाए।
यह ध्यान देने योग्य है कि बर्मन 2.11 में, बर्मन के लिए सभी क्लाउड यूटिलिटीज अब barman-cli-cloud नामक एक अलग पैकेज में हैं। ।
आवश्यकताएं
1. barman-cli-cloud पैकेज
2. एक PostgreSQL उदाहरण
3. AWS S3 बकेट
4. एक दूसरी वर्चुअल मशीन जहां पुनर्स्थापना निष्पादित करना है
इस लेख में, हम barman-cli-cloud का परीक्षण करेंगे डेबियन बस्टर और पोस्टग्रेएसक्यूएल 12 के साथ वर्चुअल मशीन में कार्यात्मकता। इस आलेख में निहित निर्देशों का ठीक से पालन करने के लिए, हम यह भी मानते हैं कि आपके पास है:
- WAL फ़ाइलों को
barman-cloud-wal-archiveका उपयोग करके मौजूदा S3 बकेट में संग्रहीत करने के लिए पोस्टग्रेज़ को कॉन्फ़िगर किया गया - एक बैकअप निष्पादित किया और उसे
barman-cloud-backupके माध्यम से उसी S3 बकेट में भेज दिया
आप इन पिछले ब्लॉग लेखों में निहित निर्देशों का पालन करके इसे आसानी से प्राप्त कर सकते हैं:
- बर्मन क्लाउड - भाग 1:वाल आर्काइव
- बर्मन क्लाउड - भाग 2:क्लाउड बैकअप
पुनर्प्राप्ति सर्वर सेट अप करें
परिणामस्वरूप, हमारे पास AWS पर एक S3 बकेट है जिसका नाम barman-s3-test . है जिसमें पहले से ही WAL फ़ाइलें और बैकअप barman-cloud-wal-archive के माध्यम से संग्रहीत हैं और barman-cloud-backup टूल्स, अब हमें एक सर्वर को ठीक से कॉन्फ़िगर करने की आवश्यकता है जो पोस्टग्रेएसक्यूएल इंस्टेंस की पुनर्प्राप्ति के लिए होस्ट होगा।
1. आधिकारिक PGDG रिपॉजिटरी से PostgreSQL 12 स्थापित करें
2. द्वितीय चतुर्थांश सार्वजनिक भंडार स्थापित करें
3. barman-cli-cloud इंस्टॉल करें पैकेज:
example@sqldat.com:~# apt updateexample@sqldat.com:~# apt install barman-cli-cloud
4. स्थापित करें awscli पैकेज:
example@sqldat.com:~# apt install awscli
5. उपयोगकर्ता को पोस्टग्रेज करने के लिए awscli टूल के साथ AWS क्रेडेंशियल कॉन्फ़िगर करें:
example@sqldat.com:~$ aws config --profile barman-cloudAWS एक्सेस की आईडी [कोई नहीं]:AKI*****************AWS सीक्रेट एक्सेस की [कोई नहीं ]:************************** डिफ़ॉल्ट क्षेत्र का नाम [कोई नहीं]:यूरोपीय संघ -पश्चिम-1डिफ़ॉल्ट आउटपुट स्वरूप [कोई नहीं]:json
पुनर्स्थापन प्रक्रिया निष्पादित करें
अब जबकि पुनर्प्राप्ति सर्वर सही ढंग से कॉन्फ़िगर किया गया है, हम पुनर्स्थापना प्रक्रिया शुरू करने के लिए तैयार हैं।
बर्मन 2.11 ने barman-cloud-backup-list का परिचय दिया कमांड जो आपको barman-cloud-backup . के साथ किए गए बैकअप के बारे में जानकारी प्राप्त करने की अनुमति देता है :
example@sqldat.com:~$ barman-cloud-backup-list \ --profile barman-cloud \ s3://barman-s3-test pg12बैकअप आईडी समाप्ति समय प्रारंभ Wal20200713T120856 2020-07-13 12:09:05 00000001000000000000000C
अब हम barman-cloud-restore . का उपयोग करके पुनर्स्थापना निष्पादित करने के लिए तैयार हैं आदेश:
example@sqldat.com:~$ barman-cloud-restore \ --profile barman-cloud \ s3://barman-s3-test \ pg12 20200713T120856 \ /var/lib/postgresql/12/main/
एक बार जब पुनर्स्थापना सफलतापूर्वक समाप्त हो जाती है तो हम PGDATA निर्देशिका सामग्री की जांच कर सकते हैं:
अब, यह सुनिश्चित करने के लिए कि पुनर्स्थापना प्रक्रिया ठीक से काम कर रही है, हमें पुनर्प्राप्त PostgreSQL इंस्टेंस को शुरू करने और यह सत्यापित करने की आवश्यकता है कि सब कुछ अपेक्षित रूप से काम करता है। इस प्रक्रिया के लिए कुछ अतिरिक्त चरणों की आवश्यकता है।
सबसे पहले, चूंकि हम डेबियन सिस्टम पर हैं, इसलिए हमें /etc/postgresql/12/main/ के तहत PostgreSQL कॉन्फ़िगरेशन वाली फाइलों को कॉपी करना होगा। निर्देशिका:
example@sqldat.com:~$ cp /var/lib/postgresql/12/main/postgresql.conf /etc/postgresql/12/main/example@sqldat.com:~$ cp /var/lib/postgresql /12/main/pg_hba.conf /etc/postgresql/12/main/example@sqldat.com:~$ cp /var/lib/postgresql/12/main/pg_ident.conf /etc/postgresql/12/main/
दूसरा, recovery.signal बनाएं फ़ाइल:
example@sqldat.com:~$ टच /var/lib/postgresql/12/main/recovery.signal
फिर, archive_command . को अक्षम करें पुनर्प्राप्त उदाहरण को मूल उदाहरण के समान बाल्टी में लिखने से रोकने के लिए:
example@sqldat.com:~$ इको \"archive_command ='cd .'\">> /etc/postgresql/12/main/postgresql.conf
उसके बाद, आपको barman-cloud-wal-restore का उपयोग करके S3 बकेट से नवीनतम उपलब्ध टाइमलाइन की WAL फ़ाइलों को पुनः प्राप्त करने के लिए PostgreSQL को कॉन्फ़िगर करने की आवश्यकता है। restore_command . में :
example@sqldat.com:~$ echo \"restore_command ='barman-cloud-wal-restore --profile barman-cloud s3://barman-s3-test pg12%f %p'\">> / etc/postgresql/12/main/postgresql.confexample@sqldat.com:~$ echo \"recovery_target_timeline ='latest'\">> /etc/postgresql/12/main/postgresql.conf
महत्वपूर्ण :आगे बढ़ने से पहले कृपया सुनिश्चित करें कि PostgreSQL इंस्टेंस नहीं चल रहा है, और गंतव्य निर्देशिका (डिफ़ॉल्ट PostgreSQL डेटादिर) खाली है।
अंत में, हम नया पुनर्प्राप्त उदाहरण शुरू करने के लिए तैयार हैं:
example@sqldat.com:~# systemctl पुनरारंभ example@sqldat.com
महान! जैसा कि हम PostgreSQL लॉग से देख सकते हैं, WAL फ़ाइलें S3 बकेट से पुनर्प्राप्त की जाती हैं और उदाहरण सही ढंग से प्रारंभ किया गया था:
example@sqldat.com:~$ कम /var/log/postgresql/postgresql-12-main.log...2020-07-13 12:43:25.093 UTC [9458] लॉग:PostgreSQL 12.3 (डेबियन) शुरू करना 12.3-1.pgdg100+1) x86_64-पीसी-लिनक्स-ग्नू पर, जीसीसी (डेबियन 8.3.0-6) 8.3.0, 64-बिट2020-07-13 12:43:25.093 यूटीसी [9458] लॉग द्वारा संकलित:IPv4 एड्रेस "127.0.0.1", पोर्ट 54322020-07-13 12:43:25.095 UTC [9458] लॉग पर सुनना:यूनिक्स सॉकेट पर सुनना "/var/run/postgresql/.s.PGSQL.5432"2020-07- 13 12:43:25.111 यूटीसी [9459] लॉग:डेटाबेस सिस्टम बाधित हो गया था; अंतिम बार 2020-07-13 12:08:56 यूटीसी2020-07-13 12:43:25.508 यूटीसी [9459] लॉग:आर्काइव रिकवरी शुरू करना2020-07-13 12:43:26.010 यूटीसी [9459] लॉग:रिस्टोर लॉग फ़ाइल "000000000000000000000C" संग्रह से 2020-07-13 12:43:26.052 UTC [9459] लॉग:0/C0000282020-07-13 12:43:26.054 UTC [9459] पर फिर से शुरू होता है लॉग:लगातार पुनर्प्राप्ति स्थिति 0/C0001382020 पर पहुंच गई -07-13 12:43:26.054 यूटीसी [9458] लॉग:डेटाबेस सिस्टम केवल पढ़ने के लिए कनेक्शन स्वीकार करने के लिए तैयार है2020-07-13 12:43:26.469 यूटीसी [9459] लॉग:आर्काइव2020-07 से पुनर्स्थापित लॉग फ़ाइल "000001000000000000000D"- 13 12:43:26.823 यूटीसी [9459] लॉग:0/डी0001बी02020-07-07-13 पर फिर से करें 12:43:27.242 यूटीसी [9459] लॉग:आर्काइव2020-07-13 12:43:27.592 से लॉग फ़ाइल "000001000000000000000 डी" बहाल UTC [9459] लॉग:चयनित नई टाइमलाइन आईडी:22020-07-13 12:43:27.644 यूटीसी [9459] लॉग:संग्रह पुनर्प्राप्ति पूर्ण2020-07-13 12:43:27.979 यूटीसी [9458] लॉग:डेटाबेस सिस्टम तैयार है कनेक्शन स्वीकार करें
निष्कर्ष
हमेशा की तरह बर्मन की किसी भी नई रिलीज़ के साथ, हम अनुशंसा करते हैं कि हर कोई अपने सिस्टम को नवीनतम संस्करण में अपडेट करे। परिवर्तनों और बग फिक्स की पूरी सूची यहां उपलब्ध है।
कृपया ध्यान दें कि यदि आप पहले से ही barman-cloud-wal-archive . का उपयोग कर रहे हैं या barman-cloud-backup RPM/Apt पैकेज के माध्यम से इंस्टॉल किया गया है और आप अपने सिस्टम को अपग्रेड कर रहे हैं, आपको barman-cli-cloud इंस्टॉल करना होगा पैकेट। यह इस तथ्य के कारण है कि, बर्मन 2.11 रिलीज के साथ, क्लाउड से संबंधित सभी उपकरण barman-cli-cloud का हिस्सा हैं। पैकेज जैसा कि लेख की शुरुआत में बताया गया है।
बर्मन के अगले संस्करण पुनर्प्राप्ति कमांड की उपयोगिता और स्वचालन क्षमताओं में सुधार कर सकते हैं, उदाहरण के लिए recovery.conf तैयार करके या recovery.signal वास्तविक बर्मन की तरह फ़ाइल।