Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> डेटाबेस

Apache Cassandra बैकअप और रिकवरी में महारत: एक पूर्ण DBA गाइड

डेटाबेस बैकअप और रिकवरी उन महत्वपूर्ण दैनिक गतिविधियों में से एक है जो एक डेटाबेस प्रशासक (DBA) करता है। डेटाबेस बैकअप आपके डेटा की एक प्रति है जिसका उपयोग डेटा हानि की स्थिति में डेटा को पुनर्प्राप्त करने के लिए किया जा सकता है।

यह ब्लॉग आपको दिखाता है कि Apache® Cassandra® डेटाबेस का बैकअप कैसे लें और विफलता के बाद उन्हें कैसे पुनर्स्थापित करें।

परिचय

हालांकि Apache Cassandra विकेंद्रीकृत है, यह क्लस्टर में किसी एक नोड में डेटा होने तक बिना किसी व्यावसायिक डेटा को खोए सिंगल और मल्टी-नोड विफलताओं को सहन कर सकता है। हालांकि, सर्वोत्तम अभ्यास के रूप में, आपको डेटाबेस के लिए बैकअप कॉन्फ़िगर करना चाहिए।

किसी भी विफलता की स्थिति में, जैसे पूरे क्लस्टर का पुनर्निर्माण, डेटा भ्रष्टाचार, आकस्मिक डेटा हटाना, आदि, आप बैकअप से डेटा पुनर्प्राप्त कर सकते हैं और न्यूनतम या बिना किसी प्रभाव के व्यावसायिक संचालन जारी रख सकते हैं।

अधिक से अधिक कंपनियां बड़ी मात्रा में व्यावसायिक डेटा को सफलतापूर्वक प्रबंधित करने के लिए NoSQL डेटाबेस, जैसे Cassandra, का उपयोग कर रही हैं, जिसे बड़े डेटा के रूप में जाना जाता है। Cassandra, कई प्रमुख संगठनों द्वारा व्यापक रूप से उपयोग किया जाता है, बिग डेटा का समर्थन करने के लिए स्केलेबिलिटी, फॉल्ट-टॉलरेंस और स्थिरता सुनिश्चित करता है।

Cassandra डेटाबेस बैकअप और पुनर्स्थापना

आप Cassandra डेटाबेस का स्नैपशॉट लेने और आवश्यकता पड़ने पर उसे पुनर्स्थापित करने के लिए निम्नलिखित उपयोगिताओं का उपयोग कर सकते हैं:

  • nodetool (स्नैपशॉट लेने के लिए)
  • sstableloader (स्नैपशॉट बैकअप को पुनर्स्थापित करने के लिए)

निम्न छवि sstableloader का उपयोग करके क्लाउड क्लस्टर से Cassandra क्लस्टर पर जाने को दर्शाती है:

Apache Cassandra बैकअप और रिकवरी में महारत: एक पूर्ण DBA गाइड

छवि स्रोत: https://dzone.com/articles/using-casandras-sstable-bulk

बैकअप

निम्न उदाहरण Cassandra डेटाबेस कीस्पेस (users) का स्नैपशॉट लेने के लिए nodetool का उपयोग करता है जिसमें employee नामक एक टेबल है।

स्रोत Cassandra क्लस्टर विवरण:

$ nodetool -u cassandra -pw ******** -h localhost status Datacenter: us-central1 ======================= Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 10.128.0.2 121.52 KiB 256 63.3% 5957997f-7471-4c21-bead-37a6604812e2 f UN 10.128.0.3 92.22 KiB 256 68.0% 87c2a663-a965-4675-b5ed-c4a46d77c796 f UN 10.128.0.4 225.3 KiB 256 68.8% 8e12557f-be00-4387-bff3-ef51f431b9a0 f

कीस्पेस का बैकअप लेने के लिए निम्न कमांड का उपयोग करें:

$ nodetool -h localhost -u cassandra -pw ****** snapshot users -t "users-201904201800" Requested creating snapshot(s) for [users] with snapshot name [users-201904201800] and options {skipFlush=false} Snapshot directory: users-201904201800

यह निम्न उदाहरण में दिखाए अनुसार एक बैकअप स्नैपशॉट बनाता है:

