MongoDB के लिए ज्ञात और लोकप्रिय बैकअप विधि mongodump है। यह एक तार्किक बैकअप विधि है, जो MySQL में mysqldump या PostgreSQL डेटाबेस में pg_dump के समान है। MongoDB के लिए Percona Backup नामक एक और बैकअप टूल है। इसमें प्रतिकृति सेट और शार्प क्लस्टर के साथ-साथ पॉइंट इन टाइम रिकवरी जैसी अधिक उन्नत सुविधाएँ हैं।
यह ध्यान रखना महत्वपूर्ण है कि यह आपके मोंगोडब शार्प क्लस्टर के लिए एक सुसंगत बैकअप करता है, और बैकअप को स्टोर करने के लिए S3 संगत ऑब्जेक्ट स्टोरेज का भी समर्थन करता है। इस ब्लॉग में, हम MongoDB के लिए Percona Backup की वास्तुकला, स्थापना और उपयोग पर चर्चा करेंगे।
आर्किटेक्चर
MongoDB के लिए Percona बैकअप में दो घटक होते हैं, पहला एक प्रक्रिया उपयोगिता है जिसे प्रत्येक MongoDB नोड पर स्थापित करने की आवश्यकता होती है, जिसे pbm-agent कहा जाता है। पीबीएम-एजेंट डेटाबेस नोड्स के बीच समन्वय करने, बैकअप चलाने और प्रक्रिया को बहाल करने का कार्य करता है। यह भी जांचता है कि बैकअप लेने के लिए नोड सही नोड है या नहीं। pbm-एजेंट को कुछ भूमिका विशेषाधिकारों के साथ एक विशिष्ट उपयोगकर्ता की आवश्यकता होती है; उदाहरण:रीडराइट, बैकअप, क्लस्टर मॉनिटर, और रिस्टोर। इसे एक्शन टाइप एनीएक्शन और रिसोर्स टाइप एनी रिसोर्स के साथ पीबीएम के लिए एक नई भूमिका बनाने की भी जरूरत है। यदि आप शार्प्ड क्लस्टर आर्किटेक्चर का उपयोग करते हैं तो उपयोगकर्ता को प्रतिकृति सेट में प्रत्येक नोड पर और कॉन्फ़िगरेशन सर्वर में भी मौजूद होना चाहिए। MongoDB के लिए Percona बैकअप डेटाबेस से कनेक्ट करने के लिए MongoDB URI कनेक्शन स्ट्रिंग विधि का उपयोग करता है, यही कारण है कि इसे पहली बार क्रेडेंशियल एक्सेस की आवश्यकता होती है।
अन्य घटक कमांड लाइन इंटरफ़ेस है जिसे pbm कहा जाता है। pbm उपयोगिता बैकअप से संबंधित क्रियाओं को ट्रिगर करती है, उदाहरण के लिए, बैकअप निष्पादित करें, पुनर्स्थापित करें, बैकअप सूचीबद्ध करें, हटाएं, और इसी तरह। इससे पहले कि आप पीबीएम के साथ काम करें, आपको बैकअप विकल्प कॉन्फ़िगर करने, विकल्प बहाल करने और पॉइंट इन टाइम रिकवरी विकल्प की आवश्यकता होगी।
कॉन्फ़िगरेशन फ़ाइल स्वयं एक YAML फ़ाइल में संग्रहीत होती है, और कॉन्फ़िगरेशन फ़ाइल लोड करने के लिए pbm config कमांड का उपयोग किया जाता है। pbm उपयोगिता के लिए कुछ कमांड नीचे दिखाए गए हैं:
- pbm config, कमांड निष्पादित होने से पहले बैकअप विकल्प को कॉन्फ़िगर करने के लिए उपयोग किया जाता है।
- pbm बैकअप, MongoDB का बैकअप लेने के लिए उपयोग किया जाता है। यह कुछ संपीड़न विधियों का समर्थन करता है जैसे कि gzip, pgzip, lz4, स्नैपी।
- pbm रिस्टोर, एक नोड में बैकअप रिस्टोर करने के लिए इस्तेमाल किया जाने वाला कमांड।
- pbm सूची, वर्तमान बैकअप फ़ाइलों की सूची।
- pbm रद्द-बैकअप, चल रही बैकअप प्रक्रिया को रद्द करने के लिए उपयोग किया जाता है।
- pbm delete-backup, बैकअप फ़ाइलों को हटाने के लिए उपयोग किया जाता है। दो विकल्प हैं; आप एक निश्चित आयु से अधिक पुरानी बैकअप फ़ाइलों को हटाने या हटाने के लिए बैकअप का फ़ाइल नाम निर्दिष्ट कर सकते हैं।
MongoDB के लिए Percona बैकअप की स्थापना
मोंगोडीबी के लिए पेरकोना बैकअप स्थापित करने के दो तरीके हैं, आप ऑपरेटिंग सिस्टम से पैकेज मैनेजर का उपयोग कर सकते हैं और सॉफ्टवेयर को स्थापित करने के लिए आधिकारिक पेरकोना रिपोजिटरी का उपयोग कर सकते हैं, या आप स्रोत कोड से निर्माण कर सकते हैं।पी>
yum/apt इंस्टॉल के माध्यम से pbm स्थापित करने से पहले पूर्वापेक्षाओं के रूप में, आपको Percona रिपॉजिटरी को कॉन्फ़िगर करने की आवश्यकता है, और उसके बाद, pbm रिपॉजिटरी को सक्षम करें:
[[email protected] ~]# percona-release enable pbm release
* Enabling the Percona Backup MongoDB repository
<*> All done!
फिर, MongoDB के लिए Percona Backup इंस्टॉल करें। इस मामले में, मैं CentOS आधारित ऑपरेटिंग सिस्टम का उपयोग कर रहा हूं, इसलिए हम yum install करेंगे:
[[email protected] ~]# yum install percona-backup-mongodb
Loaded plugins: fastestmirror
Repository percona-release-noarch is listed more than once in the configuration
Repository percona-release is listed more than once in the configuration
Repository percona-release-noarch is listed more than once in the configuration
Repository percona-release-source is listed more than once in the configuration
(1/10): extras/7/x86_64/primary_db | 222 kB 00:00:00
(2/10): pbm-release-x86_64/7/primary_db | 4.2 kB 00:00:02
(3/10): percona-tools-release/7/x86_64/primary_db | 84 kB 00:00:00
(4/10): tools-release-x86_64/7/primary_db | 84 kB 00:00:00
(5/10): percona-release-x86_64/7/primary_db | 1.1 MB 00:00:06
(6/10): percona-release/7/x86_64/primary_db | 1.1 MB 00:00:08
(7/10): base/7/x86_64/primary_db | 6.1 MB 00:00:11
(8/10): updates/7/x86_64/primary_db | 2.5 MB 00:00:08
(9/10): epel/x86_64/updateinfo | 1.0 MB 00:00:13
(10/10): epel/x86_64/primary_db | 6.9 MB 00:00:07
Loading mirror speeds from cached hostfile
* base: mirror.telkomuniversity.ac.id
* epel: ftp.jaist.ac.jp
* extras: mirror.telkomuniversity.ac.id
* updates: mirror.telkomuniversity.ac.id
Resolving Dependencies
--> Running transaction check
---> Package percona-backup-mongodb.x86_64 0:1.3.3-1.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==================================================================================================================================================================
Package Arch Version Repository Size
==================================================================================================================================================================
Installing:
percona-backup-mongodb x86_64 1.3.3-1.el7 pbm-release-x86_64 16 M
Transaction Summary
==================================================================================================================================================================
Install 1 Package
Total download size: 16 M
Installed size: 61 M
Is this ok [y/d/N]: y
Downloading packages:
percona-backup-mongodb-1.3.3-1.el7.x86_64.rpm | 16 MB 00:00:55
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : percona-backup-mongodb-1.3.3-1.el7.x86_64 1/1
Verifying : percona-backup-mongodb-1.3.3-1.el7.x86_64 1/1
Installed:
percona-backup-mongodb.x86_64 0:1.3.3-1.el7
Complete!
पूरा होने के बाद, आप pbm-agent को पृष्ठभूमि प्रक्रिया के रूप में कॉन्फ़िगर कर सकते हैं और pbm कमांड लाइन इंटरफ़ेस के साथ खेल सकते हैं:
[[email protected] ~]# pbm
usage: pbm [<flags>] <command> [<args> ...]
Percona Backup for MongoDB
Flags:
--help Show context-sensitive help (also try
--help-long and --help-man).
--mongodb-uri=MONGODB-URI MongoDB connection string (Default =
PBM_MONGODB_URI environment variable)
--compression=s2 Compression type
<none>/<gzip>/<snappy>/<lz4>/<s2>/<pgzip>
Commands:
help [<command>...]
Show help.
config [<flags>] [<key>]
Set, change or list the config
backup
Make backup
restore [<flags>] [<backup_name>]
Restore backup
cancel-backup
Restore backup
list [<flags>]
Backup list
delete-backup [<flags>] [<name>]
Delete a backup
version [<flags>]
PBM version info
बैकअप इन एक्शन
MongoDB का बैकअप लेने से पहले, सुनिश्चित करें कि प्रत्येक नोड पर pbm-एजेंट चल रहा है और बैकअप कॉन्फिगरेशन नीचे दिखाए अनुसार सेट किया गया है, बैकअप का पथ सेट करें:
[[email protected] ~]# pbm config --file=/root/config.yaml --mongodb-uri "mongodb://pbmuser:***@localhost:27017/"
[Config set]
------
pitr:
enabled: false
storage:
type: filesystem
filesystem:
path: /data/backups
और किसी एक द्वितीयक नोड पर बैकअप का परीक्षण करें:
[[email protected] ~]# pbm backup --mongodb-uri "mongodb://pbmuser:*****@localhost:27017/" --compression=pgzip
Starting backup '2020-11-13T15:28:49Z'...................
Backup '2020-11-13T15:28:49Z' to remote store '/data/backups' has started
अभी के लिए इतना ही। जल्द ही आने वाला, ClusterControl 1.8.1 आपको MongoDB के लिए Percona Backup का उपयोग करके अपने MongoDB क्लस्टर को शेड्यूल और प्रबंधित करने की अनुमति देगा।