सारांश: इस पोस्ट में, हम MySQL में एक भ्रष्ट InnoDB तालिका को ठीक करने के कुछ सर्वोत्तम तरीकों पर चर्चा करेंगे, जो हार्डवेयर विफलता, MySQL सर्वर क्रैश और अन्य कारणों से दूषित हो सकते हैं। इन तरीकों में मैन्युअल रूप से या MySQL मरम्मत सॉफ़्टवेयर का उपयोग करके दूषित InnoDB तालिका को सुधारने की चरण-वार प्रक्रिया शामिल है।
MySQL 5.5 संस्करण से शुरू होकर, InnoDB का उपयोग MySQL डेटाबेस में सभी नई तालिकाओं के लिए डिफ़ॉल्ट स्टोरेज इंजन के रूप में किया जाता है। InnoDB की सबसे अच्छी बात यह है कि यह क्रैश रिकवरी को सपोर्ट करता है। इस प्रकार, यह आसानी से दूषित नहीं हो सकता है, लेकिन जब ऐसा होता है, तो यह रीबूट, हार्डवेयर विफलता या अंतर्निहित प्लेटफॉर्म में बग आदि के बाद MySQL सर्वर क्रैश के कारण हो सकता है।
जब एक InnoDB तालिका दूषित हो जाती है, तो उसके भीतर का डेटा अपठनीय और दुर्गम हो जाता है। और, दूषित तालिका से पढ़ने का प्रयास MySQL सर्वर को क्रैश करने का कारण बन सकता है।
MySQL में भ्रष्ट InnoDB तालिका को कैसे ठीक करें?
नोट: दूषित InnoDB तालिका को सुधारने का प्रयास करने से पहले, सुनिश्चित करें कि पहले अपनी MySQL डेटाबेस फ़ाइलों का बैकअप लें।
निम्नलिखित तरीके हैं जिनका उपयोग करके आप भ्रष्ट InnoDB डेटाबेस तालिका की मरम्मत कर सकते हैं
1. दूषित InnoDB तालिका को मैन्युअल रूप से ठीक करें
आपको शायद ही कभी InnoDB तालिकाओं की मरम्मत करने की आवश्यकता होगी, क्योंकि स्टोरेज इंजन क्रैश रिकवरी करने में मदद करता है जो सर्वर के पुनरारंभ होने के बाद अधिकांश समस्याओं को ठीक कर सकता है। हालाँकि, ऐसी स्थिति उत्पन्न हो सकती है जहाँ आपको किसी भ्रष्ट तालिका को मैन्युअल रूप से पुनर्निर्माण या मरम्मत करने की आवश्यकता होगी। यहां बताया गया है कि आप इसे कैसे कर सकते हैं:
चरण 1:MySQL सेवा को पुनरारंभ करें
यह जांचने के लिए कि क्या आप सर्वर तक पहुंच सकते हैं, MySQL सेवा को पुनरारंभ करें, निम्न कार्य करके:
- ‘Windows+R’ clicking क्लिक करके रन विंडो खोलें एक साथ चाबियां।
- टाइप करें एमएससी और दर्ज करें . दबाएं ।
- सेवाओं . से विंडो में, MySQL सेवा की तलाश करें और उस पर राइट-क्लिक करें, और फिर पुनरारंभ करें . पर क्लिक करें ।
यदि सर्वर पहुंच योग्य है, तो चरण 3 पर जाएं। लेकिन यदि यह प्रारंभ नहीं होता या क्रैश होना जारी रहता है, तो अगले चरण में बताए गए innodb_force_recovery विकल्प का उपयोग करें।
चरण 2:InnoDB पुनर्प्राप्ति को बाध्य करें
innodb_force_recovery . को सक्षम करें MySQL डेटाबेस और इसकी भ्रष्ट तालिका तक पहुंच प्राप्त करने के लिए MySQL my.cnf कॉन्फ़िगरेशन फ़ाइल में विकल्प। ऐसा करने के लिए, इन चरणों का पालन करें:
- my.cnf फ़ाइल खोलें और [mysqld] अनुभाग में कोड की निम्न पंक्ति जोड़ें:
[mysqld] Innodb_force_recovery=1
- कॉन्फ़िगरेशन फ़ाइल सहेजें और बंद करें।
- MySQL सेवा को फिर से शुरू करने का प्रयास करें।
चरण 3:भ्रष्ट तालिका छोड़ें
एक बार जब आप भ्रष्ट तालिका तक पहुँच सकते हैं, तो निम्न mysqldump कमांड का उपयोग करके तालिका डेटा को एक नई फ़ाइल में डंप करें:
mysqldump –u user –p db_name table_name > single_dbtable_dump.sql
नोट: एकाधिक तालिकाओं को डंप करने के लिए उपरोक्त आदेश में रिक्त स्थान से अलग तालिका नाम जोड़ें।
अब, भ्रष्ट तालिका को डेटाबेस से हटा दें:
mysql –u user –p –execute=”DROP TABLE db_name.table_name”
चरण 4:तालिका पुनर्स्थापित करें
तालिका को डंप (यानी, सिंगल_डीबीटेबल_डम्प) फ़ाइल से पुनर्स्थापित करने के लिए नई बनाई गई डंप फ़ाइल का उपयोग करें:
mysql –u user –p < single_dbtable_dump.sql
चरण 5:MySQL को सामान्य मोड में पुनरारंभ करें
जब दूषित तालिका की मरम्मत की जाती है, तो MySQL सेवा को रोकें और [mysqld] अनुभाग में निम्न पंक्ति दर्ज करके InnoDB पुनर्प्राप्ति मोड को अक्षम करें:
#innodb_force_recovery=...
अब MySQL सर्विस को नॉर्मल मोड में रीस्टार्ट करें।
नोट: यदि आपने innodb_force_recovery विकल्प का उपयोग नहीं किया है, तो बस रुकें और सर्वर को सामान्य मोड में पुनरारंभ करें।
2. MySQL मरम्मत सॉफ़्टवेयर का उपयोग करके दूषित InnoDB तालिका को ठीक करें
डेटाबेस तक पहुंच प्राप्त करने के लिए 4 से अधिक 'innodb_force_recovery' मान का उपयोग करने से डेटा भ्रष्टाचार हो सकता है। साथ ही, गंभीर भ्रष्टाचार के मामलों में, आप अपने MySQL सर्वर को पुनरारंभ करने में विफल हो सकते हैं। आप विशेष MySQL मरम्मत सॉफ़्टवेयर का उपयोग करके MySQL डेटाबेस की दूषित तालिका को मैन्युअल रूप से सुधारने की इन सीमाओं को पार कर सकते हैं जैसे कि MySQL के लिए स्टेलर रिपेयर।
सॉफ्टवेयर अपने डेटा को बरकरार रखते हुए MySQL डेटाबेस के InnoDB टेबल को रिपेयर और रिस्टोर कर सकता है। साथ ही, यह तालिका गुणों, कुंजियों, संबंध बाधाओं आदि को पुनर्प्राप्त करने में मदद करता है।
यह MySQL डेटाबेस रिपेयर यूटिलिटी विंडोज और लिनक्स ओएस-आधारित सिस्टम पर बनाए गए InnoDB और MyISAM टेबल दोनों को ठीक करने में मदद करती है।
सॉफ़्टवेयर का उपयोग करके भ्रष्ट InnoDB तालिका को सुधारने के चरण इस प्रकार हैं:
- निःशुल्क डाउनलोड करें, इंस्टॉल करें और चलाएं MySQL के लिए तारकीय मरम्मत
- डेटा फ़ोल्डर चुनें . से संवाद बॉक्स में, MySQL संस्करण का चयन करें जिसका आप उपयोग कर रहे हैं, और फिर ठीक . पर क्लिक करें ।
- डेटाबेस चुनें से बॉक्स में, वह डेटाबेस चुनें जिसे आप सुधारना चाहते हैं, और फिर मरम्मत . पर क्लिक करें ।
- सॉफ़्टवेयर पूर्वावलोकन विंडो में सुधारे गए डेटाबेस, तालिका और अन्य पुनर्प्राप्ति योग्य घटकों का पूर्वावलोकन प्रदर्शित किया जाता है।
- उस तालिका का चयन करें जिसे आप पुनर्स्थापित करना चाहते हैं, और फिर फ़ाइल मेनू पर सहेजें क्लिक करें।
- डेटाबेस सहेजें से बॉक्स में, MySQL choose चुनें इस रूप में सहेजें . के अंतर्गत , और सर्वर से कनेक्ट करने के लिए आवश्यक क्रेडेंशियल दर्ज करें। सहेजें Click क्लिक करें ।
आप ठीक की गई डेटाबेस फ़ाइल को एक नए फ़ोल्डर में उसी स्थान पर पा सकते हैं जहाँ आपका मूल डेटाबेस संग्रहीत है।
आप ठीक की गई डेटाबेस फ़ाइल को एक नए फ़ोल्डर में उसी स्थान पर पा सकते हैं जहाँ आपका मूल डेटाबेस संग्रहीत है।
निष्कर्ष
InnoDB तालिका में भ्रष्टाचार इसके भीतर के डेटा को अपठनीय बना सकता है, और यदि समय पर निपटा नहीं जाता है, तो इसके परिणामस्वरूप सर्वर क्रैश और अनियोजित डाउनटाइम भी हो सकता है। आप मैन्युअल चरण-वार प्रक्रिया का पालन करके दूषित InnoDB तालिका को ठीक कर सकते हैं। हालाँकि, InnoDB तालिकाओं की मरम्मत के लिए मैन्युअल प्रक्रिया के परिणामस्वरूप डेटा हानि हो सकती है और अपेक्षित परिणाम नहीं दे सकते हैं।
हालांकि, MySQL के लिए स्टेलर रिपेयर जैसे MySQL डेटाबेस रिपेयर टूल का उपयोग करके, आप InnoDB स्टोरेज इंजन पर टेबल को रिपेयर कर सकते हैं और इसे इसकी मूल कार्यात्मक स्थिति में पुनर्स्थापित कर सकते हैं। यह फाइल रिपेयर यूटिलिटी विंडोज और लिनक्स ओएस दोनों पर बनाए गए MySQL डेटाबेस को रिपेयर करने में मदद करती है। यह न केवल InnoDB तालिकाओं की मरम्मत कर सकता है बल्कि MySQL डेटाबेस के MyISAM तालिकाओं में भ्रष्टाचार को भी ठीक कर सकता है।