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

Amazon AWS पर PostgreSQL बैकअप स्टोर करने के लिए टिप्स

डेटा शायद किसी कंपनी की सबसे मूल्यवान संपत्तियों में से एक है। इस वजह से दुर्घटना या हार्डवेयर की विफलता की स्थिति में डेटा हानि को रोकने के लिए हमारे पास हमेशा एक आपदा वसूली योजना (डीआरपी) होनी चाहिए।

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

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

इस ब्लॉग के लिए, हम इस बात पर एक नज़र डालेंगे कि Amazon AWS क्लाउड में PostgreSQL बैकअप के संग्रहण के लिए कौन से विकल्प प्रदान करता है और हम इसे कैसे करना है, इस पर कुछ उदाहरण दिखाएंगे।

अमेज़न एडब्ल्यूएस के बारे में

अमेज़ॅन AWS लाखों ग्राहकों के साथ सुविधाओं और सेवाओं के मामले में दुनिया के सबसे उन्नत क्लाउड प्रदाताओं में से एक है। अगर हम अपने PostgreSQL डेटाबेस को Amazon AWS पर चलाना चाहते हैं तो हमारे पास कुछ विकल्प हैं...

  • Amazon RDS:यह हमें एक आसान और तेज़ तरीके से क्लाउड में PostgreSQL डेटाबेस (या विभिन्न डेटाबेस तकनीकों) को बनाने, प्रबंधित करने और स्केल करने की अनुमति देता है।

  • Amazon Aurora:यह क्लाउड के लिए बनाया गया PostgreSQL संगत डेटाबेस है। AWS वेब साइट के अनुसार, यह मानक PostgreSQL डेटाबेस से तीन गुना तेज है।

  • Amazon EC2:यह एक वेब सेवा है जो क्लाउड में आकार बदलने योग्य गणना क्षमता प्रदान करती है। यह आपको अपने कंप्यूटिंग संसाधनों का पूर्ण नियंत्रण प्रदान करता है और आपको अपने ऑपरेटिंग सिस्टम से लेकर आपके एप्लिकेशन तक आपके इंस्टेंस के बारे में सब कुछ सेट और कॉन्फ़िगर करने की अनुमति देता है।

लेकिन, वास्तव में, हमें अपने बैकअप को यहां स्टोर करने के लिए अपने डेटाबेस को Amazon पर चलाने की आवश्यकता नहीं है।

Amazon AWS पर बैकअप स्टोर करना

AWS पर हमारे PostgreSQL बैकअप को स्टोर करने के लिए विभिन्न विकल्प हैं। यदि हम AWS पर अपना PostgreSQL डेटाबेस चला रहे हैं तो हमारे पास अधिक विकल्प हैं और (जैसा कि हम एक ही नेटवर्क में हैं) यह तेज़ भी हो सकता है। आइए देखें कि कैसे AWS हमारे बैकअप को स्टोर करने में हमारी मदद कर सकता है।

एडब्ल्यूएस सीएलआई

सबसे पहले, आइए विभिन्न AWS विकल्पों का परीक्षण करने के लिए अपने परिवेश को तैयार करें। हमारे उदाहरणों के लिए, हम CentOS 7 पर चलने वाले ऑन-प्रिमाइसेस पोस्टग्रेएसक्यूएल 11 सर्वर का उपयोग करेंगे। यहां, हमें इस साइट के निर्देशों का पालन करते हुए एडब्ल्यूएस सीएलआई स्थापित करने की आवश्यकता है।

जब हमारे पास हमारा एडब्ल्यूएस सीएलआई स्थापित हो जाता है, तो हम कमांड लाइन से इसका परीक्षण कर सकते हैं:

[[email protected] ~]# aws --version

aws-cli/1.16.225 Python/2.7.5 Linux/4.15.18-14-pve botocore/1.12.215

अब, अगला कदम हमारे नए क्लाइंट को कॉन्फ़िगर करना है जो कॉन्फिगर विकल्प के साथ aws कमांड चला रहा है।

[[email protected] ~]# aws configure

AWS Access Key ID [None]: AKIA7TMEO21BEBR1A7HR

AWS Secret Access Key [None]: SxrCECrW/RGaKh2FTYTyca7SsQGNUW4uQ1JB8hRp

Default region name [None]: us-east-1

Default output format [None]:

