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 ટેબલ્સમાં ક્યારેય સમસ્યા નહીં આવે. 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 error logs કે MySQL error logs માં મળે છે. ખૂટેલો ટેબલ ઓળખવો જરૂરી છે જેથી સંપૂર્ણ ડેટાબેસ પર ફालतુ કામગીરી ન કરવી પડે.
3. સાઇટને ટૂંકા સમય માટે મેન્ટનન્સ મોડમાં મૂકો
મરામત દરમિયાન ટેબલ પર નવી લખાણ પ્રક્રિયા આવે તો પ્રક્રિયા નિષ્ફળ બની શકે અથવા ડેટા અસંગત બની શકે. વધુ ટ્રાફિકવાળી સાઇટ્સ માટે 2-5 મિનિટ મેન્ટનન્સ મોડ વધુ સુરક્ષિત બનાવે છે. WordPress માટે મેન્ટનન્સ પ્લગઇનનો ઉપયોગ કરી શકાય, કસ્ટમ સોફ્ટવેર માટે ટૂંકા સમય માટે મેન્ટનન્સ પેજ અથવા વેબસર્વર રીડાયરેક્ટ પણ કરી શકાય. સુરક્ષિત મુલાકાત માટે SSL સક્રિય હોવું જોઈએ; સર્ટિફિકેટ સંબંધિત સમસ્યા હોય તો SSL પ્રમાણપત્ર વિકલ્પો તપાસો.
phpMyAdmin થી MySQL ટેબલ કેવી રીતે મરામત કરશો?
phpMyAdmin ટેક્નિકલ કમાન્ડ લાઇન વિના પણ ટેબલ મરામત સરળ બનાવે છે. નીચેના પગલાં સામાન્ય રીતે cPanel, Plesk અને અન્ય હોસ્ટિંગ પેનલમાં સમાન હોય છે.
પગલું 1: હોસ્ટિંગ પેનલમાંથી phpMyAdmin ખોલો
તમારા હોસ્ટિંગ કંટ્રોલ પેનલમાં લૉગિન કર્યા પછી ડેટાબેસ વિભાગમાં phpMyAdmin લિંક ક્લિક કરો. જો બહુસંખ્યક હોસ્ટિંગ એકાઉન્ટ અથવા ડોમેન છે તો ચોક્કસ સાચા એકાઉન્ટમાં કામ કરો. ખોટા ડેટાબેસમાં કામ કરવાથી સીધો નુકસાન નહીં થાય પણ સમય ગુમાવે છે અને લાઇવ સાઇટ પર નહીં પણ ટેસ્ટ પર મરામત થાય. જો ડોમેન અને હોસ્ટિંગનું કનેક્શન ગૂંચવણમાં હોય તો ડોમેન વ્યવસ્થા વિષય પણ જુઓ.
પગલું 2: યોગ્ય ડેટાબેસ પસંદ કરો
ડાબી બાજુની મેનૂમાંથી તમારી સાઇટનો ડેટાબેસ પસંદ કરો. WordPress માટે db નામ wp-config.php ફાઈલની DB_NAME લાઈનમાં મળશે. કસ્ટમ PHP પ્રોજેક્ટમાં સામાન્ય રીતે config.php, .env કે database.php માં હોય છે. જો એક સર્વર પર એકથી વધુ સાઇટ હોય તો આ ચેક કરવું ખૂબ જ જરૂરી છે.
પગલું 3: ખૂટેલો ટેબલ પસંદ કરો
ડેટાબેસ ખુલતાં ટેબલ્સની સૂચિ આવે છે. ત્રુટિ સંદેશામાં જે ટેબલનું નામ છે તે શોધો અને તેની બાજુનો ચેકબોક્સ ટિક કરો. જો એકથી વધુ ટેબલ્સ ખૂટેલા છે તો એકસાથે પણ કરી શકો છો, પરંતુ સૌથી મહત્વપૂર્ણ ટેબલથી શરૂ કરવું વધુ યોગ્ય રહેશે. ટેબલ MyISAM છે કે નહીં તે જાણવા માટે ટેબલ લિસ્ટમાં ટાઇપ અથવા Engine કોલમ જુઓ.
પગલું 4: "ટેબલ મરામત કરો" વિકલ્પ ચલાવો
ટેબલ પસંદ કર્યા પછી પૃષ્ઠની નીચેના ડ્રોપડાઉન મેનૂમાંથી ટેબલ મરામત કરો પસંદ કરો. phpMyAdmin બેકએન્ડમાં સામાન્ય રીતે REPAIR TABLE table_name કમાન્ડ ચલાવે છે. પ્રક્રિયા પૂર્ણ થાય ત્યારે સફળતા, ચેતવણી કે નિષ્ફળતા સંદેશા દેખાશે. સફળતા સામાન્ય રીતે status OK તરીકે આવે છે. મોટા ટેબલ્સ માટે આ પ્રક્રિયા થોડો વધુ સમય લઈ શકે છે, ત્યારે પૃષ્ઠ રિફ્રેશ કે બ્રાઉઝર બંધ ન કરો.
પગલું 5: ટેબલ ચકાસો અને સાઇટ પરીક્ષણ કરો
મરામત પછી ફરીથી ડ્રોપડાઉનમાંથી ટેબલ ચકાસો વિકલ્પથી ટેબલની સ્થિતિ તપાસો. પછી તમારી વેબસાઇટનું હોમપેજ, એડમિન પેનલ, શોધ કાર્ય, પ્રોડક્ટ સૂચિ અને યુઝર લોગિન ચકાસો. WordPress હોય તો પર્માલિન્ક ફરીથી સેવ કરવી, કેશ સાફ કરવો અને ત્રુટિ લોગ ચકાસવું સારી પ્રેક્ટિસ છે.
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 વિકલ્પો અપનાવી શકાય છે.
- ડિસ્ક અને inode ચકાસણી: જો ડિસ્ક જગ્યા કે inode ભરાયા હોય તો મરામત નિષ્ફળ થઈ શકે. પહેલા અનાવશ્યક બેકઅપ, લોગ અને ટેમ્પ ફાઈલો દૂર કરો.
- સર્વર લોગ્સ તપાસો: MySQL error logs, વેબસર્વર logs અને PHP error logs ત્રુટિના મૂળ કારણ શોધવામાં મદદ કરે છે.
જો તમે શેયર્ડ હોસ્ટિંગ પર છો અને SSH કે સર્વિસ બંધ કરવાની પરવાનગી નથી, તો હોસ્ટિંગ સપોર્ટ ટીમને ત્રુટિ સંદેશ, ટેબલ નામ, ત્રુટિ ક્યારે શરૂ થઈ અને છેલ્લું બેકઅપ ક્યારે લીધું તે માહિતી મોકલો. તે ઉકેલ ઝડપશે.
ત્રુટિ ફરીથી આવવાથી કેવી રીતે રોકશો?
એકવારની મરામત તાત્કાલિક સમાધાન છે; ટકાઉ ઉકેલ માટે ઈન્ફ્રાસ્ટ્રક્ચર અને જાળવણી નિયમિત હોવી આવશ્યક છે. નીચેના ઉપાયો MySQL ટેબલ ખોટા થવાની શક્યતા ખૂબ ઘટાડી શકે છે.
MyISAM ટેબલ્સને InnoDB માં રૂપાંતર કરવાની વિચારણા કરો
આજકાલના વેબ એપ્લિકેશન્સમાં InnoDB વધારે સુરક્ષિત અને ટકાઉ માનવામાં આવે છે. સ્ટ્રોંગ ટ્રાન્ઝેક્શન સપોર્ટ, પંક્તિ સ્તરીય લોકિંગ અને ક્રેશ પછી રિકવરી ફીચર્સ MyISAM કરતા વધુ લાભદાયક છે. રૂપાંતર સરળ છે: ALTER TABLE table_name ENGINE=InnoDB; કમાન્ડથી થાય છે, પરંતુ લાઇવ સાઇટ પર કરવાથી પહેલા ટેસ્ટિંગ અને સંપૂર્ણ બેકઅપ લેવી જરૂરી છે. જૂના સોફ્ટવેરમાં ખાસ MyISAM ફીચર્સની આવશ્યકતા હોઈ શકે છે.
નિયમિત અને પુનઃસ્થાપનીય બેકઅપ નીતિ અપનાવો
બેકઅપ માત્ર લેવો જ નથી, પણ તે પુનઃપ્રાપ્ત કરી શકાય તેવો હોવો જોઈએ. દૈનિક બેકઅપ, સાપ્તાહિક ફૂલ બેકઅપ અને મહત્વના અપડેટ પહેલાં મેન્યુઅલ બેકઅપ લેવો શિસ્તપૂર્ણ છે. ઓછામાં ઓછા 7 દિવસના બેકઅપ સ્ટોર કરવું મોટાભાગની સાઇટ્સ માટે પૂરતું છે. ઈ-કોમર્સ સાઇટ્સ માટે વધુ વારંવાર બેકઅપ કે binlog આધારિત રિકવરી જરૂરી પડી શકે છે.
ડિસ્ક ઉપયોગ અને રિસોર્સ મોનિટરિંગ કરો
ડિસ્ક જગ્યા 85-90% સુધી પહોંચતા એલાર્મ સેટ કરો. MySQL ટેમ્પ ટેબલ્સ, લોગ ફાઇલો અને ઈન્ડેક્સ માટે જગ્યા જરૂરી છે. CPU, RAM અને I/O વેઇટ પણ નિયમિત ચકાસો. સતત રિસોર્સ લિમિટ વાળા સાઇટ્સ ડેટાબેસ ત્રુટિને વધુ પ્રબળ બનાવે છે. ટ્રાફિક વધ્યો હોય તો શેયર્ડ હોસ્ટિંગથી વધુ શક્તિશાળી પ્લાન પર જવું યોગ્ય રહેશે; આ માટે કોર્પોરેટ હોસ્ટિંગ અથવા ઉચ્ચ પ્રદર્શનવાળી હોસ્ટિંગ વિકલ્પો તપાસો.
પ્લગઇન, થીમ અને સોફ્ટવેર અપડેટ્સ ચકાસો
જૂના સોફ્ટવેર ફક્ત સુરક્ષા જોખમ નહીં, પણ ડેટાબેસ પર અપ્રભાવશાળી ક્વેરીઝ પણ મોકલે છે. WordPress માં-unused plugins દૂર કરો, લોગ ટેબલ્સ સાફ કરો અને વિશ્વસનીય ન હોય તેવા પ્લગઇનોથી બચો. અપડેટ પહેલા સ્ટેજિંગ પર પરીક્ષણ કરવું ટેબલ કે ઈન્ડેક્સ સમસ્યાઓ અટકાવે છે.
સર્વર યોગ્ય રીતે બંધ કરો અને જાળવણી યોજના બનાવો
જો તમે 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 ત્રુટિ તમારા દ્વારા સરળતાથી ઠીક ન થાય. નીચેની પરિસ્થિતિઓમાં પ્રોફેશનલ સહાય લેવી શ્રેષ્ઠ છે:
- ખૂટેલો ટેબલ ઓર્ડર, પેમેન્ટ, સભ્યતા કે નાણાકીય માહિતી ધરાવે.
- મરામત પછી ત્રુટિ ચાલુ રહે અથવા ટેબલ ગાયબ લાગે.
- ડેટાબેસ કદ ઘણા GB છે અને phpMyAdmin સમયસીમા ઉપર જાય.
- InnoDB tablespace કે redo log માં ત્રુટિ આવે.
- ડિસ્ક ત્રુટિ, I/O error કે ફાઇલ સિસ્ટમ ચેતવણી હોય.
- તમારું તાજેતરનું બેકઅપ ઉપલબ્ધ ન હોય.
સહાય માટે અરજી કરતાં ત્રુટિ સંદેશ, અસરગ્રસ્ત ડેટાબેસ અને ટેબલ નામ, ત્રુટિ શરૂ થવાનો સમય, છેલ્લું અપડેટ કે ટ્રાન્સફર વિગતો અને બેકઅપ તારીખ આપો. આ માહિતી ઉકેલ ઝડપાવશે.
ઝડપી ચકાસણી સૂચિ
આકસ્મિક પરિસ્થિતિમાં આ ક્રમ અનુસરો:
- ત્રુટિ સંદેશમાંથી ખૂટેલા ટેબલનું નામ શોધો.
- હાલનું ડેટાબેસ બેકઅપ લો.
- સાઇટને ટૂંકા સમય માટે મેન્ટનન્સ મોડમાં મૂકો.
- phpMyAdmin માં યોગ્ય ડેટાબેસ પસંદ કરો.
- સંબંધિત ટેબલ પસંદ કરી "ટેબલ મરામત કરો" ચલાવો.
- ટેબલ ચકાસો અને સાઇટ ફંક્શન્સનું પરીક્ષણ કરો.
- ડિસ્ક, રિસોર્સ, બેકઅપ અને એન્જિન તપાસ સાથે ફરી જોખમ ઘટાડો.
વારંવાર પુછાતા પ્રશ્નો
MySQL Table is marked as crashed ત્રુટિ ડેટા ગુમાવવાની સંકેત છે?
આ હંમેશા ડેટા ગુમાવવા નથી કહેતો. મોટા ભાગના MyISAM ટેબલ phpMyAdmin થી મરામત કરી શકાય છે. પરંતુ ગંભીર રીતે ખૂટેલા ટેબલમાં થોડાં રેકોર્ડ્સ નુકસાન પામેલા હોઈ શકે છે. તેથી મરામત પહેલાં બેકઅપ લેવું ખૂબ જ મહત્વપૂર્ણ છે.
phpMyAdmin થી ટેબલ મરામત સલામત છે?
સામાન્ય રીતે સલામત છે, પરંતુ લાઇવ ડેટાબેસ પર દરેક જાળવણી ત્રુટિ જોખમ સાથે આવે. પહેલા બેકઅપ લેવું, યોગ્ય ટેબલ પસંદ કરવું અને શક્ય હોય તો સાઇટ મેન્ટનન્સ મોડમાં મૂકાશે તો સલામતી વધે છે. મોટા કે મહત્વપૂર્ણ ટેબલ માટે પ્રોફેશનલ સહાય શ્રેષ્ઠ.
InnoDB માટે "ટેબલ મરામત કરો" ઉપયોગ કરવો જોઈએ?
InnoDB ટેબલ્સ MyISAM જેવી મરામત પદ્ધતિથી સુધરતા નથી. InnoDB ત્રુટિ માટે MySQL લોગ્સ તપાસો, ડિસ્ક સ્થિતિ ચકાસો અને જરૂરી હોય તો બેકઅપથી પુનઃપ્રાપ્ત થાઓ. અણધાર્યા મરામત પ્રયાસો ડેટા ગુમાવવાની જોખમ વધારશે.
આ ત્રુટિ વારંવાર કેમ આવે છે?
જો ત્રુટિ ફરીથી થાય તો મૂળ કારણ હલ થયું નથી. ડિસ્ક જગ્યા ખાલી ન હોવી, અચાનક સર્વિસ બંધ થવું, ભારે લખાણ ટ્રાફિક, ખોટા પ્લગઇન, જૂનો MySQL વર્ઝન કે MyISAM સતત ઉપયોગ સૌથી સામાન્ય કારણો છે. મૂળ કારણ શોધવું અને ઠીક કરવું જ ટકાઉ ઉકેલ છે.
મરામત પહેલા હોસ્ટિંગ કંપનીને સંપર્ક કરવો જોઈએ?
સરળ MyISAM ટેબલ ત્રુટિ માટે તમારે પોતે બેકઅપ લઈને phpMyAdmin થી મરામત કરી શકો છો. પરંતુ ટેબલમાં મહત્વપૂર્ણ ડેટા હોય, બેકઅપ ન હોય, ડેટાબેસ મોટો હોય કે InnoDB ત્રુટિ હોય તો હોસ્ટિંગ સપોર્ટ ટીમનો સહારો લેવું વધુ સલામત છે.
નિષ્કર્ષ
MySQL "Table is marked as crashed" ત્રુટિ ખાસ કરીને MyISAM ટેબલ્સમાં જોવા મળે છે અને મોટાભાગે phpMyAdmin થી યોગ્ય રીતે ઠીક થઈ શકે છે તેવા ડેટાબેસ ખૂટવાના સંકેત છે. યોગ્ય પગલાં એ છે—સૌપ્રથમ બેકઅપ લેવો, ખૂટેલા ટેબલને ઓળખવું, phpMyAdmin થી મરામત કરવી અને પછી ત્રુટિના મૂળ કારણને દૂર કરવું. નિયમિત બેકઅપ, પૂરતી સર્વર રિસોર્સ, InnoDB ઉપયોગ અને અપડેટેડ સોફ્ટવેર આ ત્રુટિ ફરીથી ન આવવા માટે મદદ કરે છે. જો તમારી સાઇટમાં આવા સમસ્યાઓ વારંવાર થાય છે તો તમારું ઇન્ફ્રાસ્ટ્રક્ચર તપાસવું અને જરૂર મુજબ હોસ્ટિંગ ઉકેલ માટે Hostragons ના સ્ત્રોતો અને સપોર્ટનો ઉપયોગ કરવો શ્રેષ્ઠ રહેશે.