/bitnami/cassandra/data/data/users/employee-c1319df0636211e9a0e3570eb7f8fd5f/snapshots/users-201904201800 $ ls -ltr total 44 -rw-r--r-- 2 cassandra cassandra 16 Apr 20 12:05 md-1-big-Filter.db -rw-r--r-- 2 cassandra cassandra 56 Apr 20 12:05 md-1-big-Summary.db -rw-r--r-- 2 cassandra cassandra 32 Apr 20 12:05 md-1-big-Index.db -rw-r--r-- 2 cassandra cassandra 134 Apr 20 12:05 md-1-big-Data.db -rw-r--r-- 2 cassandra cassandra 10 Apr 20 12:05 md-1-big-Digest.crc32 -rw-r--r-- 2 cassandra cassandra 43 Apr 20 12:05 md-1-big-CompressionInfo.db -rw-r--r-- 2 cassandra cassandra 4683 Apr 20 12:05 md-1-big-Statistics.db -rw-r--r-- 2 cassandra cassandra 92 Apr 20 12:05 md-1-big-TOC.txt -rw-r--r-- 1 cassandra cassandra 31 Apr 20 12:05 manifest.json -rw-r--r-- 1 cassandra cassandra 865 Apr 20 12:05 schema.cql $ date Sat Apr 20 12:08:21 UTC 2019

अब, /snapshot बैकअप डायरेक्टरी फ़ाइलों को आर्काइव करें और टार फ़ाइल को /bitnami/Cassandra/data/data/backup डायरेक्टरी में ले जाएं।

$ tar -cvf users-201904201800.tar *.* manifest.json md-1-big-CompressionInfo.db md-1-big-Data.db md-1-big-Digest.crc32 md-1-big-Filter.db md-1-big-Index.db md-1-big-Statistics.db md-1-big-Summary.db md-1-big-TOC.txt schema.cql $ ls -ltr total 64 -rw-r--r-- 2 cassandra cassandra 16 Apr 20 12:05 md-1-big-Filter.db -rw-r--r-- 2 cassandra cassandra 56 Apr 20 12:05 md-1-big-Summary.db -rw-r--r-- 2 cassandra cassandra 32 Apr 20 12:05 md-1-big-Index.db -rw-r--r-- 2 cassandra cassandra 134 Apr 20 12:05 md-1-big-Data.db -rw-r--r-- 2 cassandra cassandra 10 Apr 20 12:05 md-1-big-Digest.crc32 -rw-r--r-- 2 cassandra cassandra 43 Apr 20 12:05 md-1-big-CompressionInfo.db -rw-r--r-- 2 cassandra cassandra 4683 Apr 20 12:05 md-1-big-Statistics.db -rw-r--r-- 2 cassandra cassandra 92 Apr 20 12:05 md-1-big-TOC.txt -rw-r--r-- 1 cassandra cassandra 31 Apr 20 12:05 manifest.json -rw-r--r-- 1 cassandra cassandra 865 Apr 20 12:05 schema.cql -rw-r--r-- 1 cassandra cassandra 20480 Apr 20 12:22 users-201904201800.tar cp *.tar /bitnami/cassandra/data/data/backup. /bitnami/cassandra/data/data/backup $ ls -ltr -rw-r--r-- 1 cassandra cassandra 20480 Apr 20 12:23 users-201904201800.tar

बैकअप टार फ़ाइल को गैर-डिफ़ॉल्ट स्थान पर कॉपी करने के बाद, employee टेबल को ड्रॉप करें।

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

$ cqlsh -u cassandra -p ******* Connected to Test_Cassandra at 127.0.0.1:9042. [cqlsh 5.0.1 | Cassandra 3.11.4 | CQL spec 3.4.4 | Native protocol v4] Use HELP for help. cassandra@cqlsh> use users; cassandra@cqlsh:users> select * from employee; emp_id | employee_address | employee_name --------+------------------+--------------- 8796 | Singapore | Joy 5647 | London | Mike 3452 | Canada | Nancy 6453 | China | John (4 rows) cassandra@cqlsh:users> drop table employee; cassandra@cqlsh:users> select * from employee; InvalidRequest: Error from server: code=2200 [Invalid query] message="unconfigured table employee"

