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

मैं AWS RDS पर निर्माण से तालिका नाम लॉक करने वाले InnoDB भ्रष्टाचार को कैसे ठीक करूं (त्रुटि:-1)?

InnoDB में DDL लेन-देन संबंधी नहीं है, इसलिए यह संभव है कि .frm फ़ाइल और InnoDB डिक्शनरी में जानकारी भिन्न हो। आपके मामले में ऐसा लगता है कि .frm फ़ाइल गायब है, लेकिन शब्दकोश में एक अनाथ रिकॉर्ड है (ठीक है, वास्तव में कुछ शब्दकोश SYS_* तालिकाओं में रिकॉर्ड)।

आप शब्दकोश से किसी रिकॉर्ड को आसानी से नहीं हटा सकते। आपको एक संबंधित .frm फ़ाइल की आवश्यकता है ताकि MySQL आपके DROP को InnoDB स्तर पर भेज सके। आरडीएस के साथ आप ऐसा नहीं कर सकते।

लेकिन आप पूरे डेटाबेस को DROP कर सकते हैं। उस स्थिति में InnoDB अनाथ सहित शब्दकोश से सभी रिकॉर्ड हटा देगा।

इसलिए, आपके शब्दकोश को साफ करने के लिए मैं निम्नलिखित का सुझाव देता हूं:

  1. MySQL के सभी ट्रैफ़िक को रोकें, इसे केवल पढ़ने के लिए बनाएं
  2. एक अस्थायी डेटाबेस बनाएं adstudio_tmp
  3. RENAME adstudio . की सभी तालिकाएं करने के लिए adstudio_tmp
  4. DROP DATABASE adstudio . इस समय यह खाली है। DROP InnoDB शब्दकोश में सभी प्रविष्टियाँ मिटा देगा।
  5. RENAME सभी टेबल adstudio_tmp . से वापस से adstudio

इसके बाद शब्दकोश साफ होना चाहिए और आप अपना data_feed_param बना पाएंगे ।

मैंने असफल ALTER के बाद भी इसी तरह की समस्या का वर्णन किया है। टेबल . अधिक विवरण के लिए इसे देखें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पीडीओ एक एन्क्रिप्टेड पासवर्ड से कनेक्ट करें?

  2. MySQL इंडेक्स को कब अपडेट करता है

  3. mysql concat समारोह

  4. ट्री ट्रैवर्सल एल्गोरिथम के आधार पर इस परिणाम सेट से ट्री व्यू कैसे उत्पन्न करें?

  5. क्रॉन जॉब्स का उपयोग करके MySQL डेटाबेस का बैकअप कैसे लें