• خانه
  • وبلاگ
  • راه حل های سریع برای رفع خرابی جداول MySQL: آموزش

راه حل های سریع برای رفع خرابی جداول MySQL: آموزش

 تاریخ انتشار :
/
  وبلاگ
راه حل های سریع برای رفع خرابی جداول MySQL: آموزش


MySQL یکی از محبوب ترین RDBMS های منبع باز (سیستم های مدیریت پایگاه داده رابطه ای) است. این بخشی جدایی ناپذیر از پشته LAMP است که به سرعت در حال رشد است و محبوبیت چشمگیری در بین توسعه دهندگان و مدیران سیستم به دست آورده است. SQL در مقایسه با پایگاه‌های داده غیررابطه‌ای، عملکردهای بسیار خوبی را برای مرتب‌سازی، ذخیره و مدیریت کارآمد داده‌ها ارائه می‌کند. ویژگی‌های متمایز چیدمان جدول و قابلیت‌های برجسته پایگاه داده SQL، آن را به انتخاب ارجح در تمام سطوح سازمان، چه بزرگ و چه کوچک تبدیل می‌کند.

جداول MySQL در موارد نادری ممکن است خراب شوند که نشان می دهد چنین خطایی رخ داده است و داده های ذخیره شده در آنها قابل خواندن نیستند. هنگامی که سعی می کنید داده ها را از یک جدول خراب بخوانید، سرور از کار می افتد و یک خطا یا لیستی از خطاها را نمایش می دهد.

دلایل احتمالی در پس فساد جدول MySQL

در زیر برخی از معمول ترین دلایل خراب شدن جداول آورده شده است:

  • سرویس MySQL پس از راه اندازی مجدد از کار می افتد.
  • به دلیل قطع برق، دستگاه به طور غیرمنتظره ای خاموش می شود.
  • حافظه بد یا خرابی سخت افزار.
  • خطاهای نرم افزاری در سیستم عامل یا کد SQL.
  • MySQL هنگام نوشتن خاموش می شود.
  • سیستم می چرخد خاموش در حین به روز رسانی SQL

قبل از تعمیر جدولی که گمان می‌کنید خراب است، یک نسخه پشتیبان از فهرست اطلاعات خود ایجاد کنید. این به کاهش احتمال از دست رفتن اطلاعات کمک می کند. در این راهنمای سریع، ما شما را از طریق مراحل عیب یابی برای رفع جداول MySQL خراب راهنمایی می کنیم.

پیش نیازها

برای دنبال کردن این آموزش به موارد زیر نیاز دارید:

مرحله 1: سرویس MySQL و پشتیبان گیری از داده ها را متوقف کنید

در ابتدا، استفاده از سرویس MySQL را متوقف کنید systemctl دستور:

پس از توقف سرویس SQL، گام بعدی ایجاد نسخه‌های پشتیبان از تمام فایل‌های موجود در یک فهرست جدید است. از دایرکتوری داده پیش فرض اوبونتو استفاده کنید /var/lib/mysql/ برای کپی کردن تمام داده های سیستم:

مرحله 2: خطا را شناسایی کنید

سپس بررسی خود را آغاز کرده و جدول آسیب دیده را شناسایی می کنیم. اگر جدول از موتور ذخیره سازی MyISAM استفاده می کند، استفاده کنید CHECK TABLE بیانیه و بررسی وضعیت جدول:

پیامی را به عنوان خروجی مشاهده خواهید کرد که جدول یا جداول آسیب دیده را تایید می کند.

مرحله 3: میز آسیب دیده را تعمیر کنید

اگر خطایی در آن وجود دارد MyISAM جدول و شما آن را شناسایی کرده اید، از آن استفاده کنید REPAIR TABLE بیان اشکال زدایی:

اگر رفع موفقیت آمیز بود، باید پیام زیر را بدون خطایی مشاهده کنید:

با این حال، اگر متوجه شدید که خطا دوباره رخ می دهد، سند رسمی MySQL نسخه 8.0 را برای بازیابی یا تعمیر جداول دنبال کنید.

