MySQL "ടേബിൾ തകരാറിലായി" പിശക് സാധാരണയായി 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 './database/table_name' is marked as crashed and should be repaired അല്ലെങ്കിൽ Incorrect key file for table. ഈ സന്ദേശം ടേബിൾ ഫയൽ, ഇൻഡക്സുകൾ, അല്ലെങ്കിൽ ടേബിൾ ഇന്റഗ്രിറ്റിയിൽ പ്രശ്നം ഉണ്ടെന്ന് സൂചിപ്പിക്കുന്നു.
ഈ പിശക് കൂടുതലായി MyISAM ടേബിളുകളിൽ കാണപ്പെടുന്നു. MyISAM പഴയതും വായനയ്ക്ക് വേഗവുമായ ഒരു സ്റ്റോറേജ് എൻജിനാണ്; എന്നാൽ InnoDB പോലുള്ള ശക്തമായ ക്രാഷ് റിക്കവറി സംവിധാനം ഇതിന് ഇല്ല. സെർവർ അപ്രതീക്ഷിതമായി അടഞ്ഞുപോയാൽ, ഡിസ്കിൽ എഴുതൽ മധ്യേനിൽക്കുകയോ MySQL സർവീസ് ശരിയായി അവസാനിപ്പിക്കാതെയോ ആയാൽ MyISAM ടേബിളുകൾ തകരാറിലാകും. InnoDB ട്രാൻസക്ഷൻ ലോഗും ക്രാഷ് റിക്കവറി സംവിധാനവും ഉള്ളതിനാൽ പൊതുവെ കൂടുതൽ സ്ഥിരതയുണ്ട്, പക്ഷേ അതും പൂർണ്ണമായും പ്രശ്ന രഹിതമല്ല. InnoDB പ്രശ്നങ്ങൾ സാധാരണയായി ടേബിൾ സ്പെയ്സ്, ഡിസ്ക്, ട്രാൻസക്ഷൻ ലോഗ്, ഡാറ്റ ഡിക്ഷണറി സംബന്ധിച്ചവയാണ്.
പിശകിന്റെ സാധാരണ കാരണം
ഒരു ടേബിൾ തകരാറിലായാൽ phpMyAdmin വഴി മുറിപ്പാട് നടത്തുന്നത് പലപ്പോഴും മതിയാകാം; പക്ഷേ കാരണമറിയാതെ മുറിപ്പാട് മാത്രം ചെയ്താൽ പിശക് വീണ്ടും ഉയരാം. താഴെപ്പറയുന്ന കാരണങ്ങൾ സാധാരണയായി കണ്ടുവരുന്നു:
- അപ്രതീക്ഷിത സെർവർ അടച്ചുപോക്കൽ: വൈദ്യുതിമുട്ട്, ഹാർഡ്വെയർ റിസെറ്റ്, ഓപ്പറേറ്റിംഗ് സിസ്റ്റം ക്രാഷ് എന്നിവയിൽ MySQL ടേബിളിൽ എഴുതുമ്പോൾ തകരാറുണ്ടാകാം.
- ഡിസ്ക് നിറച്ചുപോകൽ: MySQL താത്കാലിക ഫയലുകൾ, ഇൻഡക്സുകൾ, ടേബിൾ അപ്ഡേറ്റുകൾ എഴുതാൻ കഴിയാതെ പോയാൽ ഡാറ്റ ഇന്റഗ്രിറ്റി നഷ്ടപ്പെടാം. 90% കഴിഞ്ഞാൽ ഡിസ്ക് നിറച്ചത് അപകടകരമാണ്.
- MySQL സർവീസ് ശക്തമായി നിർത്തൽ: kill -9 പോലുള്ള കമാൻഡുകൾ, പ്രത്യേകിച്ച് എഴുത്ത് വ്യാപകമായ സമയത്ത്, MyISAM ടേബിളുകളിൽ പ്രശ്നങ്ങൾ സൃഷ്ടിക്കും.
- ഭാരമുള്ള എഴുത്ത് ട്രാഫിക്: ലോഗ്, കൗണ്ടർ, സെഷൻ, സേർച്ച് ടേബിളുകൾ MyISAM ഉപയോഗിച്ചാൽ കൂടുതൽ സങ്കീർണത കാണാം.
- ദോഷകരമായ പ്ലഗിനുകൾ/തീമുകൾ: WordPress പോലുള്ള സിസ്റ്റങ്ങളിൽ തെറ്റായ കോഡുള്ള പ്ലഗിനുകൾ അധിക ക്വെറികൾ സൃഷ്ടിച്ച് ടേബിൾ ലോക്കിങ്ങ് ഉണ്ടാക്കാം.
- ഹാർഡ്വെയർ അല്ലെങ്കിൽ ഫയൽ സിസ്റ്റം പ്രശ്നങ്ങൾ: ഡിസ്ക് ബാഡ് സെക്ടർ, I/O പിഴവുകൾ, ഫയൽ സിസ്റ്റം തകരാറുകൾ ഡാറ്റാബേസ് ഫയലുകളെ ബാധിക്കാം.
- പഴയ MySQL പതിപ്പുകൾ: പഴയ പതിപ്പുകളിൽ പ്രകടനം കുറവ്, ലോക്ക് പ്രശ്നങ്ങൾ, റിക്കവറി മെക്കാനിസം ദുർബലമായിരിക്കാം.
മുറിപ്പാട് ചെയ്യുന്നതിന് മുൻപുള്ള സുരക്ഷാ നിർദ്ദേശങ്ങൾ
ഡാറ്റാബേസ് മുറിപ്പാട് പ്രവർത്തനം സാധാരണയായി സുരക്ഷിതമാണ്; എന്നാൽ തകരാറിലായ ടേബിളിൽ ഓരോ പ്രവർത്തനവും ഡാറ്റ നഷ്ട സാധ്യത നിലനിര്ത്തും. പ്രത്യേകിച്ച് ലൈവിൽ (ഉൽപാദന പരിസ്ഥിതി) പ്രവർത്തിക്കുമ്പോൾ ബാക്കപ്പ് പ്രധാനമാണ്.
1. നിലവിലുള്ള ഡാറ്റാബേസ് ബാക്കപ്പ് എടുക്കുക
phpMyAdmin-ൽ മുറിപ്പാട് ആരംഭിക്കാനായി ഡാറ്റാബേസ് എക്സ്പോർട്ട് ചെയ്യുക. ടേബിൾ തകരാറിലായാലും വായിക്കാവുന്ന ഡാറ്റയുടെ ബാക്കപ്പ് എടുക്കുന്നത് അനിവാര്യമാണ്. phpMyAdmin-ൽ ഡാറ്റാബേസ് തിരഞ്ഞെടുക്കുക, എക്സ്പോർട്ട് ടാബിൽ ക്ലിക്ക് ചെയ്ത്, വേഗതയുള്ള രീതിക്ക് പകരം പ്രത്യേക രീതിയിൽ SQL ഫോർമാറ്റിൽ ബാക്കപ്പ് എടുക്കുക. വലിയ ഡാറ്റാബേസിൽ എക്സ്പോർട്ട് സമയപരിധി കഴിഞ്ഞേക്കാം; അപ്പോൾ ഹോസ്റ്റിംഗ് കൺട്രോൾ പാനലിലെ ബാക്കപ്പ് ഉപകരണം അല്ലെങ്കിൽ SSH വഴി mysqldump ഉപയോഗിക്കുക. സ്ഥിരമായ ബാക്കപ്പ് പദ്ധതികൾ ഇല്ലാത്തവർക്ക് ഹോസ്റ്റിംഗ് ബാക്കപ്പ് പരിഹാരങ്ങൾ പരിശോധിക്കുക.
2. തകരാറിലായ ടേബിൾ കണ്ടെത്തുക
പിശക് സന്ദേശത്തിൽ സാധാരണ ടേബിൾ നാമം കാണാം. ഉദാഹരണത്തിന് WordPress-ൽ wp_options, wp_posts, wp_comments, wp_actionscheduler_actions എന്നിവ. കസ്റ്റം സോഫ്റ്റ്വെയറുകളിൽ ആപ്ലിക്കേഷൻ ലോഗ്, PHP പിശക് ലോഗ്, MySQL എറർ ലോഗിൽ ടേബിൾ പേര് കാണാം. തകരാറിലായ ടേബിൾ തിരിച്ചറിയുന്നത് അനാവശ്യ പ്രവർത്തനങ്ങൾ ഒഴിവാക്കുന്നതിന് സഹായിക്കുന്നു.
3. സൈറ്റ് ചെറുതായി മെന്റനൻസ് മോഡിലേക്ക് മാറ്റുക
മുറിപ്പാട് നടക്കുന്ന സമയത്ത് ടേബിളിലേക്ക് പുതിയ എഴുത്ത് വരുന്നത് പ്രവർത്തനം പരാജയപ്പെടാൻ കാരണമാകാം. ഭാരമുള്ള ട്രാഫിക് ഉള്ള സൈറ്റുകളിൽ 2-5 മിനിറ്റ് മെന്റനൻസ് മോഡ് സൗകര്യം സുരക്ഷിതമാണ്. WordPress ഉപയോഗിക്കുന്നവർക്ക് മെന്റനൻസ് പ്ലഗിൻ ഉപയോഗിക്കാം, കസ്റ്റം സോഫ്റ്റ്വെയർ ഉള്ളവർക്ക് താൽക്കാലിക മെന്റനൻസ് പേജ് അല്ലെങ്കിൽ വെബ് സെർവർ റീഡയറക്ട് ഉപയോഗിക്കാം. മെന്റനൻസ് പേജിൽ SSL സജീവമാക്കുക; സർട്ടിഫിക്കറ്റിൽ പ്രശ്നമുണ്ടെങ്കിൽ SSL സർട്ടിഫിക്കറ്റ് കാണുക.
phpMyAdmin ഉപയോഗിച്ച് MySQL ടേബിൾ എങ്ങനെ മുറിപ്പാട് ചെയ്യാം?
phpMyAdmin സാങ്കേതിക കമാൻഡ് ലൈൻ അറിവില്ലാത്തവർക്കും MySQL ടേബിള് മുറിപ്പാട് എളുപ്പമാക്കുന്നു. താഴെപ്പറയുന്ന നടപടികൾ സാധാരണ cPanel, Plesk പോലുള്ള ഹോസ്റ്റിംഗ് പാനലുകളിൽ സമാനമാണ്.
പടി 1: ഹോസ്റ്റിംഗ് പാനലിൽ നിന്ന് phpMyAdmin-ൽ ലോഗിൻ ചെയ്യുക
ഹോസ്റ്റിംഗ് കൺട്രോൾ പാനലിൽ പ്രവേശിച്ച് ഡാറ്റാബേസുകൾ വിഭാഗത്തിൽ നിന്നുള്ള phpMyAdmin ലിങ്ക് തുറക്കുക. ഒരിലധികം ഹോസ്റ്റിംഗ് അക്കൗണ്ടുകൾ/ഡൊമെയ്ൻ ഉണ്ടെങ്കിൽ ശരിയായ അക്കൗണ്ടിൽ പ്രവർത്തിക്കുന്നതെന്ന് ഉറപ്പാക്കുക. തെറ്റായ ഡാറ്റാബേസിൽ പ്രവർത്തിക്കുന്നത് നേരിട്ട് ഹാനികരമല്ല, പക്ഷേ സമയം നഷ്ടപ്പെടുകയും ലൈവ് സൈറ്റിൽ പകരം ടെസ്റ്റ് എൻവയറൺമെന്റ് മുറിപ്പാട് ചെയ്യാൻ ഇടയായേക്കാം. ഡൊമെയ്ൻ-ഹോസ്റ്റിംഗ് ബന്ധം അലോചനയുണ്ടെങ്കിൽ ഡൊമെയ്ൻ നിയന്ത്രണം സന്ദർശിക്കുക.
പടി 2: ശരിയായ ഡാറ്റാബേസ് തിരഞ്ഞെടുക്കുക
വലത് പാനലിൽ നിങ്ങളുടെ സൈറ്റ് ഉപയോഗിക്കുന്ന ഡാറ്റാബേസ് തിരഞ്ഞെടുക്കുക. WordPress-ൽ wp-config.php ഫയലിൽ DB_NAME വരിയിൽ ഡാറ്റാബേസ് നാമം കാണാം. കസ്റ്റം PHP സോഫ്റ്റ്വെയറുകളിൽ സാധാരണ config.php, .env, database.php ഫയലുകളിൽ ഇത് കാണാം. ഒരേ സെർവറിൽ പല സൈറ്റുകൾ ഉണ്ടെങ്കിൽ ഇത് ശ്രദ്ധിക്കണം.
പടി 3: തകരാറിലായ ടേബിൾ തിരഞ്ഞെടുക്കുക
ഡാറ്റാബേസ് തുറന്നാൽ ടേബിളുകൾ പട്ടികയായി കാണാം. പിശക് സന്ദേശത്തിൽ കാണുന്ന ടേബിൾ കണ്ടെത്തി ഇടത്തരം ചെക്ക് ബോക്സ് ടിക്ക് ചെയ്യുക. ഒരേ പിശക് പല ടേബിളുകളിലും ഉണ്ടെങ്കിൽ അവയെല്ലാം തിരഞ്ഞെടുക്കാം, എന്നാൽ ഏറ്റവും പ്രധാനം ടേബിൾ ആദ്യം മുറിപ്പാട് ചെയ്യുന്നത് കൂടുതൽ നിയന്ത്രിതമാണ്. ടേബിളിന്റെ MyISAM ആണോ എന്ന് ടൈപ്പ് അല്ലെങ്കിൽ എൻജിൻ കോളത്തിൽ പരിശോധിക്കുക.
പടി 4: "ടേബിൾ മുറിപ്പാട് ചെയ്യുക" ഓപ്ഷൻ തിരഞ്ഞെടുക്കുക
ടേബിൾ തിരഞ്ഞെടുക്കിയ ശേഷം പേജിന്റെ താഴെ കാണുന്ന ഡ്രോപ്പ്ഡൗൺ മെനുവിൽ നിന്ന് ടേബിൾ മുറിപ്പാട് ചെയ്യുക തിരഞ്ഞെടുക്കുക. phpMyAdminREPAIR TABLE table_name കമാൻഡ് പിൻഭാഗത്ത് ഓടിക്കും. പ്രക്രിയ പൂർത്തിയായാൽ വിജയകരം, മുന്നറിയിപ്പ്, പരാജയം എന്ന മൂന്നു ഫലം കാണാം. സാധാരണ status OK ആണ് വിജയരൂപം. വലിയ ടേബിളുകളിൽ ഇത് നിമിഷങ്ങൾക്കു പകരം മിനിറ്റുകൾക്കു നീണ്ടേക്കാം; ഈ സമയത്ത് പേജ് റിഫ്രഷ് ചെയ്യാതിരിക്കുക, ബ്രൗസർ അടക്കാതിരിക്കുക.
പടി 5: ടേബിൾ പരിശോധിച്ച് സൈറ്റ് ടെസ്റ്റ് ചെയ്യുക
മുറിപ്പാട് കഴിഞ്ഞ് വീണ്ടും ഡ്രോപ്പ്ഡൗൺ മെനുവിൽ നിന്ന് ടേബിൾ പരിശോധിക്കുക തിരഞ്ഞെടുക്കാം. തുടർന്ന് സൈറ്റ് മുഖപേജ്, അഡ്മിൻ പാനൽ, സെർച്ച് ഫങ്ഷൻ, ഉൽപ്പന്ന ലിസ്റ്റ്, യൂസർ ലോഗിൻ എന്നിവ പരീക്ഷിക്കുക. WordPress-ൽ സ്ഥിരമായ permalink പുനഃസംരക്ഷണം, cache ക്ലിയർ ചെയ്യൽ, error log പരിശോധിക്കൽ നല്ല അനുഭവമാണ്.
phpMyAdmin-ലെ മുറിപ്പാട് ഓപ്ഷനുകൾ എന്ത് അർത്ഥം?
phpMyAdmin-ൽ മുറിപ്പാട് മാത്രമല്ല, ടേബിൾ പരിപാലനത്തിനുള്ള മറ്റു ചില ഓപ്ഷനുകളും ഉണ്ട്. ഓരോ ഓപ്ഷനും വ്യത്യസ്ത ഉദ്ദേശ്യമുണ്ട്; തെറ്റായ പ്രതീക്ഷയിൽ ഉപയോഗിക്കരുത്.
| ഓപ്ഷൻ | ഉദ്ദേശ്യം | എപ്പോൾ ഉപയോഗിക്കണം? |
|---|---|---|
| ടേബിൾ പരിശോധിക്കുക | ടേബിളിന്റെ ഘടനയും പിശകുകളും പരിശോധിക്കുന്നു. | മുറിപ്പാട് മുമ്പും ശേഷവും പരിശോധനയ്ക്ക്. |
| ടേബിൾ മുറിപ്പാട് ചെയ്യുക | തകരാറിലായ MyISAM ടേബിളുകളും ഇൻഡക്സുകളും മുറിപ്പാട് ചെയ്യാൻ ശ്രമിക്കുന്നു. | "Table is marked as crashed" പിശക് കാണുമ്പോൾ പ്രഥമ പ്രവർത്തി. |
| ടേബിൾ മെച്ചപ്പെടുത്തുക | അപ്രয়োজনമായ ഒഴിവുകൾ കുറയ്ക്കുകയും ടേബിൾ ക്രമീകരിക്കുകയും ചെയ്യുന്നു. | വഴക്കുള്ള ഡാറ്റ മായ്ക്കലിനുശേഷം പ്രകടനം മെച്ചപ്പെടുത്താൻ. |
| ടേബിൾ വിശകലനം ചെയ്യുക | ക്വെറി പ്ലാനറിന് ഇൻഡക്സ് സ്റ്റാറ്റിസ്റ്റിക്സ് പുതുക്കുന്നു. | പ്രകടന കുറവോ തെറ്റായ ഇൻഡക്സ് ഉപയോഗമോ സംശയിക്കുമ്പോൾ. |
സംഗ്രഹമായി, "Table is marked as crashed" പിശക് പരിഹരിക്കാൻ ടേബിൾ മുറിപ്പാട് ചെയ്യുക ആണ് പ്രധാന ഓപ്ഷൻ. മെച്ചപ്പെടുത്തൽ, വിശകലനം ഉപകാരപ്രദമായ പരിപാലന ഉപകരണങ്ങളാണ്; പക്ഷെ തകരാറിലായ ടേബിൾ സ്വയം മുറിപ്പാട് ചെയ്യില്ല.
InnoDB ടേബിളുകളിൽ അവസ്ഥ വ്യത്യസ്തമാണ്?
phpMyAdmin-ൽ InnoDB ടേബിളുകൾക്ക് ടേബിൾ മുറിപ്പാട് ചെയ്യുക ഓപ്ഷൻ എല്ലാ സാഹചര്യത്തിലും പ്രതീക്ഷിച്ച പോലെ പ്രവർത്തിക്കില്ല. കാരണം InnoDB MyISAM പോലുള്ള ലളിതമായ ഫയൽ അടിസ്ഥാന മുറിപ്പാട് ലോഗിക് ഉപയോഗിക്കുന്നില്ല. InnoDB ട്രാൻസക്ഷൻ ലോഗ്, റീഡോ ലോഗ്, അണ്ടു ലോഗ്, ടേബിൾ സ്പെയ്സ് ഘടനകൾ വഴിയുള്ള ഡാറ്റ ഇന്റഗ്രിറ്റി സംരക്ഷണം നല്കുന്നു. അതുകൊണ്ട് InnoDB പിശകുകൾക്കായുള്ള പരിഹാരം സാധാരണയായി MySQL സർവർ ലോഗ് പരിശോധിക്കൽ, ഡിസ്ക് അവസ്ഥ പരിശോധിക്കൽ, ബാക്കപ്പ് ഉപയോഗിച്ച് റിക്കവറി, അല്ലെങ്കിൽ ഉയർന്ന തലത്തിലുള്ള റികവറി മോഡുകൾ ഉപയോഗിക്കലാണ്.
MyISAM ടേബിള് ആണ് പിശക് സന്ദേശത്തിൽ കാണുമ്പോൾ phpMyAdmin മുറിപ്പാട് സാധാരണ ഫലപ്രദമാണ്. എന്നാൽ InnoDB-യിൽ corrupt, tablespace, cannot open table പോലുള്ള പിശകുകൾ ഉണ്ടെങ്കിൽ നേരിട്ട് മുറിപ്പാട് ശ്രമിക്കാതെ മുൻപ് ബാക്കപ്പ് എടുക്കുക, സെർവർ ലോഗുകൾ പരിശോധിക്കുക. ഈ സാഹചര്യത്തിൽ ഹോസ്റ്റിംഗ് സേവനദാതാവിൽ നിന്ന് സഹായം തേടുന്നത് സുരക്ഷിതമാണ്. പ്രത്യേകിച്ച് നിർണായക ഇ-കൊമേഴ്സ് ഡാറ്റയിൽ അനധികൃത പരീക്ഷണങ്ങൾ ഒഴിവാക്കുക.
മുറിപ്പാട് പരാജയപ്പെട്ടാൽ എന്ത് ചെയ്യാം?
phpMyAdmin വഴി മുറിപ്പാട് എല്ലായ്പ്പോഴും വിജയകരമാകില്ല. വലിയ ടേബിൾ വലുപ്പം, ഗൗരവമുള്ള ഫയൽ തകരാറുകൾ, ഡിസ്ക് പ്രശ്നങ്ങൾ, അനുമതി നിയന്ത്രണങ്ങൾ കാരണം പ്രവർത്തനം ഇടക്കാലം നിർത്തപ്പെടാം. ആ സാഹചര്യങ്ങളിൽ ഈ നടപടികൾ പിന്തുടരാം:
- ബാക്കപ്പ് ഉപയോഗിച്ച് പുനഃസ്ഥാപിക്കൽ: ഏറ്റവും വിശ്വസനീയമായ മാർഗം, പിശക് സംഭവിക്കാത്ത ഏറ്റവും പുതിയ ബാക്കപ്പ് പുനഃസ്ഥാപിക്കുക. പുനഃസ്ഥാപിക്കുന്നതിന് മുൻപ് നിലവിലെ തകരാറിലായ ഡാറ്റാബേസ് ഫയൽ വേറെ ഫയലായി സൂക്ഷിക്കുക.
- SSH വഴി myisamchk ഉപകരണം: MyISAM ടേബിളുകൾക്കായി സെർവർ ആക്സസ് ഉള്ളവർക്ക് myisamchk കമാൻഡ് ഉപയോഗിക്കാം. ഇത് MySQL സർവീസ് നിർത്തിയ ശേഷം അല്ലെങ്കിൽ ടേബിളിലേക്ക് ആക്സസ് ഇല്ലാതാക്കി നടത്തണം.
- REPAIR TABLE കമാൻഡ്: phpMyAdmin SQL ടാബിൽ നിന്ന്
REPAIR TABLE table_name;ഓടിക്കാം. വലിയ ടേബിളുകൾക്ക് QUICK അല്ലെങ്കിൽ EXTENDED ഓപ്ഷനുകൾ ഉപയോഗിക്കാം. - ഡിസ്ക്, ഇൻഓഡ് പരിശോധന: ഡിസ്ക് പൂർണ്ണമായിരിക്കുകയോ ഇൻഓഡ് നിറഞ്ഞിരിക്കുകയോ ചെയ്താൽ മുറിപ്പാട് പരാജയപ്പെടും. അനാവശ്യ ഫയലുകൾ നീക്കം ചെയ്യുക.
- സെർവർ പിശക് ലോഗുകൾ പരിശോധിക്കൽ: MySQL എറർ ലോഗ്, വെബ് സെർവർ ലോഗ്, PHP പിശക് ലോഗ് മൂലം പിശകിന്റെ കാരണം കണ്ടെത്താം.
പങ്കിടുന്ന ഹോസ്റ്റിംഗ് ഉപയോഗിക്കുന്നവർക്ക് SSH അഥവാ സർവീസ് നിർത്താനുള്ള അനുമതി ഇല്ലായിരിക്കാം. അപ്പോൾ പിശക് സന്ദേശം, ടേബിൾ പേര്, സംഭവസമയം, ബാക്കപ്പ് തീയതി എന്നിവ പിന്തുണ ടീംക്ക് നൽകുക; പുനരുദ്ധാരണത്തിൽ വേഗത നൽകും.
പിശക് പുനരാവൃതിയാക്കുന്നത് എങ്ങനെ തടയാം?
ഒറ്റത്തവണ മുറിപ്പാട് താൽക്കാലിക പരിഹാരമാണ്; സ്ഥിരതയ്ക്ക് അടിസ്ഥാന സൗകര്യവും പരിപാലനവും ആവശ്യമാണ്. താഴെപ്പറയുന്ന മുൻകരുതലുകൾ MySQL ടേബിൾ തകരാറിന്റെ സാധ്യത显著മായി കുറയ്ക്കും.
MyISAM ടേബിളുകൾ InnoDB ആയി മാറ്റുക
നവീന വെബ് ആപ്ലിക്കേഷനുകളിൽ InnoDB സുരക്ഷിതവും സ്ഥിരവുമായ തിരഞ്ഞെടുപ്പാണ്. ലൈൻ ലെവൽ ലോക്കിംഗ്, ട്രാൻസക്ഷൻ പിന്തുണ, ക്രാഷ് റിക്കവറി മെക്കാനിസം ഇൻഡസ്ട്രിയിൽ വലിയ എഴുത്ത് ട്രാഫിക്കിൽ MyISAM-നെക്കാൾ മെച്ചം. മാറ്റം ALTER TABLE table_name ENGINE=InnoDB; കമാൻഡ് ഉപയോഗിച്ച് സാധിക്കും; പക്ഷെ ലൈവ് സൈറ്റിൽ പ്രയോഗിക്കാനുമുമ്പ് ടെസ്റ്റ് എൻവയറൺമെന്റിൽ പരീക്ഷിച്ച്, പൂര്ണ ബാക്കപ്പ് എടുക്കേണ്ടതാണ്. ചില പഴയ സോഫ്റ്റ്വെയറുകൾ ഫുൾടെക്സ്റ്റ് ഇൻഡക്സുകൾ അല്ലെങ്കിൽ MyISAM-നിഷ്ഠ പ്രത്യേകതകൾ ആശ്രയിച്ചിരിക്കാം.
സ്ഥിരമായ, പുനഃസ്ഥാപിക്കാവുന്ന ബാക്കപ്പ് നയം പാലിക്കുക
ബാക്കപ്പ് എടുക്കുക എന്നതും പ്രധാനമാണ്, എന്നാൽ അത് തിരിച്ചുപയോഗിക്കാവുന്നതായിരിക്കണം. ദിനംപ്രതി ബാക്കപ്പ്, ആഴ്ചവാറു പൂർണ ബാക്കപ്പ്, പ്രധാന അപ്ഡേറ്റുകൾക്കുമുമ്പ് മാനുവൽ ബാക്കപ്പ് നല്ല നയം. കുറഞ്ഞത് 7 ദിവസം ബാക്കപ്പ് സൂക്ഷിക്കുക ചെറിയ/മധ്യവലിപ്പ വെബ്സൈറ്റുകൾക്കായി മതിയാകും. ഇ-കൊമേഴ്സ് സൈറ്റുകളിൽ ഓർഡർ നഷ്ടം കുറയ്ക്കാൻ കൂടുതൽ തീവ്രമായ ബാക്കപ്പ് അല്ലെങ്കിൽ binlog അടിസ്ഥാനമാക്കിയുള്ള റിക്കവറി വേണ്ടിവരും.
ഡിസ്ക് ഉപയോഗവും വിഭവങ്ങളും നിരീക്ഷിക്കുക
ഡിസ്ക് 85-90% നിറഞ്ഞാൽ അലാർം സജ്ജമാക്കുക. MySQL താത്കാലിക ടേബിളുകൾ, ലോഗ് ഫയലുകൾ, ഇൻഡക്സ് പ്രവർത്തനങ്ങൾക്കായി സ്ഥലം ആവശ്യമാണ്. CPU, RAM, I/O വെയ്റ്റ് സമയങ്ങൾ നിരന്തര നിരീക്ഷണം ആവശ്യമാണ്. സ്ഥിരമായ വിഭവ പരിമിതികൾ ഉള്ള സൈറ്റ് ഡാറ്റാബേസ് പിശകുകൾക്ക് കൂടുതൽ ഇളവാണ്. ട്രാഫിക് വർദ്ധിച്ചാൽ പങ്കിട്ട പ്ലാനിൽ നിന്ന് ശക്തമായ പ്ലാനിലേക്ക് മൈഗ്രേറ്റ് ചെയ്യുക അർത്ഥവത്താകും; ഈ വിഷയത്തിൽ കോർപ്പറേറ്റ് ഹോസ്റ്റിംഗ് അല്ലെങ്കിൽ ഉയർന്ന പ്രവർത്തനക്ഷമതയുള്ള ഹോസ്റ്റിങ് പരിഗണിക്കുക.
പ്ലഗിനുകളും തീമുകളും സോഫ്റ്റ്വെയർ അപ്ഡേറ്റുകളും പരിശോധിക്കുക
പഴയ സോഫ്റ്റ്വെയറുകൾ വെറും സുരക്ഷാ ഭീഷണി മാത്രമല്ല, ഡാറ്റാബേസിൽ അസാധുവായ ക്വെറികളും അയയ്ക്കാം. WordPress മുറിപ്പാട് സമയത്ത് ഉപയോഗിക്കാത്ത പ്ലഗിനുകൾ നീക്കം ചെയ്യുക, ഡാറ്റാബേസ് വീതം കൂട്ടുന്ന ലോഗ് ടേബിളുകൾ ശുചീകരിക്കുക, വിശ്വാസമില്ലാത്ത പ്ലഗിനുകൾ ഒഴിവാക്കുക. അപ്ഡേറ്റ് ചെയ്യുന്നതിന് മുൻപ് സ്റ്റേജിംഗ് എൻവയരൺമെന്റിൽ പരീക്ഷിക്കുക; ലൈവ് സൈറ്റിൽ അനിഷ്ടമായ ടേബിള് പ്രശ്നങ്ങൾ ഒഴിവാക്കാൻ.
സെർവർ ശരിയായി അടയ്ക്കുക, മെന്റനൻസ് പ്ലാൻ തയ്യാറാക്കുക
VPS അല്ലെങ്കിൽ ഡെഡിക്കേറ്റഡ് സെർവർ കൈകാര്യം ചെയ്യുന്നവർ MySQL സർവീസ് ബലപ്രയോഗം ഒഴിവാക്കുക. മെന്റനൻസ് മുമ്പ് സർവീസുകൾ നിയന്ത്രിതമായി നിർത്തുക, അപ്ഡേറ്റുകൾ കുറവ് ട്രാഫിക് സമയത്ത് നടത്തുക, റീബൂട്ട് ശേഷം ലോഗുകൾ പരിശോധിക്കുക. പദ്ധതിബദ്ധമായ പരിപാലന ശീലം, പ്രത്യേകിച്ച് ഉയർന്ന ട്രാഫിക് ഡാറ്റാബേസുകളിൽ തകരാറിന്റെ സാധ്യത കുറയ്ക്കും.
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 പ്രോജക്റ്റുകൾക്കായി മെച്ചപ്പെടുത്തിയ ഹോസ്റ്റിംഗ് പരിഹാരങ്ങൾക്കായി WordPress ഹോസ്റ്റിംഗ് പരിശോധിക്കുക.
പ്രൊഫഷണൽ സഹായം എപ്പോൾ തേടണം?
എല്ലാ MySQL പിശകുകളും സ്വയം പരിഹരിക്കാൻ സാധിക്കില്ല. താഴെപ്പറയുന്ന സാഹചര്യങ്ങളിൽ പ്രൊഫഷണൽ സഹായം ആവശ്യമാണ്:
- തകരാറിലായ ടേബിളിൽ ഓർഡർ, പണമടയ്ക്കൽ, അംഗത്വം, സാമ്പത്തിക ഡാറ്റ ഉണ്ടെങ്കിൽ.
- മുറിപ്പാട് ശ്രമത്തിനു ശേഷം പിശക് തുടരുകയോ ടേബിൾ കാണാതാകുകയോ ചെയ്താൽ.
- ഡാറ്റാബേസ് വലുപ്പം ഗിഗാബൈറ്റുകൾ കടന്നുപോയി, phpMyAdmin സമയപരിധി കഴിഞ്ഞാൽ.
- InnoDB tablespace അല്ലെങ്കിൽ redo log പിശകുകൾ കണ്ടാൽ.
- ഡിസ്ക് പിശക്, I/O പിശക്, ഫയൽ സിസ്റ്റം മുന്നറിയിപ്പ് ഉണ്ടെങ്കിൽ.
- പുറത്തേ ബാക്കപ്പ് ഇല്ലെങ്കിൽ.
സഹായം തേടുമ്പോൾ പിശക് സന്ദേശത്തിന്റെ പൂർണ്ണ വാചകം, ബാധിച്ച ഡാറ്റാബേസ്, ടേബിൾ പേര്, പിശക് ആരംഭിച്ച സമയം, അവസാന അപ്ഡേറ്റ്/മൈഗ്രേഷൻ വിവരങ്ങൾ, ബാക്കപ്പ് തീയതി എന്നിവ വിശദമായി നൽകുക. ഇതുവഴി പരിഹാര സമയം കുറയ്ക്കാം.
വേഗ പരിശോധന പട്ടിക
അത്യാവശ്യം നിലയിൽ വേഗം പ്രവർത്തിക്കാൻ താഴെ പറയുന്ന ക്രമം പാലിക്കുക:
- പിശക് സന്ദേശത്തിൽ നിന്ന് തകരാറിലായ ടേബിൾ പേര് കണ്ടെത്തുക.
- നിലവിലെ ഡാറ്റാബേസ് ബാക്കപ്പ് എടുക്കുക.
- സൈറ്റ് ചെറുതായി മെന്റനൻസ് മോഡിലേക്ക് മാറ്റുക.
- phpMyAdmin-ൽ ശരിയായ ഡാറ്റാബേസ് തിരഞ്ഞെടുക്കുക.
- തകരാറിലായ ടേബിൾ തിരഞ്ഞെടുക്കുകയും ടേബിൾ മുറിപ്പാട് ചെയ്യുക ഓപ്ഷൻ പ്രവർത്തിപ്പിക്കുകയും ചെയ്യുക.
- ടേബിൾ പരിശോധിച്ച് സൈറ്റ് ഫംഗ്ഷനുകൾ പരിശോധിക്കുക.
- ഡിസ്ക്, വിഭവം, ബാക്കപ്പ്, ടേബിൾ എൻജിൻ എന്നിവ പരിശോധിച്ച് പുനരാവൃത്തി ഒഴിവാക്കുക.
സാധാരണ ചോദിച്ച ചോദ്യങ്ങൾ
MySQL "Table is marked as crashed" പിശക് ഡാറ്റ നഷ്ടം ഉണ്ടാക്കുമോ?
എല്ലാ സമയത്തും ഡാറ്റ നഷ്ടം ഉണ്ടാകില്ല. MyISAM ടേബിളുകളുടെ ഒരു വലിയ ഭാഗം phpMyAdmin-ൽ നിന്നും മുറിപ്പാട് ചെയ്ത് പുനഃസ്ഥാപിക്കാവുന്നതാണ്. എന്നാൽ ടേബിൾ ഗുരുതരമായി തകരാറിലായാൽ ചില റിക്കോർഡുകൾ നഷ്ടപ്പെട്ടേക്കാം. അതിനാൽ മുറിപ്പാട് ചെയ്യുന്നതിനുമുമ്പ് ബാക്കപ്പ് എടുക്കുന്നത് അനിവാര്യമാണ്.
phpMyAdmin ഉപയോഗിച്ച് ടേബിൾ മുറിപ്പാട് ചെയ്യുന്നത് സുരക്ഷിതമാണോ?
പൊതു നിലയിൽ സുരക്ഷിതമാണ്; എന്നാൽ ലൈവ് ഡാറ്റാബേസ് പരിപാലനത്തിൽ എപ്പോഴും ഒരു റിസ്ക് ഉണ്ടാകും. മുറിപ്പാട് ചെയ്യുന്നതിന് മുമ്പ് ബാക്കപ്പ് എടുക്കുക, ശരിയായ ടേബിൾ തിരഞ്ഞെടുക്കുക, സാധ്യമെങ്കിൽ സൈറ്റ് മെന്റനൻസ് മോഡിൽ മാറ്റുക എന്നിവ സുരക്ഷ വർദ്ധിപ്പിക്കുന്നു. വലിയ/ഗുരുതര ടേബിളുകളിൽ പ്രൊഫഷണൽ സഹായം പരിഗണിക്കുക.
InnoDB ടേബിളുകൾക്ക് "ടേബിൾ മുറിപ്പാട്" ഓപ്ഷൻ ഉപയോഗിക്കണോ?
InnoDB ടേബിളുകൾ MyISAM പോലുള്ള REPAIR TABLE ലോഗിക് ഉപയോഗിച്ച് മുറിപ്പാട് ചെയ്യാനാകില്ല. InnoDB പിശകുകളിൽ MySQL ലോഗുകൾ പരിശോധിക്കൽ, ഡിസ്ക് അവസ്ഥ പരിശോധിക്കൽ, ബാക്കപ്പ് ഉപയോഗിച്ച് പുനഃസ്ഥാപിക്കൽ ശരിയായ സമീപനങ്ങളാണ്. അനധികൃത മുറിപ്പാട് ശ്രമങ്ങൾ ഡാറ്റ നഷ്ടം വർദ്ധിപ്പിക്കാം.
ഈ പിശക് എന്തുകൊണ്ട് സ്ഥിരമായി ആവുകയാണ്?
പിശക് പുനരാവൃതിയാണെങ്കിൽ അടിസ്ഥാന കാരണം പരിഹരിക്കപ്പെട്ടിട്ടില്ല. ഡിസ്ക് നിറച്ചുപോകൽ, അപ്രതീക്ഷിത സർവീസ് അടച്ചുപോക്കൽ, ഭാരമുള്ള എഴുത്ത് ട്രാഫിക്, തകരാറിലായ പ്ലഗിനുകൾ, പഴയ MySQL പതിപ്പ്, MyISAM തുടർച്ചയായ ഉപയോഗം എന്നിവ സാധാരണ കാരണം. മൂലകാരം കണ്ടെത്തുക സ്ഥിര പരിഹാരത്തിന് നിർണായകമാണ്.
മുറിപ്പാട് ചെയ്യുന്നതിന് മുമ്പ് ഹോസ്റ്റിംഗ് കമ്പനിയെ സമീപിക്കണോ?
സാധാരണ MyISAM ടേബിൾ പിശകുകളിൽ ബാക്കപ്പ് എടുത്ത് phpMyAdmin വഴി മുറിപ്പാട് ചെയ്യാനാകും. എന്നാൽ ടേബിൾ നിർണായക ഡാറ്റ ഉള്ളതാണ്, ബാക്കപ്പ് ഇല്ല, ഡാറ്റാബേസ് വലുതായിരിക്കുന്നു, InnoDB പിശകുകൾ കാണപ്പെടുന്നു എന്നിവയാണെങ്കിൽ ഹോസ്റ്റിംഗ് സപ്പോർട്ട് ടീമിന് സമീപിക്കുന്നത് സുരക്ഷിതമാണ്.
സംഗ്രഹം
MySQL "Table is marked as crashed" പിശക് പ്രത്യേകിച്ച് MyISAM ടേബിളുകളിൽ കാണപ്പെടുന്ന, phpMyAdmin വഴി പരിഹരിക്കാവുന്ന ഒരു ഡാറ്റാബേസ് തകരാറിന്റെ മുന്നറിയിപ്പാണ്. ശരിയായ സമീപനം: ആദ്യം ബാക്കപ്പ് എടുക്കുക, തകരാറിലായ ടേബിൾ കണ്ടെത്തുക, phpMyAdmin വഴി മുറിപ്പാട് നടത്തുക, പിന്നെ പിശകിന്റെ കാരണം മനസ്സിലാക്കി പരിഹരിക്കുക. സ്ഥിരമായ ബാക്കപ്പ്, മതിയായ സെർവർ വിഭവങ്ങൾ, InnoDB ഉപയോഗം, അപ്ഡേറ്റുചെയ്ത സോഫ്റ്റ്വെയർ അടിസ്ഥാന സൗകര്യം ഈ പിശക് ആവർത്തന സാധ്യത കുറയ്ക്കും. നിങ്ങളുടെ സൈറ്റിൽ ഇത്തരം പിശകുകൾ ആവർത്തിക്കുകയാണെങ്കിൽ, അടിസ്ഥാന സൗകര്യം പരിശോധിച്ച് ആവശ്യാനുസരണം ഹോസ്റ്റിംഗ് പരിഹാരങ്ങൾ Hostragons കാണുക അല്ലെങ്കിൽ സപ്പോർട്ട് ടീം സഹായം തേടുക.