8.1 डेटाबेस बॅकअपची आवश्यकता

डेटाबेस स्कीमा, टेबल्स कसे बनवायचे, ते कसे पहायचे हे तुम्ही शिकलात. तसेच हे टेबल डेटाने भरा आणि बदला. आता तुम्हाला सर्वात महत्वाची गोष्ट शिकण्याची गरज आहे - बॅकअप घेणे.

डेटाबेस खंडित करणे खूप सोपे आहे. वस्तुस्थिती अशी आहे की डेटाबेस सहसा सतत बदलण्याच्या स्थितीत असतो: काहीतरी सतत जतन केले जाते आणि त्यात जोडले जाते.

कल्पना करा की तुमच्या ब्राउझरमध्ये एक टॅब उघडला आहे आणि तुम्हाला त्यातील माहिती हरवायची नाही. सहमत आहे की तुम्ही ते कधीही बंद न करण्याचा निर्णय घेतल्यास, हा सर्वोत्तम पर्याय होणार नाही. तथापि, ब्राउझर गोठवू शकतो, तो अपघाताने बंद होऊ शकतो, आपण प्रकाश गमावू शकता किंवा आपला संगणक बर्न करू शकता. विंडोज दुसरे अपडेट इन्स्टॉल करू शकते, पण तुम्हाला कधीच कळत नाही.

तर, तुमचा डेटाबेस समान टॅब आहे. आणि डिस्कवर पुढील लिहिताना काहीतरी चूक होते तेव्हाच ही गोष्ट आहे. म्हणून, आपल्याला निश्चितपणे बॅकअप कसा बनवायचा हे शिकण्याची आवश्यकता आहे.

बॅकअप घेणे म्हणजे दात घासण्यासारखे आहे, सामान्य कंपन्या दररोज रात्री प्रत्येक डेटाबेसमधील सामग्रीचा बॅकअप घेतात. आणि हार्ड ड्राइव्हस् देखील अयशस्वी होऊ शकतात आणि डेटा सेंटरमध्ये आग लागल्याने, बॅकअप सामान्यतः 2-3 प्रतींमध्ये जगाच्या विविध भागांमध्ये डेटा सेंटरमध्ये संग्रहित केले जातात.

बॅकअप तयार करण्यासाठी अनेक पद्धती आहेत.

बॅकअप फाइल्स. सर्व डेटाबेस डेटा डिस्कवर फाइल्सचा संच म्हणून संग्रहित केला जात असल्याने , या फाइल्स कुठेतरी कॉपी करणे हा सर्वात सोपा मार्ग आहे. किंवा प्रथम एका संग्रहणात संग्रहित करा आणि नंतर कुठेतरी कॉपी करा.

बॅकअप बनवण्याचा हा सर्वात जलद मार्ग आहे, परंतु फायली कॉपी/संग्रहित केल्या जात असताना त्या बदलत नाहीत. प्रत तयार करताना डेटाबेस गोठवला गेला पाहिजे, अन्यथा प्रत कुटिल असेल. तथापि, अशी परिस्थिती असू शकते की काही नवीन डेटा डेटाबेसमध्ये रेकॉर्ड केला जातो आणि काही अद्याप नाही.

SQL क्वेरीच्या स्वरूपात बॅकअप . तुम्हाला आधीच माहित आहे की, SQL सर्व्हर डेटाबेसमध्ये डेटा जोडणे आणि बदलणे हे नेहमी SQL क्वेरी म्हणून दर्शविले जाते. त्यामुळे तुम्ही SQL सर्व्हरला विशिष्ट सारणी किंवा सारण्यांची सामग्री SQL क्वेरीच्या स्वरूपात फाइलमध्ये सेव्ह करण्यास सांगू शकता.

ही पद्धत मागील एकापेक्षा हळू आहे, परंतु ती वेगवेगळ्या उत्पादकांकडून SQL सर्व्हर दरम्यान डेटा हस्तांतरित करण्यासाठी वापरली जाऊ शकते.

तसेच, सर्व डेटा नेहमी जतन करणे आवश्यक नाही. बर्‍याचदा तुमच्या टेबलमध्ये सेवा किंवा अप्रचलित माहिती असते आणि तुम्ही SQL सर्व्हरला ती सेव्ह करू नका असे सांगू शकता.

तसेच, वेळेच्या संदर्भात काही इव्हेंट संचयित करणार्‍या सारण्यांसाठी, तुम्ही फक्त शेवटच्या दिवसासाठी असे कार्यक्रम निवडू शकता आणि फक्त ते संग्रहित करू शकता.

विविध उपयुक्तता . त्यांचा डेटा अबाधित आणि सुरक्षित राहील याची हमी मिळवण्यासाठी कंपन्या खूप पैसे मोजायला तयार असतात. म्हणून, विविध आयटी कंपन्या सर्व प्रसंगांसाठी उपाय देऊ लागल्या. उदाहरणार्थ, असे प्रोग्राम आहेत जे फाइल्सच्या स्वरूपात बॅकअप डेटाबेस बनवू शकतात आणि त्याच वेळी या फायली बदलत नाहीत याची आवश्यकता नसते.

उदाहरणार्थ, आपण ऑपरेटिंग सिस्टममध्ये विशेष ड्रायव्हर्स स्थापित करू शकता आणि केव्हा, काय आणि कुठे बदलले याचा मागोवा ठेवू शकता.

8.2 डेटाबेसचा बॅकअप घेणे