पुनर्स्थापना

कीस्पेस (users) स्नैपशॉट बैकअप से employee टेबल को पुनर्स्थापित करने के लिए, आपको sstableloader उपयोगिता का उपयोग करना होगा। sstableloader उपयोगिता न केवल sstables के सेट को प्रत्येक नोड पर कॉपी करती है बल्कि क्लस्टर के लिए परिभाषित प्रतिकृति रणनीति के आधार पर डेटा के उपयुक्त हिस्से को प्रत्येक नोड पर स्थानांतरित भी करती है। ध्यान दें कि डेटा पुनर्स्थापित करने के लिए खाली टेबल होना आवश्यक नहीं है।

backup/users में टार फ़ाइल को पुनर्स्थापित करने के लिए निम्न चरणों का उपयोग करें:

$ pwd /bitnami/cassandra/data/data/backup/users $ ls -ltr total 20 -rw-r--r-- 1 cassandra cassandra 20480 Apr 20 12:23 users-201904201800.tar $ tar -xvf *.tar manifest.json md-1-big-CompressionInfo.db md-1-big-Data.db md-1-big-Digest.crc32 md-1-big-Filter.db md-1-big-Index.db md-1-big-Statistics.db md-1-big-Summary.db md-1-big-TOC.txt schema.cql

उस टेबल के नाम से यूजर डायरेक्टरी के लिए एक सॉफ्ट लिंक बनाएं जिसे आप पुनर्स्थापित करने जा रहे हैं।

$ ln -s /bitnami/cassandra/data/data/backup/users employee $ ls -ltr total 64 -rw-r--r-- 1 cassandra cassandra 865 Apr 20 12:05 schema.cql -rw-r--r-- 1 cassandra cassandra 92 Apr 20 12:05 md-1-big-TOC.txt -rw-r--r-- 1 cassandra cassandra 56 Apr 20 12:05 md-1-big-Summary.db -rw-r--r-- 1 cassandra cassandra 4683 Apr 20 12:05 md-1-big-Statistics.db -rw-r--r-- 1 cassandra cassandra 32 Apr 20 12:05 md-1-big-Index.db -rw-r--r-- 1 cassandra cassandra 16 Apr 20 12:05 md-1-big-Filter.db -rw-r--r-- 1 cassandra cassandra 10 Apr 20 12:05 md-1-big-Digest.crc32 -rw-r--r-- 1 cassandra cassandra 134 Apr 20 12:05 md-1-big-Data.db -rw-r--r-- 1 cassandra cassandra 43 Apr 20 12:05 md-1-big-CompressionInfo.db -rw-r--r-- 1 cassandra cassandra 31 Apr 20 12:05 manifest.json -rw-r--r-- 1 cassandra cassandra 20480 Apr 20 12:23 users-201904201800.tar lrwxrwxrwx 1 cassandra cassandra 41 Apr 20 15:56 employee -> /bitnami/cassandra/data/data/backup/users

स्नैपशॉट बैकअप द्वारा जनरेट की गई .cql फ़ाइल का उपयोग करके टेबल संरचना बनाएं।

जब आप कीस्पेस के लिए बैकअप निष्पादित करते हैं, तो यह schema.cql नामक एक फ़ाइल जनरेट करता है जिसमें कीस्पेस में मौजूद ऑब्जेक्ट्स का डेटा डेफिनिशन लैंग्वेज (DDL) होता है।

schema.cql का उपयोग करके employee ऑब्जेक्ट बनाएं, जिसे गलती से ड्रॉप कर दिया गया था।

$ cqlsh -u cassandra -p ******** -f schema.cql Warnings: dclocal_read_repair_chance table option has been deprecated and will be removed in version 4.0 dclocal_read_repair_chance table option has been deprecated and will be removed in version 4.0 $ cqlsh -u cassandra -p ******* -f schema.cql

sstableloader का उपयोग करके स्नैपशॉट से डेटा पुनर्स्थापित करें, जो बैकअप से हर sstables को पढ़ता है और डेटा को क्लस्टर में स्ट्रीम करता है। यह तब क्लस्टर में परिभाषित प्रतिकृति रणनीति के आधार पर डेटा के प्रासंगिक हिस्से को प्रत्येक नोड पर स्थानांतरित करता है।