برخلاف موتور ذخیره سازی MyISAM، فرآیند InnoDB مربوط به تعمیر جداول در موتور ذخیره سازی InnoDB متفاوت است. InnoDB موتور ذخیره سازی پیش فرض در MySQL 8.0 است. این شامل عملیات خودکار برای بررسی و رفع فساد است. را MySQL InnoDB صفحات شکسته را با انجام جمع‌بندی چک در هر صفحه که می‌خواند، بررسی می‌کند. اگر عدم تطابق تشخیص داده شود، به طور خودکار سرور MySQL را متوقف می کند.

نکته اصلی این است که به ندرت نیاز به تعمیر جداول InnoDB وجود دارد. InnoDB دارای مکانیزم بازیابی خرابی است که می تواند اکثر مشکلات را با راه اندازی مجدد حل کند.

سعی کنید سرویس MySQL را مجددا راه اندازی کنید تا ببینید آیا می توانید به سرور دسترسی داشته باشید:

اگر حتی پس از راه اندازی مجدد نمی توانید یک جدول InnoDB خراب را بازیابی کنید، روش “Dump and Reload” پیشنهاد شده در مستندات MySQL را امتحان کنید. این روش شامل بازگرداندن دسترسی به جدول آسیب دیده با استفاده از mysqldump سودمندی یک پوشه باید برای ذخیره و ذخیره بک آپ منطقی جدول ایجاد شود. پس از تصحیح خطا، جدول را مجدداً در پایگاه داده بارگذاری می کند.

مرحله 4: از گزینه innodb_force_recovery استفاده کنید

اگر سرور خاموش یا در دسترس نیست، استفاده کنید force_recovery گزینه در InnoDB. واژگونی بر گزینه force_recovery یک راه عالی برای بازیابی پایگاه داده MySQL است. با تغییر می توانید این گزینه را فعال کنید mysqld.cnf فایل در nano ویرایشگر متن:

خط زیر را در زیر قرار دهید [mysqld] بخش:

بازیابی نیروی innodb

پس از راه اندازی مجدد سرویس MySQL فایل را ذخیره و ببندید.

مرحله 5: یک فایل mysqldump ایجاد کنید

اگر به جدول خراب دسترسی دارید، استفاده کنید mysqldump گزینه ای برای قرار دادن همه dump ها در فایل جدید. فایل جدید را با توجه به اولویت خود نامگذاری کنید و فراموش نکنید که آن را اضافه کنید .sql تمدید در پایان در اینجا ما فایل را به عنوان نام گذاری می کنیم demo.sql:

سپس استفاده کنید DROP TABLE درخواست حذف جدول از پایگاه داده برای جلوگیری از باز کردن مجدد درخواست MySQL می توانید از دستور زیر استفاده کنید:

سپس با استفاده از سند دور ریختن demo.sql شما فقط آماده کردید، جدول را بازیابی کنید:

شما با موفقیت جدول MySQL آسیب دیده خود را تعمیر کرده اید و آماده اجرای روان پایگاه داده خود هستید.

نتیجه

اگر با حجم زیادی از داده کار می کنید، احتمال دارد خرابی جدول یا خرابی سیستم غیرمنتظره رخ دهد. شایان ذکر است که MySQL InnoDB مکانیسم ذخیره سازی نسبت به قبلی مقاوم تر است MyISAM موتور استفاده از جداول InnoDB موتور ذخیره‌سازی هنوز هم می‌تواند آسیب ببیند، اگرچه خطر خرابی و فساد جدول به لطف ویژگی‌های بازیابی خودکار آن تا حد زیادی کاهش می‌یابد.

در نهایت، موضوعات و آموزش های پایگاه داده زیادی وجود دارد که می توانید در وبلاگ ما بررسی کنید:

کار کامپیوتر مبارک!

راه حل های سریع برای رفع خرابی جداول MySQL: آموزش

درباره آکشی ناگپال

علاقه مندان به تجزیه و تحلیل داده های بزرگ و یادگیری ماشین.