यह जानकारी प्राप्त करने के लिए, आप IAM AWS अनुभाग में जा सकते हैं और वर्तमान उपयोगकर्ता की जांच कर सकते हैं, या यदि आप चाहें, तो आप इस कार्य के लिए एक नया उपयोगकर्ता बना सकते हैं।

इसके बाद, हम अपनी Amazon AWS सेवाओं तक पहुंचने के लिए AWS CLI का उपयोग करने के लिए तैयार हैं।

अमेज़ॅन S3

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

अमेज़ॅन S3 एक सरल वेब सेवा इंटरफ़ेस प्रदान करता है जिसका उपयोग आप वेब पर कहीं से भी, किसी भी समय, किसी भी मात्रा में डेटा को स्टोर और पुनर्प्राप्त करने के लिए कर सकते हैं, और (AWS CLI या AWS SDK के साथ) आप इसे विभिन्न प्रणालियों और प्रोग्रामिंग भाषाओं के साथ एकीकृत कर सकते हैं।

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

अमेज़ॅन S3 बकेट का उपयोग करता है। वे उन सभी चीज़ों के लिए अद्वितीय कंटेनर हैं जिन्हें आप Amazon S3 में स्टोर करते हैं। तो, पहला कदम Amazon S3 प्रबंधन कंसोल तक पहुंचना और एक नया बकेट बनाना है।

पहले चरण में, हमें बस बकेट का नाम और एडब्ल्यूएस क्षेत्र।

अब, हम अपने नए बकेट के बारे में कुछ विवरण कॉन्फ़िगर कर सकते हैं, जैसे वर्जनिंग और लॉगिंग।

और फिर, हम इस नई बकेट के लिए अनुमतियां निर्दिष्ट कर सकते हैं।

अब हमने अपनी बकेट बना ली है, आइए देखें कि हम इसका उपयोग कैसे कर सकते हैं हमारे PostgreSQL बैकअप स्टोर करें।

सबसे पहले, आइए अपने क्लाइंट को इसे S3 से जोड़ने का परीक्षण करें।

[[email protected] ~]# aws s3 ls

2019-08-23 19:29:02 s9stesting1

यह काम करता है! पिछली कमांड के साथ, हम बनाई गई वर्तमान बकेट को सूचीबद्ध करते हैं।

तो, अब, हम बैकअप को केवल S3 सेवा में अपलोड कर सकते हैं। इसके लिए हम aws सिंक या aws cp कमांड का इस्तेमाल कर सकते हैं।

[[email protected] ~]# aws s3 sync /root/backups/BACKUP-5/ s3://s9stesting1/backups/

upload: backups/BACKUP-5/cmon_backup.metadata to s3://s9stesting1/backups/cmon_backup.metadata

upload: backups/BACKUP-5/cmon_backup.log to s3://s9stesting1/backups/cmon_backup.log

upload: backups/BACKUP-5/base.tar.gz to s3://s9stesting1/backups/base.tar.gz

[[email protected] ~]# 

[[email protected] ~]# aws s3 cp /root/backups/BACKUP-6/pg_dump_2019-08-23_205919.sql.gz s3://s9stesting1/backups/

upload: backups/BACKUP-6/pg_dump_2019-08-23_205919.sql.gz to s3://s9stesting1/backups/pg_dump_2019-08-23_205919.sql.gz

[[email protected] ~]# 

हम एडब्ल्यूएस वेब साइट से बाल्टी सामग्री की जांच कर सकते हैं।

या यहां तक ​​कि एडब्ल्यूएस सीएलआई का उपयोग करके भी।

[[email protected] ~]# aws s3 ls s3://s9stesting1/backups/

2019-08-23 19:29:31          0

2019-08-23 20:58:36    2974633 base.tar.gz

2019-08-23 20:58:36       1742 cmon_backup.log

2019-08-23 20:58:35       2419 cmon_backup.metadata

2019-08-23 20:59:52       1028 pg_dump_2019-08-23_205919.sql.gz

AWS S3 CLI के बारे में अधिक जानकारी के लिए, आप आधिकारिक AWS दस्तावेज़ देख सकते हैं।

अमेज़ॅन S3 ग्लेशियर

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

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

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

यहां, हमें तिजोरी का नाम और क्षेत्र जोड़ने की जरूरत है और, अगले चरण में, हम उन ईवेंट सूचनाओं को सक्षम कर सकते हैं जो Amazon Simple Notification Service (Amazon SNS) का उपयोग करती हैं।

अब हमने अपना वॉल्ट बना लिया है, हम इसे AWS CLI से एक्सेस कर सकते हैं ।

