MySQL "Table is marked as crashed" ስህተት ብዙውን ጊዜ ከMyISAM የማከማቻ ሞተር የሚጠቀም ታብል በማጥለል የተቀደ እና በMySQL በደህና ሊያነበብ የማይችል መሆኑን ያሳያል። በፍጥነት የሚፈታ መንገድ የውሂብ ቤዛ ቅድሚያ በመውሰድ ከ phpMyAdmin ውስጥ የሚገኙትን ታብል በመምረጥ ታብልን አጥረው ሂደትን በማስኬድ ነው። ነገር ግን ይህ ስህተት ሁልጊዜ በአንድ ክብደት መጠቀም በቀላሉ ሊያልፍ የሚችል አይደለም፤ የሰርቨሩ ድንገት ቁልፍ ዝግ መፈጸም፣ የዲስክ ሙሉነት፣ የስህተት ቀይር ጥያቄዎች፣ የብዙ መጻፍ ትራፊክ ወይም አነስተኛ የMySQL አዋቂ ዋቢዎች ምክንያት ሊደግም ይችላል። በዚህ መምሪያ ስህተቱን ምክንያቶች፣ በphpMyAdmin በሚሰጠው መደረጃ ተከታታይ አጥራው አስተያየቶች፣ ከሂደቱ በፊት የቅድሚያ ቅጂ ማረጋገጫና ጠንካራ የማከማቻ መንገዶች በደረጃ ደረጃ ይገኛሉ።
ድር ጣቢያዎ WordPress, OpenCart, የተለየ PHP ሶፍትዌር ወይም የፎረም ሲስተም ቢሆንም፣ የMySQL ታብል ካተረ፣ ተጎባዦች ነጭ ስክሪን፣ 500 ስህተት፣ የግንኙነት ጊዜ ማለፊያ፣ ወይም በአስተዳዳሪ ፓነል ያልተጠበቁ የውሂብ ቤዛ ስህተቶች ሊታዩ ይችላሉ። በተለይም በኢ-ንግድ ጣቢያዎች የትዕዛዝ፣ የእቃ፣ የሴሽን ወይም የሳጥን ታብሎች ካተሩ፣ ጥቂት ደቂቃ ማቋረጥ እንኳን የገቢ አጣስ ሊያስከትል ይችላል። ስለዚህ በማጥረው ሂደት ውስጥ የውሂብ ጥበቃና ምክንያቱን በጥልቅ መስማማት ያስፈልጋል። ታመነ የማከማቻ መሠረት፣ የተደጋጋሚ ቅድሚያ ቅጂ እና ትክክለኛ የውሂብ ቤዛ ሞተር ምርጫ እንደዚህ ዓይነት ስህተቶችን በአደጋ እጅግ ያቅናል። በዚህ ነገር ስር የሚታየው ለተቆጣጠረና ለሚታየ የአዋቂ መሠረት የሚሆኑ Hostragons ድረ-ገጽ ሆስቲንግ ወይም ለከፍተኛ ምንጭ ያስፈልጉ ፕሮጀክቶች Hostragons VPS ሱኒኩ አማራጮች ሊከተሉ ይችላሉ።
Table is marked as crashed ስህተት ምንድነው?
Table is marked as crashed ስህተት ማለት MySQL አገልጋይ አንድ ጥቅል በታስተካከል ችግር እንደተፈጠረ የሚያመለከት ነው፤ እና በዚያ ጥቅል ላይ ማንበብ ወይም መፃፍ ሲደርስ ችግሮች ይታያሉ። የስህተቱ መልዕክት ብዙውን ጊዜ እንደሚከተሉት ይታያል፡ Table './veritabani/tablo_adi' is marked as crashed and should be repaired ወይም Incorrect key file for table. ይህ መልዕክት በጥቅል ፋይል፣ በአማካይ ቁልፎች ወይም በጥቅል አንድነት ችግር እንደሆነ ያሳያል።
ይህ ስህተት በMyISAM ጥቅሎች ላይ ከፍተኛ የሚታይ ነው። MyISAM የቆይታ እና ፈጣን ማንበብ ላይ የተቀመጠ የጥቅል ማከማቻ ሞተር ነው፤ ነገር ግን የመቀየርና የመስራቅ ችግርን ለመጠበቅ ችሎታው InnoDB ያህል አይደለም። አገልጋዩ በድንጋጤ ይቆረጥ፣ የዲስክ መጻፍ ፍሰት ተቋርጦ ይቆረጥ ወይም MySQL አገልጋዩ በትክክል አልተዘጋበትም ከሆነ MyISAM ጥቅሎች በቀላሉ ይበሳሉ። InnoDB ግን በtransaction log እና crash recovery መስክን ምክንያት በጣም የተቆለፈ ነው፤ ነገር ግን ይህ በInnoDB ጥቅሎች ስህተት አይደለም ማለት አይሆንም። በInnoDB በተመሳሳይ ሁኔታዎች ችግሮች የሚታዩት በጥቅል ቦታ፣ ዲስክ፣ transaction log ወይም የውሂብ መዝገበ-ቃላት ችግሮች ይሆናሉ።
በጣም የሚያጋጥሙት ምክንያቶች
አንድ ታብል ከተበላሸ በኋላ phpMyAdmin ብቻ በመጠቀም መጠገን በብዙ ጊዜ አስተሳሰብ ያሳያል፤ ነገር ግን የስህተቱን ምክንያት አለመውጣት ችግሩን በቀጥታ በጥቂት ሰዓታት ወይም ቀናት ውስጥ እንደገና ሊያመለከት ይችላል። ከታች በስራ ልምድ በተደጋጋሚ የሚታዩ ምክንያቶች ናቸው፦
- የሰርቨሩ ድንገት ብስተት: የኤሌክትሪክ መቋቋም፣ የሃርድዌር እንደገና ማስጀመር ወይም ኦፕሬቲንግ ስርዓት መፍሰስ ሲከሰት MySQL ታብሉ እየተጻፈ ከሆነ ታብሉ ሊበላሽ ይችላል።
- የዲስክ ቦታ መሙላት: MySQL የታብል ማሻሻያ፣ ኢንዴክስ ወይም ጊዜያዊ ፋይል ማከል አልቻለም ከሆነ የውሂብ ጥራት ሊጎዳ ይችላል። የዲስክ አጠቃቀም 90% ከበለይ እየተጠቀለ መሆኑ አደጋ ያሳያል።
- የMySQL አገልግሎት በግድ ማቆም: kill -9 ያሉ የጥቃቅን ማቆም በተለይም በጭነት ጊዜ MyISAM ታብሎች ላይ ችግር ያመጣል።
- የጽፍ ትራፊክ ከፍተኛ መሆን: Log፣ ሳይካት፣ session ወይም የፍለጋ ታብሎች እንደ MyISAM ታብል ተጠቅመው ከሆነ የግልፅነት ምክንያት ሊሆኑ ይችላሉ።
- የተሳሳቱ እቃዎች ወይም ትማዎች: WordPress ያሉ ስርዓቶች በመጥፋት ተጻፉ እቃዎች ብዙ ጥያቄ ሊያነሱ ይችላሉ፣ ይህም የታብል መቆለፊያ ያመጣ ይችላል።
- የሃርድዌር ወይም የፋይል ስርዓት ችግሮች: የዲስክ bad sector፣ I/O ስህተቶች ወይም የተበላሸ ፋይል ስርዓት የዳታቤዝ ፋይሎችን ሊጎዳ ይችላል።
- የቆይታ ያለው MySQL እትም: ያልተሻሻለ እትም ላይ ፋንክሽን፣ መቆለፊያ እና የመዳን አካል ድርሻ የተዋህዱ አይደሉም።
ማስተካከያ በፊት አስፈላጊ የደህንነት እርምጃዎች
የዳታበዝ ማስተካከያ ሂደት ብዙ ጊዜ የተረጋጋ ነው፤ ነገር ግን በተበላሸ ሰንጠረዥ የሚደረጉ ማንኛውም እርምጃ የውሂብ ጥፋት አደጋን በትክክል ማስወገድ አይችልም። በእርስዎ የሚኖሩበት አዳዲስ ስፍራ ላይ፣ ወይም በህይወት ላይ የሆነ ሳይት ላይ እርምጃ ሲወሰድ ፣ ሁልጊዜ ቅድሚያ በቅድሚያ ቅጂ ማዘጋጀት ነው።
1. የዳታበዝ ቅጂዎን ያውጡ
phpMyAdmin በመጠቀም ማስተካከያን ከመጀመርዎ በፊት የዳታበዝ ወቅታዊ ቅጂዎን ይውጡ። ሰንጠረዥ ቢበላሽም እንኳ፣ የሚታየውን ውሂብ ማቅረብ በጣም ጠቃሚ ነው። phpMyAdmin ውስጥ ዳታበዝን ይምረጡ፣ ውጭ ማውጫ ቅርጸት ይጫኑ፣ በጥፋት የሚደርስ የትክክል ዘዴ ይምረጡ እና SQL ቅርጸት ላይ ቅጂዎን ያውጡ። ትልቅ ዳታበዞች ላይ ውጭ ማውጫ ሊያጠፋ ይችላል፤ በዚህ አደጋ ላይ የhosting ቁጥጥር ፓነል የቅጂ መሣሪያ ወይም SSH በመጠቀም mysqldump የተሻለ ነው። የተደጋጋሚ ቅጂ ስርዓት የለም በሚባሉ ፕሮጀክቶች የእንግዳ ዳውን መፍትህ ያሉ ምንጮችን መመርመር ጠቃሚ ነው።
2. የተበላሸውን ሰንጠረዥ ያስታውቁ
በስህተት መልዕክት ብዙ ጊዜ የሰንጠረዥ ስም ይታያል። ለምሳሌ በWordPress ሳይት ውስጥ wp_options, wp_posts, wp_comments ወይም wp_actionscheduler_actions ሰንጠረዦች ይታያሉ። በአስተዋጽኦ ሶፍትዌሮች ውስጥ ሰንጠረዥ ስም በመተግበሪያ log ውስጥ፣ PHP ስህተት ቪዲዮን ውስጥ ወይም MySQL error log ውስጥ ይታያል። እየተበላሸው የሆነውን ሰንጠረዥ መረዳት በዳታበዝ ላይ ፈቃድ የለም እርምጃ እንዳታደርጉ ይረዳዎታል።
3. ሳይትን አጭር ጊዜ በትግበራ ይያዙ
በማስተካከያ ሂደት ላይ ሰንጠረዥ የሚታየ አዲስ ውሂብ ከተጨመረ ሂደቱ ሊያሳድር ይችላል ወይም የውሂብ ተመሳሳይነት ሊያጋጥም ይችላል። በሁሉም መጠን የሚገባ ትርፋ ላይ ያለው ሳይት ላይ 2-5 ደቂቃ ትግበራ ማውጣት ሂደቱን የተረጋጋ ያደርጋል። WordPress ከሚጠቀሙ ከሆነ በትግበራ መሣሪያ ይበልጡ፣ በሚያስተካከሉት ሶፍትዌር ላይ በትክክል የትግበራ ገፅ ወይም በweb server አቅጣጫ የተለየ የትግበራ ገፅ ማስተካከል ይችላሉ። ለተረጋጋ የጎብኚ ተሞክሮ በትግበራ ገፅ SSL አንድ መሆኑ ያስፈልጋል፤ በሴርቲፍኬት በአካባቢ ችግር ከተፈጠረ SSL የማስረጃ ይዘት ምርጫዎችን መመርመር ይችላሉ።
phpMyAdmin እንዴት የMySQL ሰንጠረዥ ማስተካከል ይቻላል?
phpMyAdmin ለቴክኒክ ኮማንድ ሳጥን አያውቅም የሚሉ ተጠቃሚዎች የMySQL ሰንጠረዥ ማስተካከልን ቀላል ያደርጋል። ከታች የተገለጸው ሂደት በcPanel፣ Plesk እና የሚመስሉ hosting ፓነሎች ላይ አከባቢ ነው።
ምስጢሩ 1፡ Hosting ፓነል ውስጥ phpMyAdmin ይክፈቱ
ወደ hosting ኮንትሮል ፓነል ከገቡ በኋላ በየቤተ-መረብ database ክፍል phpMyAdmin አገናኝን ይክፈቱ። ብዙ hosting መለያዎች ወይም የተለያዩ የድር መናበሪዎች ከሆኑ በትክክል በሚገባ መለያ ውስጥ እንደሚሰሩ ያረጋግጡ። በስህተት በሌላ database ላይ መስራት በቀጥታ አይጎዳም፤ ጊዜን አያስታግድና በተፈጥሮ ለlive site ፣ ለtest አካባቢ ማስተካከል ያደርጉት ይሆናል። የdomain እና hosting ቅርጸ ግናዎት ከተወሰነ ቁም፣ ዶማይን አስተዳደር ምክትል ይመልከቱ።
ምስጢሩ 2፡ ትክክለኛውን database ይምረጡ
በግራ ምናሌ የሚጠቀሙትን database ይምረጡ። WordPress ከሚጠቀሙ ከሆነ የdatabase ስምን wp-config.php ፋይል DB_NAME ስትራክት ውስጥ ማወቅ ይችላሉ። በተለያዩ PHP ፕሮጀክቶች database ስም በconfig.php፣ .env ወይም database.php ፋይል ውስጥ ይገኛል። በአንድ server ብዙ site ከሆኑ ይህ መቆጣጠር ጠቃሚ ነው።
ምስጢሩ 3፡ ተጎድቷ ያለውን ሰንጠረዥ ይምረጡ
Database ከተከፈተ ተያያዥ ሰንጠረዦች ይታያሉ። በስህተት መልክ የተጠቀሰውን ሰንጠረዥ ያግኙ እና በግራ ያለውን ቦክስ ይምረጡ። በሚከተሉት ሰንጠረዦች ተመሳሳይ ስህተት ከተገኘ ሁሉንም ይምረጡ፤ ነገር ግን ከጠቃላይ አስፈላጊ ሰንጠረዥ ጀምረው መስራት የተቆጣጠረ አስተዳደር ነው። ሰንጠረዥ MyISAM እንደሆነ ለማወቅ በተያያዥ Type ወይም Engine አይነት ይመልከቱ።
ምስጢሩ 4፡ የሰንጠረዥ ማስተካከል አማራጭን ይግበሩ
ሰንጠረዥን ከምረጡ በኋላ በገፁ ታች ያለው dropdown ምናሌ Tabloyu onar ይምረጡ። phpMyAdmin በተለምዶ በቅድሚያ REPAIR TABLE tablo_adi አዘዝ ይሰራል። ሂደቱ ከተጠናቀቀ በኋላ የሚሳካ፣ የሚያሳስበው ወይም የሚያሳያል ውጤት ይታያል። የሚሳካ ውጤት በተለምዶ status OK ይባላል። ትልቅ ሰንጠረዦች ላይ ሂደቱ በአንድ ሰከንድ ሳይሆን በብዙ ደቂቃዎች ይቆያል፤ በዚህ ጊዜ ገፁን አትዘምኑ፤ አሳሳቢውን አትዝጉ።
ምስጢሩ 5፡ ሰንጠረዥን ይመረምሩ እና site ይፈትኑ
ማስተካከል ከተጠናቀቀ በኋላ በዚያው dropdown ምናሌ Tabloyu kontrol et ይምረጡ። ከዚያም የድር ገፅዎት መነሻ ገፅ፣ አስተዳደር ፓነል፣ መፈለጊያ ፋንክሽን፣ የምርት ዝርዝሮች እና የተጠቃሚ ግባ ይፈትኑ። WordPress ከሚጠቀሙ ከሆነ፣ በአስተዳደር ፓነል ከዚያ የቆይታ አገናኞችን ይቆረጡ፣ የcache አጠራረቅ ያድርጉ እና የስህተት log ይመረምሩ።
phpMyAdmin የመጠጣጠሪያ አማራጮች ምን ይህሉ?
በphpMyAdmin ውስጥ ብቻ ጥጣጠር ሳይሆን፣ ለውስጥ ታቦል ጥያቄ በሚታወቀው ምንጭ የተለያዩ አማራጮች አሉ። እያንዳንዱ አማራጭ የራሱ ዓላማ አለው፤ በትክክል አሳሳበ አይጠቀሙበት።
| አማራጭ | ምን ያደርጋል? | መተግበሪያ ጊዜ |
|---|---|---|
| ታቦልን መርምር | የታቦል አወታትነትንና የስህተት ሁኔታውን ይመረምራል። | ከጥጣጠር በፊትና በኋላ ለማረጋጋት ይጠቀማል። |
| ታቦልን ጠጣጠር | በውስጥ MyISAM ታቦልና ኢንዴክስ በጥጣጠር ይሞክራል። | Table is marked as crashed ስህተት የታየ ጊዜ የመጀመሪያ የተስፋ እርምጃ ነው። |
| ታቦልን ኦፕቲማይዝ | በታቦል ውስጥ ከተሰረዙ መዝገቦች ተነስተው የቀሩ ቦታዎችን ይቀንሳል፣ ታቦልን ያደርጋል። | ከብዙ ሰርዓት/የተቀየረ መዝገብ በኋላ ለአፈጻጸም ይጠቀማል። |
| ታቦልን አናላይዝ | ለስርዓቱ አቀናበር ኢንዴክስ ስታቲስቲክስ ይዘምናል። | አፈጻጸም ቢቀንስ፣ የትክክለኛ ኢንዴክስ ተጠቃሚነት ተጠርጣሪ በሆነ ጊዜ ይመረጣል። |
አጠቃላይ፣ Table is marked as crashed ስህተት ሲታየ፣ በቀጥታ የተዛተ አማራጭ ታቦልን ጠጣጠር እርምጃ ነው። ኦፕቲማይዝና አናላይዝ የጥጣጠር መሳሪያዎች ናቸው፤ ነገር ግን ብቻውን ታቦል ሲበላ መቀየር ሊችሉ ይችላሉ።
InnoDB ታብሎች ውስጥ ሁኔታ ለምን የተለየ ነው?
phpMyAdmin ውስጥ InnoDB ታብሎች ላይ ታብሎን አስተካክል የሚሉት ምርጫዎች ሁልጊዜ እንደሚጠበቅ አይሰራም። ይህ ምክንያቱ InnoDB እንደ MyISAM ቀላል የፋይል መስመር የማስተካከያ ስርዓት አይጠቀምም። InnoDB transaction log, redo log, undo log እና ታብሎ ቦታ መዋቅሮች በመጠቀም የውሂብ ጥራትን ይጠብቃል። ስለዚህ በInnoDB ችግኝ ጊዜ መፍትሔ ብዙውን ጊዜ MySQL አገልግሎት log-ዎችን መመርም፣ የዲስክ ሁኔታን መቆጣጠር፣ ከቅዱስ ቅጂ መመለስ ወይም የተሻሻለ የዳንክ ሞዴሎችን መጠቀም ነው።
የስህተት መልእክትዎ ከMyISAM ታብሎ ሆኖ ከታየ phpMyAdmin ማስተካከያ በጣም የሚያገኙ ዕድል አለው። ነገር ግን InnoDB ላይ corrupt, tablespace, cannot open table ያሉ መልእክቶችን ከተቀበሉ በቀጥታ ማስተካከያ ሳይሞክሩ አንድ የቅዱስ ቅጂ ይውሰዱ እና የሰርቨሩ log-ዎችን ይመርም። በዚህ ሁኔታ ከhosting ተቀባዩ ድጋፍ መጠየቅ የተደላይ ነው። በተለይ በአስፈላጊ የኢ-ንግድ ውሂብ ላይ የወደብ ሞክር ካስተላለፉ ይልቅ ፕሮፌሽናል እርምጃ ይመርጡ።
ማስተካከያው ካልተሳካ ምን ይደረግ?
phpMyAdmin በመጠቀም የታብሉን ማስተካከያ ሁልጊዜ ምርጥ ውጤት ሊሰጥ አይችልም። ታብሉ በግምት በትልቅ መጠን ካለ፣ ጥልቅ የፋይል ጥፋት፣ የዲስክ ችግር ወይም የፈቃድ ግደብ የተፈጠረ ቢሆን፣ ሂደቱ ሊቆም ይችላል። እንዲህ ሲሆን ከዚህ በታች የተዘረዘሩትን እርምጃዎች ይከተሉ:
- ከቅድመ ኮፒ ይመለሱ: ምርጥ መፍትሄ ለሆነው የተጣለው ችግር ከማይኖርበት እንደሆነ የቅርብ ቀን ቅድመ ኮፒ ማስመለስ ነው። ኮፒ ከመመለስ በፊት በአሁኑ ችግር ያለው የውስጥ መረጃ በተለየ ፋይል ውስጥ ይያዙ።
- SSH በመጠቀም myisamchk አገልግሎት: ለMyISAM ታብሎች የሰርቨር ግንኙነት ካለ፣ myisamchk መሣሪያ ሊያገለግል ይችላል። ይህ ሂደት የMySQL አገልግሎትን በመቆም ወይም ታብሉን ከግንኙነት በማቆም ማድረግ ይኖርበታል።
- REPAIR TABLE ትእዛዝ: ከphpMyAdmin ውስጥ በSQL ምድብ REPAIR TABLE tablo_adi; ትእዛዝን ማሰራት ይችላሉ። ለታብሎች በሰፊ መጠን QUICK ወይም EXTENDED አማራጮችን ማየት ይገባዋል።
- የዲስክ እና inode ምርመራ: የዲስክ ቦታ ወይም inode በበቂ መጠን ካለ፣ ማስተካከያ ይበዛበታል። በመጀመሪያ ያልወደዱ ቅድመ ኮፒዎች፣ log ፋይሎች እና ጊዜያዊ ፋይሎች ይሰርዙ።
- የሰርቨር ስህተት ዝርዝሮችን መመልከት: የMySQL error log, የweb server log እና የPHP error log የችግሩን root ምክንያት ለማግኘት አስፈላጊ መረጃ ይሰጣል።
የተጋራ hosting ካስተዳደሩ የSSH ወይም ሰርቨር አገልግሎትን ማቆም ፈቃድ ምናልባት አይኖርዎትም። እንዲህ ሲሆን፣ የስህተቱን መልእክት፣ የታብሉን ስም፣ የችግሩን የተፈጠረበት ጊዜ ማስገልገል እና የቅርብ ቅድመ ኮፒ ቀንን ለድጋፍ ቡድን መላክ ፍትሄን ይፋጠናል።
በድጋሜ ስህተቱን እንዴት ማስወገድ ይችላሉ?
አንድ ጊዜ የሚደረገው መጠገና ችግሩን በዘውስ ይቀናል፤ ዘላቂ መፍትሄ ግን በመሰረታዊ የአውታረ መረብ እና በመጠናቀቅ ማዕከል በሚታወቀው ቅድሚያ ይመጣል። ከታች የተዘረዘሩት እሴቶች MySQL የታቦል ልክ እንዲያሳር የሚያደርጉ ደረጃዎች ናቸው።
MyISAM ታቦሎችን ወደ InnoDB ለመቀየር ይወስኑ
በዘመናዊ የድህረገፅ መተግበሪያዎች InnoDB በተለምዶ የሚያበረታታ እና የሚያጠናቀቅ አማራጭ ነው። በተነሳሳ ማጥፋት ላይ የሚደረጉ ታቦሎች ላይ የተለያዩ አብረው የሚሰሩ መቆለፊያ፣ ኢሚድያት ድጋፍ እና ከውድብ በኋላ የሚደረጉ ማዳኛ ባህሪያት አሉት። የመቀየር ሂደቱ ALTER TABLE ታቦል_ስም ENGINE=InnoDB; በማስተካከል ቀላል ነው፤ ነገር ግን በህይወት ውስጥ ላይ ሳይተገብም ከመጓደኛ ማህደር ውስጥ በመሞከር እና ሙሉ ቅድሚያ በመውሰድ ይደረግ። አንዳንድ የቆየ ሶፍትዌሮች fulltext ኢንዴክስ ወይም ልዩ የMyISAM ባህሪያት ላይ የተያዙ ሊሆኑ ይችላሉ።
በመደበኛነት ሊመለስ የሚችል ቅድሚያ ይጠቀሙ
ቅድሚያ በመውሰድ ብቻ ሳይሆን ሊመለስ የሚችል መሆን ይከቧል። የቀን ቅድሚያዎች፣ የሳምንት ሙሉ ቅድሚያዎች እና በአስፈላጊ ማዕከላዊ ማሻሻያ ቅድሚያ በእጅ መውሰድ ጥሩ መርህ ነው። ቢያንስ 7 ቀናት ቅድሚያ ማከማቸት ብዙ ትንሽና መካከለኛ የድህረገፅ ባለቤቶች ለመጀመሪያ ደረጃ ይጠቅማል። በE-commerce ድህረገፅ ትዕዛዝ ጥፋት እንዳይፈጠር የቅድሚያ ዝርዝር ይደጋገማል ወይም binlog በመመለስ ሊያስፈልግ ይችላል።
የዲስክ አቀማመጥን እና ምንጮችን ይቆጥቡ
የዲስክ ቦታ 85-90% አቀማመጥ ላይ በደረሰ ጊዜ ማሳሰቢያ ይፈጠር። MySQL ለታቦል ቅድሚያ፣ log ፋይልና ለኢንዴክስ ክፍት ቦታ ይፈልጋል። እንዲሁም CPU፣ RAM እና I/O ቆይታ ደብዳቤ በመደበኛነት ይቆጥቡ። በተደጋጋሚ የምንጭ ገደብ ላይ የሚያጋጥመው ስ፣ የመረጃ ቋት ስህተት ተዛማጅ ነው። ትርፍዎ ከፍ ብሏል ከሆነ ከተጋላጭ የሆነ ፕላን ወደ የተሻለ ፓኬት መሻሻል ይገባል፤ በዚህ የድርጅት ሆስቲንግ ወይም ከፍተኛ ውጤት ይዘት ገጾች ሊያደርጉ ይችላሉ።
የእጄት፣ ቲማና ሶፍትዌር ዘመናዊነትን ይመርምሩ
የቆየ ሶፍትዌር ብቻ የደህንነት ችግር ሳይፈጥር ወደ መረጃ ቋት የማይዋቀር ጥያቄዎችንም ሊሰድድ ይችላል። WordPress የሚደረግ ቅጽበት በት የማይጠቀል እጄት ይሰወይ፣ በማይሆን ታቦሎች የሚከተለው የlog ታቦሎችን ያጽዱ እና የሚታመን አይደሉ እጄት ይቆፉ። የሶፍትዌር ዘመናዊነትን ከማድረግ በፊት በstaging አካባቢ መሞከር በህይወት ላይ ያሉ ታቦል ወይም ኢንዴክስ የማይጠበቅ ችግሮችን ይከላከላል።
አገልጋዩን በትክክል ይዘግቡ እና የጥገና እቅድ ይዘጋጁ
VPS ወይም dedicated አገልጋይ ከተቆጣጠሩ MySQL አገልግሎትን በኃይል አይቁሙ። ከጥገና በፊት አገልግሎቶቹን በትክክል ይያዙ፣ ማሻሻያዎችን በዝቅተኛ ትርፍ ወቅት ያድርጉ፣ ከreboot በኋላ log ይመርምሩ። የተደረገ ጥገና ቅድሚያ በልዩ በሚጫኑ የመረጃ ቋት ላይ የልክ ልክ የማሳረም አደጋን ያሳነሳል።
WordPress ስርዓቶች ላይ ልዩ ማስታወቂያዎች
WordPress ብዙ ጊዜ MySQL ስህተቶችን በአጠቃላይ በውስጥ የውስጥ የተለያዩ ተግባራት ሲከናወን ስህተት ተፈጥሯል በሚል መልእክት ይሰጣል። ነገር ግን የስህተት ዲያሪ ሲመረምረው የተበላሸ ታብሎች ዝርዝር ሊታይ ይችላል። WordPress ላይ በተደጋጋሚ የሚጎዳው ታብሎች ውስጥ wp_options, wp_posts, wp_postmeta, wp_comments እና በአንዳንድ ኤክሊን የተፈጠሩ የዘመናዊ መቆጣጠሪያ ወይም የሎግ ታብሎች አሉ። wp_options ታብሎቹ በማንኛውም ጊዜ ቢበላሸ የስርዓቱ አጠቃላይ ማስተካከያ ሊያይዞ ይችላል፤ wp_posts በተበላሸ ጊዜ የውስጥ ይዘቶች ሊይዞ ይችላል፤ ኤክሊን የሎግ ታብሎች ቢበላሸ የአስተዳደር ፓኔል አግድም ሊያመጣ ይችላል።
WordPress ውስጥ የተገኘ የውስጥ የዳታበይዝ መጠናቀቅ ባህሪያት አለው። wp-config.php ፋይል ውስጥ በጊዜያዊ define('WP_ALLOW_REPAIR', true); መድረክ ሲጨመር /wp-admin/maint/repair.php አድራሻ ይጠቀም እና መጠናቀቅ ሊደረግ ይችላል። ነገር ግን እንደምታቀርበው ከተጠናቀቀ በኋላ ይህ መድረክ ማስወገድ አስፈላጊ ነው፤ ያልተወገደ ከቆየ የመጠናቀቅ ገጽ ለማንኛውም ያልተጠበቀ መድረክ ክፍት ይቆያል። phpMyAdmin መንገድ በዚህ ዙሪያ የበለጠ ቁጥር መቆጣጠሪያ ያለው ነው፣ ምክንያቱም በቀጥታ የሚያደርጉትን ታብሎች መመልከት ይችላሉ። ለWordPress ፕሮጀክቶች የተስተካከለ መስመር መፈለግ ካለበት ወርድፕሬስ ሆስቲንግ መረጃን ይመልከቱ።
መተከል የሚገባው በመቼ ነው?
እያንዳንዱ MySQL ስህተት በራስዎ ለመፍታት ቀላል አይሁንም። ከሚከተሉት ሁኔታዎች አንዱ ከሆነ፣ ባለሙያ ድጋፍ መውሰድ የተሻለ ደህንነት ይሰጣል፦
- ምቹ ታብሎ ትዕዛዝ፣ ክፍያ፣ አባልነት ወይም ፋይናንስ መረጃ ካለበት።
- የመስጠት ሙከራ በኋላ ስህተቱ ከቀጠለ ወይም ታብሎው ተጠፋ የሚሰማው ከሆነ።
- ከዚህ በላይ የሚሆን የዴታቤዝ መጠን የphpMyAdmin እንደዘግየ ችግር የሚታይ ከሆነ።
- የInnoDB tablespace ወይም redo log ስህተቶች ከታዩ።
- የዲስክ ስህተት፣ I/O error ወይም የፋይል ሲስተም ማስጠንቀቂያ ከሆነ።
- ቅርብ ዘመናዊ ንጹህ ተቀዳዳሪ የለዎትም ከሆነ።
የድጋፍ ጥያቄ ሲሰጡ፣ የስህተቱን መልኩን በትክክል፣ የተጎዳውን ዴታቤዝና ታብሎ ስም፣ ስህተቱ መቼ ጀመረ፣ ከመጨረሻ የተደረገውን ዝማኔ ወይም ማስተላለፊያ፣ እንዲሁም ቢኖር የተቀዳዳሪ ቀን ያጋሩ። እነዚህ መረጃዎች የመፍትሄ ጊዜን በአስፈላጊነት ያግሉ።
አጭር የመዝገበ-ምርምር ዝርዝር
በአስቸኳይ ጊዜ ፈጣን እንዲሰሩ የሚረዱ እነዚህን ደረጃዎች ይከተሉ፦
- ከስህተት መልእክት የተበላሸውን የታቦል ስም ያስታውቁ።
- ያለውን የውሂብ ጎታ ቅድሚያ ያውሉ።
- ሳይቱን ለአጭር ጊዜ ወደ ጥገና ሁኔታ ያውሉ።
- በphpMyAdmin ትክክለኛውን የውሂብ ጎታ ይምረጡ።
- የተገናኘውን ታቦል ለማረም ይምረጡና "Tabloyu onar" ይሰርዙ።
- ታቦሉን ያረምፉና የሳይቱን ተግባራት ይፈትኑ።
- በዲስክ፣ ምንጭ፣ ቅድሚያና የታቦል ሞተር ምርመራዎች ደግሞ የግድ እድሉን ያቅኑ።
ብዙ ጊዜ የተጠየቁ ጥያቄዎች
MySQL Table is marked as crashed ስህተት የውሂብ ጥፋት ማለት ነው?
ሁልጊዜ የውሂብ ጥፋት ማለት አይደለም። አብዛኛው MyISAM ታብሎች phpMyAdmin በመጠቀም "Tabloyu onar" በማድረግ ሊታደጉ ይችላሉ። ግን ታብሉ በጣም ከፍተኛ አደጋ ደረሰ ከሆነ አንዳንድ መዝገቦች ሊጎዱ ይችላሉ። ስለዚህ ከመስበር በፊት የአሁኑን ሁኔታ ቅድሚያ የማድረግ አስፈላጊ ነው።
phpMyAdmin በመጠቀም ታብል ማስተካከያ ተስፋማ ነው?
በአብዛኛው ተስፋማ ነው፤ ነገር ግን በቀጥታ የሚሰራ የውሂብ ጎታ ማስተካከያ ሁሉ አደጋ አለው። ከመስበር በፊት ቅድሚያ የማድረግ፣ ትክክለኛውን ታብል መምረጥ እና ከሚቻል በጥሩ ሁኔታ ሳይቀጥል ስፔሻል የማድረግ ደህንነትን ይጨምራል። ታብሎች ትልቅ ወይም አስፈላጊ ከሆኑ ሙዚቃዊ ድጋፍ ማግኘት ይመከራል።
InnoDB ታብሎች ለመስበር "Tabloyu onar" ይጠቀሙ?
InnoDB ታብሎች MyISAM እንደ ቀዳሚው REPAIR TABLE አስተካክል አይሰበሩም። InnoDB ችግኞች ሲኖሩ MySQL ሎግን መመርም፣ የዲስክ ሁኔታን መቆጣጠር እና አስፈላጊ ከሆነ ከቅድሚያ መመለስ ይመከራል። የተዘዋዋሪ ማስተካከያ ሞክር የውሂብ ጥፋትን ይጨምራል።
ስህተቱ ለምን በደጋሚ ይከሰታል?
ስህተቱ በደጋሚ ከሚከሰት ችግኑ ምልክት አልተፈታም ማለት ነው። የዲስክ ቦታ ሞልቶ መሆን፣ ድንገት ሰርቪስ መቁረጥ፣ ከፍተኛ መፃፊያ ትራፊክ፣ በማይሰራ የተጨመረ እቃ፣ አሮጌ MySQL እትም ወይም MyISAM መቀጠል አብዛኛው ምክንያቶች ናቸው። የችግኑን የመነሻ ምክንያት ማግኘት ለቋሚ መፍትሄ አስፈላጊ ነው።
ከመስበር በፊት የhosting ኩባንያዬን እጠያቀዳለሁ?
በቀላሉ MyISAM ታብል ስህተቶች ሲኖሩ ቅድሚያ የማድረግ ከነ phpMyAdmin ማስተካከያ ማድረግ ይችላሉ። ግን ታብሉ አስፈላጊ ውሂብ ከያዘ፣ ቅድሚያ ከሌለዎ፣ ውሂብ ጎቱ በጣም ትልቅ ከሆነ ወይም InnoDB ስህተቶች ከታዩ የhosting ድጋፍ ቡድንን ማግኘት የተስፋ የተላለፈ ነው።
ውጤት
MySQL "Table is marked as crashed" ስህተት፣ በተለይም MyISAM አይነት ሰንጠረዦች ላይ የሚታየና በአብዛኛው phpMyAdmin በቀላሉ የሚታከለ የውሂብ ጎታ ችግኝ ማሳሰቢያ ነው። ትክክለኛው አካል፣ መጀመሪያ ቅድመ ቅጂ ማድረግ፣ በስህተት ያለውን ሰንጠረዥ መለየት፣ በphpMyAdmin ማስተካከልና ከዚያም የስህተቱን ምክንያት ማስወገድ ነው። የተደጋጋሚ ቅድመ ቅጂ ማድረግ፣ በቂ የሰርቨር ሃብት፣ InnoDB አጠቃቀምና ዘመናዊ የሶፍትዌር መስክ ይህንን ችግኝ እንዳይደገም ይረዳል። የሚመሳሰሉ ስህተቶች በድጋሜ በሳይትዎ ላይ ከሚታዩ ከሆነ የHostragons መረጃዎችን ማሰስ ወይም ከድጋፍ ቡድን ምክር ማግኘት በየጊዜው አዲስ የማህበረሰብ ስርዓትን ለአስፈላጊዎ ማምረጥ ይረዳዎታል።