Syntax: sstableloader -u <username> -pw passwrod -d <hostname> <employee table softlink name with location>

डेटा पुनर्स्थापित करने के लिए निम्न कमांड का उपयोग करें:

$ sstableloader -u cassandra -pw ******** -d cassandra-cluster-1-node-0 /bitnami/cassandra/data/data/backup/users/employee Established connection to initial hosts Opening sstables and calculating sections to stream Streaming relevant part of /bitnami/cassandra/data/data/backup/users/md-1-big-Data.db to [/10.128.0.2, /10.128.0.3, /10.128.0.4] progress: [/10.128.0.2]0:0/1 0 % [/10.128.0.3]0:0/1 0 % [/10.128.0.4]0:1/1 100% total: 33% 0.032KiB/s (avg: 0.032KiB/s) progress: [/10.128.0.2]0:0/1 0 % [/10.128.0.3]0:0/1 0 % [/10.128.0.4]0:1/1 100% total: 33% 0.000KiB/s (avg: 0.031KiB/s) progress: [/10.128.0.2]0:0/1 0 % [/10.128.0.3]0:1/1 100% [/10.128.0.4]0:1/1 100% total: 66% 0.113KiB/s (avg: 0.050KiB/s) progress: [/10.128.0.2]0:1/1 100% [/10.128.0.3]0:1/1 100% [/10.128.0.4]0:1/1 100% total: 100% 85.129KiB/s (avg: 0.074KiB/s) progress: [/10.128.0.2]0:1/1 100% [/10.128.0.3]0:1/1 100% [/10.128.0.4]0:1/1 100% total: 100% 0.000KiB/s (avg: 0.073KiB/s) progress: [/10.128.0.2]0:1/1 100% [/10.128.0.3]0:1/1 100% [/10.128.0.4]0:1/1 100% total: 100% 0.000KiB/s (avg: 0.073KiB/s) Summary statistics: Connections per host : 1 Total files transferred : 3 Total bytes transferred : 0.393KiB Total duration : 5346 ms Average transfer rate : 0.073KiB/s Peak transfer rate : 0.074KiB/s

अपने sstables से डेटा पुनर्प्राप्त करने के लिए हर नोड के लिए इन चरणों को दोहराएं।

nodetool repair का उपयोग करके डेटा की मरम्मत करें, जो उस नोड पर संग्रहीत डेटा के सभी प्रतियों की तुलना करता है जिस पर कमांड चलता है और प्रत्येक प्रति को नवीनतम संस्करण में अपडेट करता है।

$ nodetool repair -u Cassandra -pw ******** [2019-04-21 07:59:14,701] Starting repair command #1 (5b123ad0-640b-11e9-a0e3-570eb7f8fd5f), repairing keyspace users with repair options (parallelism: parallel, primary range: false, incremental: true, job threads: 1, ColumnFamilies: [], dataCenters: [], hosts: [], # of ranges: 768, pull repair: false) [2019-04-21 07:59:16,450] Repair completed successfully [2019-04-21 07:59:16,451] Repair command #1 finished in 1 second [2019-04-21 07:59:16,460] Replication factor is 1. No repair is needed for keyspace 'system_auth' [2019-04-21 07:59:16,474] Starting repair command #2 (5c22e780-640b-11e9-a0e3-570eb7f8fd5f), repairing keyspace system_traces with repair options (parallelism: parallel, primary range: false, incremental: true, job threads: 1, ColumnFamilies: [], dataCenters: [], hosts: [], # of ranges: 513, pull repair: false) finished (progress: 1%) [2019-04-21 07:59:17,653] Repair completed successfully [2019-04-21 07:59:17,653] Repair command #2 finished in 1 second

employee टेबल में डेटा को मान्य करें, जिसे हमने ड्रॉप किया था। पिछली कमांड ने पहले लिए गए बैकअप से डेटा पुनर्स्थापित किया। अब आपको यह देखने के लिए डेटा को मान्य करना होगा कि क्या यह ठीक से पुनर्स्थापित हुआ था।

