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

मुझे कैसे पता चलेगा कि मेरा PostgreSQL बैकअप अच्छा है?

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

PostgreSQL बैकअप के प्रकार

आइए विभिन्न प्रकार के बैकअप के बारे में बात करना शुरू करते हैं। विभिन्न प्रकार हैं, लेकिन सामान्य तौर पर, हम इसे दो सरल श्रेणियों में अलग कर सकते हैं:

  • तार्किक :बैकअप को SQL जैसे मानव-पठनीय प्रारूप में संग्रहीत किया जाता है।
  • भौतिक :बैकअप में बाइनरी डेटा होता है।

हम इसका उल्लेख क्यों कर रहे हैं? क्योंकि हम देखेंगे कि कुछ जाँचें हैं जो हम एक प्रकार के लिए कर सकते हैं न कि दूसरे के लिए।

बैकअप लॉग की जांच करना

सब कुछ ठीक होने की पुष्टि करने का पहला तरीका बैकअप लॉग की जांच करना है।

एक PostgreSQL बैकअप चलाने के लिए सबसे सरल कमांड उदाहरण के लिए हो सकता है:

$ pg_dumpall > /path/to/dump.sql

लेकिन, मुझे कैसे पता चलेगा कि कमांड के चलने में कोई त्रुटि हुई थी? आप आउटपुट को कुछ विशिष्ट लॉग फ़ाइल में भेजने के लिए जोड़ सकते हैं:

$ pg_dumpall > /path/to/dump.sql > /var/log/postgres/pg_dump.log

तो, आप इसे हर दिन चलाने के लिए सर्वर क्रॉन में इस लाइन को जोड़ सकते हैं:

30 0 * * * pg_dumpall > /path/to/dump.sql > /var/log/postgres/pg_dump.log

और आपको त्रुटियों को देखने के लिए लॉग फ़ाइल की निगरानी करनी चाहिए, उदाहरण के लिए, इसे Nagios जैसे कुछ निगरानी उपकरण में जोड़ना।

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

बैकअप सामग्री की जांच करना

यदि आप तार्किक बैकअप का उपयोग कर रहे हैं, तो आप बैकअप फ़ाइल की सामग्री को सत्यापित कर सकते हैं, यह पुष्टि करने के लिए कि आपके पास सभी डेटाबेस हैं।

आप उदाहरण के लिए, इस कमांड का उपयोग करके अपने वर्तमान PostgreSQL डेटाबेस को सूचीबद्ध कर सकते हैं:

$ psql -l | awk '{ print $1 }'| awk 'FNR > 3' |grep '^[a-zA-Z0-9]' |grep -v 'template0'

postgres

template1

world

और जांचें कि आपके पास बैकअप फ़ाइल में कौन से डेटाबेस हैं:

$ grep '^[\]connect' /path/to/dump.sql |awk '{print $2}'

template1

postgres

world

इस जांच के साथ समस्या यह है कि आप आकार या डेटा की जांच नहीं करते हैं, इसलिए यह संभव हो सकता है कि बैकअप निष्पादित करते समय कुछ त्रुटि होने पर आपको कुछ डेटा हानि हो।

बैकअप को मैन्युअल रूप से जांचने के लिए पुनर्स्थापित करना

यह पुष्टि करने का सबसे सुरक्षित तरीका है कि बैकअप काम कर रहा है या नहीं, इसे पुनर्स्थापित करना और डेटाबेस तक पहुंच बनाना है।

बैकअप पूरा होने के बाद, आप डंप फ़ाइल की प्रतिलिपि बनाकर और उदाहरण के लिए चलाकर इसे किसी अन्य होस्ट में मैन्युअल रूप से पुनर्स्थापित कर सकते हैं:

$ psql -f /path/to/dump.sql postgres

फिर, आप इसे एक्सेस कर सकते हैं और डेटाबेस की जांच कर सकते हैं:

$ psql

postgres=# \l

                                  List of databases

   Name    | Owner   | Encoding |   Collate | Ctype    | Access privileges

-----------+----------+----------+-------------+-------------+-----------------------

 postgres  | postgres | UTF8     | en_US.utf-8 | en_US.utf-8 |

 template0 | postgres | UTF8     | en_US.utf-8 | en_US.utf-8 | =c/postgres          +

           |          | |             | | postgres=CTc/postgres

 template1 | postgres | UTF8     | en_US.utf-8 | en_US.utf-8 | =c/postgres          +

           |          | |             | | postgres=CTc/postgres

 world     | postgres | UTF8     | en_US.utf-8 | en_US.utf-8 |

(4 rows)

इस पद्धति के साथ समस्या यह है कि, निश्चित रूप से, आपको इसे मैन्युअल रूप से चलाना चाहिए, या इसे स्वचालित करने का कोई तरीका खोजना चाहिए, जो एक समय लेने वाला कार्य हो सकता है।

स्वचालित क्लस्टर नियंत्रण बैकअप सत्यापन

अब, देखते हैं कि कैसे ClusterControl PostgreSQL बैकअप के सत्यापन को स्वचालित कर सकता है और किसी भी आश्चर्य या मैन्युअल कार्यों से बचने में मदद कर सकता है।

ClusterControl में, अपने क्लस्टर का चयन करें और "बैकअप" अनुभाग पर जाएं, फिर, "बैकअप बनाएं" चुनें।

स्वचालित सत्यापन बैकअप सुविधा अनुसूचित बैकअप के लिए उपलब्ध है। तो, चलिए "शेड्यूल बैकअप" विकल्प चुनें।

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

अगले चरण में, आप अपने बैकअप को संपीड़ित और एन्क्रिप्ट कर सकते हैं और निर्दिष्ट कर सकते हैं अवधारण अवधि। यहां, आपके पास "बैकअप सत्यापित करें" सुविधा भी है।

इस सुविधा का उपयोग करने के लिए, आपको एक समर्पित होस्ट (या VM) की आवश्यकता है जो क्लस्टर का हिस्सा नहीं है।

ClusterControl सॉफ्टवेयर इंस्टॉल करेगा और यह इस होस्ट में बैकअप को पुनर्स्थापित करेगा। . पुनर्स्थापित करने के बाद, आप क्लस्टर नियंत्रण बैकअप अनुभाग में सत्यापन चिह्न देख सकते हैं।

निष्कर्ष

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL में अतिव्यापी दिनांक सीमाएँ खोजें

  2. वे बड़ी वस्तुओं को रफ़ करते हैं

  3. SQLAlchemy, Psycopg2 और Postgresql COPY

  4. पोस्टग्रेज के DISTINCT के बराबर Oracle?

  5. PostgreSQL में बल्क/बैच अपडेट/अपर्ट