वर्कबेंच ज्या डेटाबेससह कार्य करते त्यामधून डेटा निर्यात आणि आयात करण्यात उत्कृष्ट आहे. हे करण्यासाठी, आपल्याला फक्त मेनू आयटम दाबण्याची आवश्यकता आहे: Server-> Data Export. आणि तुम्हाला असे काहीतरी दिसेल:

आता काही स्पष्टीकरण जोडूया:

क्रम असा आहे:

  1. प्रथम, निर्यात केली जाणारी स्कीमा किंवा स्कीमा निवडा.
  2. मग उजवीकडे आम्ही बॅकअपसाठी टेबल्स निर्दिष्ट करतो.
  3. पुढे, आम्ही नक्की काय निर्यात करू ते निवडले पाहिजे:
    • फक्त डेटा;
    • फक्त रचना (टेबल असतील, परंतु रिक्त);
    • डेटा आणि रचना.
  4. डेटा कसा सेव्ह करायचा ते निवडा:
    • प्रत्येक टेबलसाठी एक फाइल;
    • सर्व टेबलसाठी एक फाइल.
  5. तुम्ही फाइलच्या शीर्षस्थानी स्कीमा क्रिएशन कोड देखील जोडू शकता. भिन्न DBMS दरम्यान डेटा हस्तांतरित करताना हे उपयुक्त आहे.

8.3 टेबल स्कीमाचा बॅकअप घेणे

वास्तविक डेटाशिवाय, फक्त स्कीमांचा बॅकअप घेऊ.

मी फक्त डंप स्ट्रक्चर निवडले आणि स्टार्ट एक्सपोर्ट क्लिक केले.

आणि हेच मला वर्कबेंचने बनवलेल्या फाईलमध्ये सापडले.

--
-- Table structure for table `user`
--

DROP TABLE IF EXISTS `user`;
/*!40101 SET @saved_cs_client 	= @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `user` (
  `id` int(11) NOT NULL,
  `name` varchar(100) DEFAULT NULL,
  `level` int(11) DEFAULT NULL,
  `created_date` date NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

बरोबर आहे, ही आमच्या टेबलची योजना आहे, जर मी एका टेबलबद्दल असे म्हणू शकतो.

8.4 डेटाचा बॅकअप घेणे

आता फक्त डेटाचा बॅकअप घेऊ, पण स्कीमा स्ट्रक्चरशिवाय.

चला फक्त डंप डेटा निवडा आणि ते आम्हाला काय देतात ते पाहू:

आणि हेच मला वर्कबेंचने बनवलेल्या फाईलमध्ये सापडले.

--
-- Dumping data for table `user`
--

LOCK TABLES `user` WRITE;
/*!40000 ALTER TABLE `user` DISABLE KEYS */;
INSERT INTO `user` VALUES
 	(1,'Ivanov Ivan',40,'2022-05-11'),
 	(2,'Petrov Nikola',1,'2021-05-01'),
 	(3,'Sidroov Vitaly',8,'2022-05-12');
/*!40000 ALTER TABLE `user` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

होय, सत्य खूप आवडले. आम्हाला येथे एक विशेष कोड देखील दिसतो जो वापरकर्ता टेबल लॉक करतो. हे केले जाते जेणेकरून तुम्ही या SQL स्क्रिप्टची अंमलबजावणी करू शकता: यात सर्व सूचना आहेत ज्या कोणत्याही SQL सर्व्हरला डेटा योग्यरित्या पुनर्संचयित करण्यास अनुमती देतात.

8.5 बॅकअप तैनात करणे

आणि शेवटी, शेवटची गोष्ट म्हणजे बॅकअपमधून डेटाबेस पुनर्संचयित करणे. ही क्रिया अतिशय सोपी पण उपयुक्त आहे.

समजा मला माझ्या सर्व विद्यार्थ्यांकडे एक विशिष्ट डेटाबेस असावा जेणेकरुन तुम्ही त्यावर प्रश्न कसे लिहायचे ते शिकू शकाल. मग मी तुम्हाला फक्त स्थानिकरित्या उपयोजित केलेल्या फाईलची लिंक देईन आणि तेच.

आणि जरी तुम्ही चुकून काही डेटा, टेबल्स किंवा अगदी संपूर्ण स्कीमा हटवला तरीही, तो नेहमी बॅकअपमधून पुनर्संचयित केला जाऊ शकतो.

डेटा आयात करण्यासाठी, तुम्हाला मेनूमधील आयटमवर क्लिक करणे आवश्यक आहे Server-> Data Import. मग तुम्हाला हे चित्र दिसेल:

निर्यातीच्या बाबतीत, तुम्हाला प्रथम डेटा स्रोत निवडण्यासाठी सूचित केले जाईल: फाइल्सचा एक गट किंवा सर्व डेटा एका फाइलमध्ये.

त्यानंतर तुम्हाला ती योजना निवडण्याची आवश्यकता आहे ज्यामध्ये निर्दिष्ट डेटा अपलोड केला जाईल. तुम्ही विद्यमान योजना निवडू शकता किंवा नवीन तयार करू शकता.

महत्वाचे! जर तुमच्या बॅकअपमध्ये केवळ डेटाच नाही तर सारणीच्या संरचनेचे वर्णन देखील असेल, तर टेबल्स पुन्हा तयार केल्या जातील (लक्ष्य स्कीमामध्ये आधीच काही असल्यास).