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

अपाचे कैसेंड्रा बैकअप और रिकवरी

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

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

परिचय

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

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

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

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

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

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

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

अपाचे कैसेंड्रा बैकअप और रिकवरी

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

बैकअप

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

स्रोत कैसेंड्रा क्लस्टर विवरण:

$ 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

अब, /स्नैपशॉट को संग्रहित करें बैकअप निर्देशिका फ़ाइलें और tarfile को /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

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

नोट :कैसेंड्रा क्लस्टर में परिभाषित विभाजन कुंजियों और प्रतिकृति कारकों के आधार पर डेटा वितरित करता है, इसलिए आपको इस बैकअप कमांड को अपने सभी नोड्स से चलाना होगा। यह उदाहरण crontab में 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"

पुनर्स्थापित करें

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

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

$ 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 . का उपयोग करें एक कर्मचारी वस्तु बनाने के लिए, जो गलती से गिर गई।

$ 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 . का उपयोग करके स्नैपशॉट से डेटा पुनर्स्थापित करें , जो प्रत्येकस्थिरों . को पढ़ता है बैकअप से और डेटा को क्लस्टर में स्ट्रीम करता है। यह तब क्लस्टर में परिभाषित प्रतिकृति रणनीति के आधार पर डेटा के प्रासंगिक भाग को प्रत्येक नोड में स्थानांतरित करता है।

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

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

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

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

$ 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)

निष्कर्ष

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

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

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

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

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

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

हम वितरित करते हैं:

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

आरंभ करने के लिए अभी चैट करें।


  1. मैक का बैकअप कैसे लें और ऐसा करना क्यों जरूरी है

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

  1. Google बैकअप और सिंक कैसे शेड्यूल करें।

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

  1. Windows रजिस्ट्री का बैकअप और रिस्टोर कैसे करें

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