[[email protected] ~]# aws glacier describe-vault --account-id - --vault-name s9stesting2

{

    "SizeInBytes": 0,

    "VaultARN": "arn:aws:glacier:us-east-1:984227183428:vaults/s9stesting2",

    "NumberOfArchives": 0,

    "CreationDate": "2019-08-23T21:08:07.943Z",

    "VaultName": "s9stesting2"

}

यह काम कर रहा है। तो अब, हम अपना बैकअप यहाँ अपलोड कर सकते हैं।

[[email protected] ~]# aws glacier upload-archive --body /root/backups/BACKUP-6/pg_dump_2019-08-23_205919.sql.gz --account-id - --archive-description "Backup upload test" --vault-name s9stesting2

{

    "archiveId": "ddgCJi_qCJaIVinEW-xRl4I_0u2a8Ge5d2LHfoFBlO6SLMzG_0Cw6fm-OLJy4ZH_vkSh4NzFG1hRRZYDA-QBCEU4d8UleZNqsspF6MI1XtZFOo_bVcvIorLrXHgd3pQQmPbxI8okyg",

    "checksum": "258faaa90b5139cfdd2fb06cb904fe8b0c0f0f80cba9bb6f39f0d7dd2566a9aa",

    "location": "/984227183428/vaults/s9stesting2/archives/ddgCJi_qCJaIVinEW-xRl4I_0u2a8Ge5d2LHfoFBlO6SLMzG_0Cw6fm-OLJy4ZH_vkSh4NzFG1hRRZYDA-QBCEU4d8UleZNqsspF6MI1XtZFOo_bVcvIorLrXHgd3pQQmPbxI8okyg"

}

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

[[email protected] ~]# aws glacier describe-vault --account-id - --vault-name s9stesting2

{

    "SizeInBytes": 33796,

    "VaultARN": "arn:aws:glacier:us-east-1:984227183428:vaults/s9stesting2",

    "LastInventoryDate": "2019-08-24T06:37:02.598Z",

    "NumberOfArchives": 1,

    "CreationDate": "2019-08-23T21:08:07.943Z",

    "VaultName": "s9stesting2"

}

यहां हमने अपनी फाइल हमारे S3 ग्लेशियर वॉल्ट पर अपलोड कर दी है।

एडब्ल्यूएस ग्लेशियर सीएलआई के बारे में अधिक जानकारी के लिए, आप आधिकारिक एडब्ल्यूएस दस्तावेज देख सकते हैं।

EC2

यह बैकअप स्टोर विकल्प अधिक महंगा और समय लेने वाला है, लेकिन यह उपयोगी है यदि आप बैकअप स्टोरेज वातावरण पर पूर्ण नियंत्रण रखना चाहते हैं और बैकअप पर कस्टम कार्य करना चाहते हैं (जैसे बैकअप सत्यापन) ।)

अमेज़ॅन ईसी2 (इलास्टिक कंप्यूट क्लाउड) एक वेब सेवा है जो क्लाउड में आकार बदलने योग्य गणना क्षमता प्रदान करती है। यह आपको अपने कंप्यूटिंग संसाधनों का पूर्ण नियंत्रण प्रदान करता है और आपको अपने ऑपरेटिंग सिस्टम से लेकर आपके एप्लिकेशन तक आपके इंस्टेंस के बारे में सब कुछ सेट और कॉन्फ़िगर करने की अनुमति देता है। जैसे-जैसे आपकी कंप्यूटिंग ज़रूरतें बदलती हैं, यह आपको ऊपर और नीचे, दोनों ही तरह से क्षमता को तेज़ी से मापने की अनुमति देता है।

अमेज़ॅन ईसी2 विभिन्न ऑपरेटिंग सिस्टमों का समर्थन करता है जैसे अमेज़ॅन लिनक्स, उबंटू, विंडोज सर्वर, रेड हैट एंटरप्राइज लिनक्स, एसयूएसई लिनक्स एंटरप्राइज सर्वर, फेडोरा, डेबियन, सेंटोस, जेंटू लिनक्स, ओरेकल लिनक्स और फ्रीबीएसडी।

पी>

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

अमेज़ॅन ईसी2 सेक्शन में जाएं, और लॉन्च इंस्टेंस दबाएं। पहले चरण में, आपको EC2 इंस्टेंस ऑपरेटिंग सिस्टम चुनना होगा।