$ cqlsh -u cassandra -p ******** Connected to Test_Cassandra at 127.0.0.1:9042. [cqlsh 5.0.1 | Cassandra 3.11.4 | CQL spec 3.4.4 | Native protocol v4] Use HELP for help. cassandra@cqlsh> use users; cassandra@cqlsh:users> select * from employee; emp_id | employee_address | employee_name --------+------------------+--------------- 8796 | Singapore | Joy 5647 | London | Mike 3452 | Canada | Nancy 6453 | China | John (4 rows)

निष्कर्ष

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

स्रोत और लक्ष्य डेटाबेस क्लस्टर में नोड्स की संख्या sstableloader के साथ कोई मायने नहीं रखती क्योंकि यह बैकअप से प्रत्येक sstables को पढ़ता है। फिर, यह डेटा को क्लस्टर में स्ट्रीम करता है जबकि क्लस्टर में परिभाषित प्रतिकृति रणनीति के अनुसार डेटा रखता है।

कोई भी टिप्पणी करने या प्रश्न पूछने के लिए फीडबैक टैब का उपयोग करें।

विशेषज्ञ प्रशासन, प्रबंधन और कॉन्फ़िगरेशन के साथ अपने वातावरण को अनुकूलित करें

Rackspace के एप्लिकेशन सेवाओं (RAS) विशेषज्ञ अनुप्रयोगों के एक व्यापक पोर्टफोलियो में निम्नलिखित पेशेवर और प्रबंधित सेवाएं प्रदान करते हैं:

  • ईकॉमर्स और डिजिटल अनुभव प्लेटफॉर्म
  • एंटरप्राइज रिसोर्स प्लानिंग (ERP)
  • बिजनेस इंटेलिजेंस
  • सेल्सफोर्स कस्टमर रिलेशनशिप मैनेजमेंट (CRM)
  • डेटाबेस
  • ईमेल होस्टिंग और उत्पादकता

हम प्रदान करते हैं:

  • निष्पक्ष विशेषज्ञता: हम आपकी आधुनिकीकरण यात्रा को सरल बनाते हैं और मार्गदर्शन करते हैं, उन क्षमताओं पर ध्यान केंद्रित करते हैं जो तत्काल मूल्य प्रदान करती हैं।
  • फैनेटिकल एक्सपीरियंस™: हम एक प्रोसेस फर्स्ट, टेक्नोलॉजी सेकंड® दृष्टिकोण को समर्पित तकनीकी सहायता के साथ जोड़कर व्यापक समाधान प्रदान करते हैं।
  • अद्वितीय पोर्टफोलियो: हम आपको सही क्लाउड पर सही तकनीक चुनने और तैनात करने में मदद करने के लिए व्यापक क्लाउड अनुभव लागू करते हैं।
  • चुस्त डिलीवरी: हम आपकी यात्रा में जहां आप हैं, वहां मिलते हैं और अपनी सफलता को आपके साथ संरेखित करते हैं।

अभी चैट करें शुरू करने के लिए।


  1. आवश्यक मैक बैकअप मार्गदर्शिका: अभी अपने डेटा को सुरक्षित रखें आवश्यक मैक बैकअप मार्गदर्शिका: अभी अपने डेटा को सुरक्षित रखें

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

  1. गूगल बैकअप और सिंक शेड्यूल करें: क्लाउड बैकअप स्वचालित करें गूगल बैकअप और सिंक शेड्यूल करें: क्लाउड बैकअप स्वचालित करें

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

  1. अपने सिस्टम को सुरक्षित करें: विंडोज रजिस्ट्री का सुरक्षित बैकअप और रिस्टोर करें अपने सिस्टम को सुरक्षित करें: विंडोज रजिस्ट्री का सुरक्षित बैकअप और रिस्टोर करें

    रजिस्ट्री आपके कंप्यूटर के मस्तिष्क की तरह कार्य करती है। इसमें उन सभी कॉन्फ़िगरेशन और सेटिंग्स को शामिल किया जाता है जिनका उपयोग घटकों, सेवाओं, अनुप्रयोगों और विंडोज में लगभग हर चीज द्वारा किया जाता है। रजिस्ट्री की दो बुनियादी अवधारणाएं हैं जिनके बारे में पता होना चाहिए: Keys और Values। रजिस्ट्री