Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL तालिका को क्रैश के रूप में चिह्नित किया गया है

MyISAM तालिकाओं को क्रैश करना बहुत आसान है। प्रत्येक तालिका में हेडर जानकारी होती है जो यह ट्रैक करती है कि एक MyISAM तालिका में कितनी खुली फ़ाइल हैंडल करती है।

यदि mysqld क्रैश हो जाता है, तो कोई भी MyISAM तालिका जिसमें खुली फ़ाइल हैंडल होती है, उसे कभी भी प्रत्येक फ़ाइल हैंडल बंद होने पर फ़ाइल हैंडल की संख्या को कम करने का अवसर नहीं मिलता है। इस प्रकार, यदि कोई नया फ़ाइल हैंडल एक MyISAM तालिका (.MYD फ़ाइल) खोलता है और mysqld फ़ाइल हैंडल की संख्या के बीच एक बेमेल का पता लगाता है जिसे MyISAM तालिका मानती है कि खुला है और MyISAM तालिका में फ़ाइल की संख्या वास्तव में खुली है, तो तालिका है दुर्घटनाग्रस्त घोषित किया गया।

इसे संभालने के लिए चार (4) तरीके हैं:

विधि #1 :स्वचालित MyISAM मरम्मत सेटअप करें

मेरी पोस्ट देखें https://dba.stackexchange.com/a/15079/877 इसे MySQL रीस्टार्ट पर कैसे सेट करें (मार्च 15, 2012)

विधि #2 :MyISAM के बजाय InnoDB का उपयोग करें

InnoDB में स्टोरेज इंजन के इनिशियलाइज़ेशन में निर्मित क्रैश रिकवरी है। माईसाम नहीं करता

विधि #3 :MyISAM के बजाय Aria का उपयोग करें

एरिया माईसाम के लिए मारियाडीबी का ड्रॉप-इन प्रतिस्थापन है। इसमें अलग-अलग टेबल के लिए क्रैश रिकवरी मैकेनिज्म है।

विधि #4 :mysqld पर -9 को न मारें

यदि जानबूझकर या अनजाने में mysqld क्रैश हो जाता है, तो सभी खुले MyISAM तालिकाओं के लिए हेडर जानकारी उन्हें क्रैश स्थिति में ले जाएगी। mysqld को मैन्युअल रूप से बंद करने से बचें।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL - समूह से उत्पन्न होने वाले सभी आइटमों के लिए चयन कथन द्वारा फ़ील्ड को कैसे अपडेट करें

  2. MySQL UTF8 विंडोज निर्यात - लिनक्स आयात

  3. MySQL DATE_ADD काम नहीं करता

  4. WHERE क्लॉज में एक वेरिएबल का उपयोग करना

  5. उन उपयोगकर्ताओं के लिए प्रश्न जो किसी विशिष्ट समूह में नहीं हैं? (EXCEPT का उपयोग करना चाहता था लेकिन ऐसा लगता है कि MySQL इसका समर्थन नहीं करता है)