अगले चरण में, आपको नए उदाहरण के लिए संसाधनों का चयन करना होगा।

फिर, आप नेटवर्क, सबनेट, आदि जैसे अधिक विस्तृत कॉन्फ़िगरेशन निर्दिष्ट कर सकते हैं ।

अब, हम इस नए इंस्टेंस पर और स्टोरेज क्षमता जोड़ सकते हैं, और जैसा कि एक बैकअप सर्वर, हमें यह करना चाहिए।

जब हम निर्माण कार्य पूरा कर लेते हैं, तो हम इंस्टेंस अनुभाग में जा सकते हैं हमारा नया EC2 उदाहरण देखें।

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

[[email protected] ~]# rsync -avzP -e "ssh -i /home/user/key1.pem" /root/backups/BACKUP-11/base.tar.gz [email protected]:/backups/20190823/

sending incremental file list

base.tar.gz

      4,091,563 100%    2.18MB/s 0:00:01 (xfr#1, to-chk=0/1)



sent 3,735,675 bytes  received 35 bytes 574,724.62 bytes/sec

total size is 4,091,563  speedup is 1.10

[[email protected] ~]# 

[[email protected] ~]# scp -i /tmp/key1.pem /root/backups/BACKUP-12/pg_dump_2019-08-25_211903.sql.gz [email protected]:/backups/20190823/

pg_dump_2019-08-25_211903.sql.gz                                                                                                                                        100% 24KB 76.4KB/s 00:00

एडब्ल्यूएस बैकअप

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

आप EBS वॉल्यूम, RDS डेटाबेस, DynamoDB टेबल, EFS फ़ाइल सिस्टम और स्टोरेज गेटवे वॉल्यूम के बैकअप को प्रबंधित करने के लिए AWS बैकअप का उपयोग कर सकते हैं।

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

AWS प्रबंधन कंसोल पर AWS बैकअप अनुभाग पर जाएं।

यहां आपके पास अलग-अलग विकल्प हैं, जैसे बैकअप शेड्यूल करना, बनाना या पुनर्स्थापित करना . आइए देखें कि नया बैकअप कैसे बनाया जाता है।

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

फिर, हम AWS बैकअप जॉब्स सेक्शन में बनाई गई नई जॉब देख सकते हैं ।

स्नैपशॉट

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

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

ClusterControl के साथ अपने बैकअप प्रबंधित करना

क्लस्टरकंट्रोल ओपन सोर्स डेटाबेस के लिए एक व्यापक प्रबंधन प्रणाली है जो परिनियोजन और प्रबंधन कार्यों के साथ-साथ स्वास्थ्य और प्रदर्शन की निगरानी को स्वचालित करता है। ClusterControl विभिन्न डेटाबेस तकनीकों और परिवेशों के लिए परिनियोजन, प्रबंधन, निगरानी और स्केलिंग का समर्थन करता है, EC2 शामिल है। इसलिए, उदाहरण के लिए, हम AWS पर अपना EC2 इंस्टेंस बना सकते हैं, और ClusterControl के साथ अपनी डेटाबेस सेवा को तैनात/आयात कर सकते हैं।

बैकअप बनाना

इस कार्य के लिए, ClusterControl पर जाएं -> क्लस्टर चुनें -> बैकअप -> बैकअप बनाएं।

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

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

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

यदि हम क्लाउड विकल्प पर अपलोड बैकअप सक्षम करते हैं, तो हम देखेंगे क्लाउड प्रदाता (इस मामले में AWS) और क्रेडेंशियल (ClusterControl -> इंटीग्रेशन -> क्लाउड प्रदाता) निर्दिष्ट करने के लिए एक अनुभाग। AWS के लिए, यह S3 सेवा का उपयोग करता है, इसलिए हमें अपने बैकअप को संग्रहीत करने के लिए एक बाल्टी का चयन करना चाहिए या एक नया भी बनाना चाहिए।

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

निष्कर्ष

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कैसे अद्वितीय संयुक्त प्राथमिक कुंजी के साथ एक Postgres तालिका बनाने के लिए?

  2. एकाधिक थ्रेड्स का उपयोग करके फ़ाइल लिखना

  3. अपने PostgreSQL संस्करण की जांच कैसे करें

  4. HAProxy का उपयोग करके अपने PostgreSQL प्रतिकृति सेटअप के लिए एकल समापन बिंदु कैसे बनाएं

  5. पासवर्ड के बिना psql कमांड के साथ बैच फ़ाइल चलाएँ