यह सुनिश्चित करने के लिए कि आप डेटा भ्रष्टाचार या आकस्मिक विलोपन की स्थिति में डेटा पुनर्प्राप्त कर सकते हैं, डेटाबेस बैकअप को एक नियमित रखरखाव गतिविधि बनाएं। यह पोस्ट वर्टिका® डेटाबेस बैकअप और बहाली की पड़ताल करती है।
परिचय
वर्टिका, एक विश्लेषणात्मक डेटाबेस प्रबंधन प्रणाली, एक स्तंभ-भंडारण प्लेटफ़ॉर्म है जिसे बड़ी मात्रा में डेटा को संभालने के लिए डिज़ाइन किया गया है, जो आंतरिक रूप से संसाधन-गहन परिदृश्यों में तेज़ क्वेरी प्रदर्शन को सक्षम करता है।
वर्टिका निम्नलिखित लाभ प्रदान करता है:
- पारंपरिक डेटाबेस रिलेशनल डेटाबेस प्रबंधन सिस्टम पर क्वेरी प्रदर्शन में सुधार करता है।
- उच्च उपलब्धता प्रदान करता है।
- कमोडिटी एंटरप्राइज सर्वर पर पेटाबाइट स्केलेबिलिटी प्रदान करता है।
डेटाबेस बैकअप और पुनर्प्राप्ति तंत्र रखरखाव और आपदा पुनर्प्राप्ति के दौरान डाउनटाइम को कम करता है।
डेटाबेस का बैकअप लें और पुनर्स्थापित करें
वर्टिका के साथ, आप हॉट बैकअप बना सकते हैं, इंक्रीमेंटल कॉपियों को अनिश्चित संख्या में पुनर्स्थापना बिंदुओं के साथ, और पूरे डेटाबेस का बैकअप या डेटाबेस का एक सबसेट (स्कीमा, टेबल, और इसी तरह) बना सकते हैं। निम्नलिखित बैकअप स्तर उपलब्ध हैं:
- पूर्ण स्तर :यह स्तर सुनिश्चित करता है कि आप पूर्ण वर्टिका डेटाबेस का बैकअप और पुनर्स्थापना कर सकते हैं।
- वृद्धिशील स्तर :यह स्तर एक अनुवर्ती बैकअप है जिसमें केवल नया या परिवर्तित डेटा होता है।
- वस्तु-स्तर :यह स्तर बहाली के लिए किसी वस्तु का बैकअप है।
वर्टिका पूर्ण बैकअप से विशिष्ट वस्तुओं (जैसे स्कीमा और टेबल) को पुनर्स्थापित करने के लिए लचीलापन और ग्रैन्युलैरिटी के स्तर प्रदान करता है।
स्नैपशॉट
डेटाबेस स्नैपशॉट डेटाबेस में सभी वस्तुओं और डेटा की एक सुसंगत छवि को कैप्चर करते हैं। आप एनोबजेक्ट-स्तरीय स्नैपशॉट में शामिल करने के लिए डेटाबेस ऑब्जेक्ट के एक सबसेट का चयन कर सकते हैं, जिसमें स्नैपशॉट के समय डेटाबेस में संबद्ध डेटा और निर्भरता ग्राफ़ में अन्य ऑब्जेक्ट शामिल होते हैं। आप अपने स्नैपशॉट को अपनी पसंद के अनुसार नाम दे सकते हैं (उदाहरण के लिए:स्नैप, ऑब्जेक्टनैप1, फुलस्नैप, इत्यादि)।
बैकअप स्थान
बैकअप स्थान बैकअप होस्ट पर निर्देशिका है जहां आप स्नैपशॉट और उनके संबंधित संग्रह सहेजते हैं। क्योंकि स्नैपशॉट संगत हैं, आप किसी डेटाबेस को पूर्ण डेटाबेस स्नैपशॉट से पुनर्स्थापित करने के बाद उसी बैकअप स्थान से किसी ऑब्जेक्ट स्नैपशॉट का उपयोग कर सकते हैं। एक ही बैकअप स्थान के सभी स्नैपशॉट हार्ड लिंक के माध्यम से डेटा फ़ाइलें साझा करते हैं।
हार्ड-लिंक बैकअप
वर्टिका कम लागत और स्थान-कुशल प्रतियां प्रदान करता है (हार्ड-लिंक स्थानीय बैकअप ) स्थानीय क्लस्टर अवसंरचना में डेटाबेस बैकअप का। आप इन बैकअप को तेजी से प्राप्त कर सकते हैं क्योंकि सिस्टम उपयोगकर्ता डेटा को बाहरी बैकअप वातावरण में कॉपी नहीं करता है। वर्टिका केवल कैटलॉग डेटा की प्रतिलिपि बनाता है और फ़ाइल सिस्टम के भीतर Linux®-आधारित हार्ड लिंक शुरू करता है।
छवि स्रोत :https://www.vertica.com/wp-content/uploads/2016/04/sidestep1.png
ये बैकअप स्टोरेज ब्लॉक के समान सेट को साझा करते हैं, और प्रत्येक बैकअप उनकी पॉइंट-इन-टाइम कॉपी को ट्रैक करता है। सिस्टम एक ही सामग्री को एकाधिक स्थानों में संग्रहीत नहीं करता है।
बैकअप और बहाली प्रक्रिया प्रवाह
बैकअप और पुनर्स्थापना प्रवाह में निम्नलिखित चरण होते हैं:
- स्नैपशॉट प्रकार चुनें, जैसे पूर्ण, वृद्धिशील, या ऑब्जेक्ट-स्तरीय बैकअप।
- वर्टिका बैकअप और रिकवरी टूल का उपयोग करके कॉन्फ़िगरेशन फ़ाइल बनाएं।
- बैकअप फ़ाइलों को संग्रहीत करने के लिए बैकअप स्थान प्रारंभ करें।
- कॉन्फ़िगरेशन फ़ाइल का उपयोग करके बैकअप लें।
- बैकअप स्थान में बैकअप सत्यापित करें।
- समान या भिन्न वर्टिका क्लस्टर पर संपूर्ण डेटाबेस या डेटाबेस ऑब्जेक्ट को पुनर्स्थापित करें।
छवि स्रोत :https://www.vertica.com/kb/Copy-and-Restore-Data-from-a-Vertica-Cluster-to-a-Backup/Content/BestPractices/Copy-and-Restore-Data-from-a -वर्टिका-क्लस्टर-टू-ए-बैकअप.एचटीएम
कॉन्फ़िगरेशन फ़ाइल जेनरेट करें
vbr.py उपयोगिता उस जानकारी के साथ एक कॉन्फ़िगरेशन फ़ाइल बनाती है जिसमें वर्टिकेयर को पूर्ण, वृद्धिशील, या ऑब्जेक्ट-स्तरीय स्नैपशॉट का बैकअप लेने और पुनर्स्थापित करने की आवश्यकता होती है। आप कॉन्फ़िगरेशन फ़ाइल के बिना डेटाबेस या ऑब्जेक्ट का बैकअप या पुनर्स्थापित नहीं कर सकते हैं, और कोई डिफ़ॉल्ट फ़ाइल मौजूद नहीं है।
आप जितनी चाहें उतनी बैकअप कॉन्फ़िगरेशन फ़ाइलें बना सकते हैं (जैसे पूर्ण या वृद्धिशील, ऑब्जेक्ट या स्कीमा-विशिष्ट, या स्थान-विशिष्ट फ़ाइलें)।
पूर्ण बैकअप कॉन्फ़िगरेशन फ़ाइल
निम्नलिखित चरण पूर्ण डेटाबेस बैकअप लेने के लिए कॉन्फ़िगरेशन फ़ाइल बनाने में मदद करते हैं।
$ vbr.py --setupconfig
Snapshot name (backup_snapshot): full_bkp_snap
Backup vertica configurations? (n) [y/n]: y
Number of restore points (1):
Specify objects (no default):
Vertica user name (dbadmin): dbadmin
Save password to avoid runtime prompt? (n) [y/n]: n
Node v_testdb_node0001
Backup host name (no default): v_testdb_node0001
Backup directory (no default): /vert_backup/backup
Node v_testdb_node0002
Backup host name (no default): v_testdb_node0002
Backup directory (no default): /vert_backup/backup
Node v_testdb_node0003
Backup host name (no default): v_testdb_node0003
Backup directory (no default): /vert_backup/backup
Config file name (full_bkp_snap.ini): /vert_backup/backup_conf/full_bkp_snap.ini
Change advanced settings? (n) [y/n]: n
Saved vbr configuration to /vert_backup/backup_conf/full_bkp_snap.ini.
ऑब्जेक्ट-विशिष्ट बैकअप कॉन्फ़िगरेशन फ़ाइल
ऑब्जेक्ट-विशिष्ट कॉन्फ़िगरेशन फ़ाइल बनाने के लिए निम्न चरणों का पालन करें:
-
डेटाबेस में वस्तुओं की सूची बनाएं और चुनें कि किसका उपयोग करना है। हमारे वर्टिका डेटाबेस में निम्नलिखित वस्तुएँ मौजूद हैं:
List of tables Schema | Name | Kind | Owner | Comment --------+-------+-------+---------+--------- public | tab1 | table | dbadmin | public | tab2 | table | dbadmin | public | tab3 | table | dbadmin | (3 rows)
-
public.tab1 . का बैकअप लेने के लिए कॉन्फ़िगरेशन फ़ाइल बनाने के लिए निम्न आदेश चलाएँ तालिका:
$ vbr.py --setupconfig Snapshot name (backup_snapshot): tab1_bkp_snap Backup vertica configurations? (n) [y/n]: n Number of restore points (1): Specify objects (no default): public.tab1 Vertica user name (dbadmin): dbadmin Save password to avoid runtime prompt? (n) [y/n]: n Node v_testdb_node0001 Backup host name (no default): v_testdb_node0001 Backup directory (no default): /vert_backup/backup Node v_testdb_node0002 Backup host name (no default): v_testdb_node0002 Backup directory (no default): /vert_backup/backup Node v_testdb_node0003 Backup host name (no default): v_testdb_node0003 Backup directory (no default): /vert_backup/backup Config file name (tab1_bkp_snap.ini): /vert_backup/backup_conf/tab1_bkp_snap.ini Change advanced settings? (n) [y/n]: n Saved vbr configuration to /vert_backup/backup_conf/tab1_bkp_snap.ini.
-
बनाई गई बैकअप कॉन्फ़िगरेशन फ़ाइलों को सूचीबद्ध करने के लिए निम्न कमांड चलाएँ:
$ cd /vert_backup/backup_conf/ $ ls -la total 20 drwxr-xr-x. 2 dbadmin dbadmin 4096 Jan 20 14:21 . -rw-rw-r--. 1 dbadmin dbadmin 488 Jan 20 14:21 tab1_bkp_snap.ini -rw-rw-r--. 1 dbadmin dbadmin 475 Jan 20 14:04 full_bkp_snap.ini
बैकअप स्थान प्रारंभ करें
स्रोत क्लस्टर पर पूर्ण और ऑब्जेक्ट-स्तरीय बैकअप के लिए बैकअप स्थान प्रारंभ करने के लिए, निम्न init
चलाएँ बयान:
$ /opt/vertica/bin/vbr.py -t init --config-file full_bkp_snap.ini
$ /opt/vertica/bin/vbr.py -t init --config-file tab1_bkp_snap.ini
एक बैकअप लें
या तो एक पूर्ण डेटाबेस या ऑब्जेक्ट-स्तरीय बैकअप लें।
पूर्ण डेटाबेस बैकअप
पहले बनाई गई कॉन्फ़िगरेशन फ़ाइल का उपयोग करके पूर्ण डेटाबेस बैकअप लें,full_bkp_snap.ini :
$ vbr.py --task backup --config-file full_bkp_snap.ini
Please input vertica password:
pparing...
Found Database port: 5433
Copying...
348900 out of 348900, 100%
All child processes terminated successfully.
Committing changes on all backup sites...
backup done!
एकल ऑब्जेक्ट बैकअप
कॉन्फ़िगरेशन फ़ाइल का उपयोग करें, tab1_bkp_snap.ini , ऑब्जेक्ट-स्तरीय बैकअप लेने के लिए:
$ vbr.py --task backup --config-file tab1_bkp_snap.ini
Please input vertica password:
pparing...
Found Database port: 5433
Copying...
78920 out of 78920, 100%
All child processes terminated successfully.
Committing changes on all backup sites...
backup done!
बैकअप स्थान सत्यापित करें
बैकअप स्थान सत्यापित करने के लिए निम्न आदेश चलाएँ:
$ cd vert_backup/
$ ls -la
total 16
drwxr-xr-x. 4 dbadmin dbadmin 4096 Jan 20 13:40 .
dr-xr-xr-x. 28 root root 4096 Jan 20 13:53 ..
drwxr-xr-x. 5 dbadmin dbadmin 4096 Jan 20 15:22 backup
drwxr-xr-x. 2 dbadmin dbadmin 4096 Jan 20 15:29 backup_conf
$ cd backup/
$ ll
total 12
drwxrwxr-x. 8 dbadmin dbadmin 4096 Jan 20 15:29 v_testdb_node0001
drwxrwxr-x. 8 dbadmin dbadmin 4096 Jan 20 15:29 v_testdb_node0002
drwxrwxr-x. 8 dbadmin dbadmin 4096 Jan 20 15:29 v_testdb_node0003
$ cd v_testdb_node0001/
$ ll
total 12
drwx------. 3 dbadmin dbadmin 4096 Jan 20 15:29 tab1_bkp_snap
drwx------. 3 dbadmin dbadmin 4096 Jan 20 15:22 full_bkp_snap
बैकअप पुनर्स्थापित करें
या तो पूर्ण या ऑब्जेक्ट-स्तरीय बैकअप पुनर्स्थापित करें।
एक पूर्ण-डेटाबेस बैकअप से पुनर्स्थापित करें
नोट :पूर्ण बैकअप को पुनर्स्थापित करने के लिए डेटाबेस डाउन होना चाहिए।
पूर्ण-डेटाबेस पुनर्स्थापना करने के लिए निम्न चरणों का उपयोग करें:
-
अपने डेटाबेस में सभी वस्तुओं को छोड़ दें और हाल ही में बनाए गए बैकअप के साथ उन्हें पुनर्स्थापित करें:
cluster=> dt List of tables Schema | Name | Kind | Owner | Comment --------+-------+-------+---------+--------- public | tab1 | table | dbadmin | public | tab2 | table | dbadmin | public | tab3 | table | dbadmin | (3 rows) cluster=> drop table tab1,tab2,tab3; DROP TABLE cluster=> dt No relations found.
-
डेटाबेस डाउन होने पर, पूर्ण बैकअप का उपयोग करके डेटाबेस को पुनर्स्थापित करें:
$ vbr.py --task restore --config-file full_bkp_snap.ini Please input vertica password: Preparing... Found Database port: 5433 Copying... 248556 out of 248556, 100% All child processes terminated successfully. restore done!
-
डेटाबेस प्रारंभ करें और जांचें कि क्या ऑब्जेक्ट बहाली सफल हुई है। निम्नलिखित उदाहरण दिखाता है कि पुनर्स्थापना सफल रही:
cluster=> dt List of tables Schema | Name | Kind | Owner | Comment --------+-------+-------+---------+--------- public | tab1 | table | dbadmin | public | tab2 | table | dbadmin | public | tab3 | table | dbadmin | (3 rows)
ऑब्जेक्ट-लेवल बैकअप को पुनर्स्थापित करें
नोट :ऑब्जेक्ट-स्तरीय पुनर्स्थापना के लिए डेटाबेस को ऊपर और चालू होना चाहिए।
किसी ऑब्जेक्ट को पुनर्स्थापित करने के लिए, आपको मौजूदा ऑब्जेक्ट-स्तरीय बैकअप का उपयोग करने की आवश्यकता है। निम्न कोड tab1 को छोड़ देता है बहाली की तैयारी में:
cluster=> drop table tab1;
DROP TABLE
cluster=> dt
List of tables
Schema | Name | Kind | Owner | Comment
-------+-------+-------+---------+---------
public | tab2 | table | dbadmin |
public | tab3 | table | dbadmin |
(2 rows)
ऑब्जेक्ट-स्तरीय बैकअप से किसी ऑब्जेक्ट को पुनर्स्थापित करने के लिए निम्न चरणों का पालन करें:
-
वस्तु को पुनर्स्थापित करें:
$ vbr.py --task restore --config-file tab1_bkp_snap.ini Please input vertica password:xxxxxxxx Preparing... Found Database port: 5433 Copying... out of , 100% All child processes terminated successfully. Copying... 2970 out of 2970, 100% All child processes terminated successfully. restore done!
-
जांचें कि क्या वस्तु बहाली सफल हुई। निम्न उदाहरण public.tab1 . के सफल पुनर्स्थापन को दर्शाता है ऑब्जेक्ट-लेवल बैकअप से:
$ vsql Password:xxxxxxx dbadmin=> dt List of tables Schema | Name | Kind | Owner | Comment --------+-------+-------+---------+--------- public | tab1 | table | dbadmin | public | tab2 | table | dbadmin | public | tab3 | table | dbadmin | (3 rows) dbadmin=> d tab1 ; List of Fields by Tables Schema | Table | Column | Type | Size | Default | Not Null | Primary Key | Foreign Key --------+-------+--------+--------------+------+---------+----------+-------------+------------- public | tab1 | col1 | numeric(3,) | 8 | | f | f |
निष्कर्ष
यह पोस्ट वर्टिका डेटाबेस बैकअप और पुनर्प्राप्ति प्रक्रिया के पीछे के तर्क पर प्रकाश डालता है। यह वर्टिका डेटाबेस को पूर्ण, वृद्धिशील और ऑब्जेक्ट-लेवल जैसे विभिन्न स्तरों पर बैकअप लेने और पुनर्स्थापित करने के चरण भी प्रदान करता है।
डेटाबेस के बारे में और जानें।
www.rackspace.com पर जाएं और बिक्री चैट . पर क्लिक करें बातचीत शुरू करने के लिए।
कोई टिप्पणी करने या प्रश्न पूछने के लिए प्रतिक्रिया टैब का उपयोग करें।