استكشاف أخطاء تلف قاعدة البيانات وإصلاحها في قاعدة بيانات Azure ل MySQL - الخادم المرن

ينطبق على:قاعدة بيانات Azure لـ MySQL - خادم فردي قاعدة بيانات Azure لـ MySQL - خادم مرن

هام

قاعدة بيانات Azure لخادم MySQL الفردي على مسار الإيقاف. نوصي بشدة بالترقية إلى قاعدة بيانات Azure لخادم MySQL المرن. لمزيد من المعلومات حول الترحيل إلى خادم Azure Database for MySQL المرن، راجع ما الذي يحدث لقاعدة بيانات Azure لخادم MySQL الفردي؟

يمكن أن يتسبب تلف قاعدة البيانات في توقف التطبيق الخاص بك. من الضروري أيضا حل مشاكل التلف في الوقت المناسب لتجنب فقدان البيانات. عند حدوث تلف في قاعدة البيانات، سترى هذا الخطأ في سجلات الخادم: InnoDB: Database page corruption on disk or a failed.

في هذه المقالة، ستتعلم كيفية حل مشاكل تلف قاعدة البيانات أو الجدول. يستخدم خادم Azure Database for MySQL المرن محرك InnoDB. يتميز بالفحص من التلف وإصلاحه تلقائيا. يتحقق InnoDB من الصفحات التالفة عن طريق تشغيل المجموع الاختباري على كل صفحة يقرأها. إذا عثر على تعارض المجموع الاختباري، فسيوقف تلقائيا مثيل خادم Azure Database for MySQL المرن.

جرب الخيارات التالية للتخفيف من مشاكل تلف قاعدة البيانات بطريقة سريعة.

إعادة تشغيل خادم MySQL الخاص بك

عادة ما تلاحظ أن قاعدة بيانات أو جدولا تالف عندما يصل تطبيقك إلى الجدول أو قاعدة البيانات. يتميز InnoDB بآلية استرداد الأعطال التي يمكن أن تحل معظم المشاكل عند إعادة تشغيل الخادم. لذلك يمكن أن تساعد إعادة تشغيل الخادم الخادم على التعافي من عطل تسبب في أن تكون قاعدة البيانات في حالة سيئة.

استخدام أسلوب التفريغ والاستعادة

نوصي بحل مشاكل التلف باستخدام إسلوباستعادة النسخة الاحتياطية . يتضمن هذا الأسلوب ما يلي:

  1. الوصول إلى الجدول التالف.
  2. استخدام الأداة المساعدة mysqldump لإنشاء نسخة احتياطية منطقية من الجدول. ستحتفظ النسخة الاحتياطية ببنية الجدول والبيانات الموجودة فيه.
  3. إعادة تحميل الجدول في قاعدة البيانات.

نسخ قاعدة البيانات أو الجداول احتياطيا

هام

إنشاء ملف نسخ احتياطي من سطر الأوامر باستخدام mysqldump. استخدم هذا الأمر:

$ mysqldump [--ssl-cert=/path/to/pem] -h [host] -u [uname] -p[pass] [dbname] > [backupfile.sql]

أوصاف المعلمة:

  • [ssl-cert=/path/to/pem]المسار إلى شهادة SSL. تنزيل شهادة SSL على جهاز العميل الخاص بك وتعيين أمر المسار فيها . لا تستخدم هذه المعلمة إذا تعطل SSL.
  • [host]: مثيل خادم مرن لقاعدة بيانات Azure ل MySQL.
  • [uname]اسم مستخدم مسؤول الخادم الخاص بك.
  • [pass]: كلمة المرور الخاصة بالمستخدم المسؤول.
  • [dbname]: اسم قاعدة البيانات الخاصة بك.
  • [backupfile.sql]: اسم ملف النسخ الاحتياطي لقاعدة البيانات الخاص بك

هام

  • بالنسبة لقاعدة بيانات Azure لخادم MySQL الفردي، استخدم التنسيق admin-user@servername لاستبدال myserveradmin في الأوامر التالية.
  • بالنسبة إلى خادم Azure Database for MySQL المرن، استخدم التنسيق admin-user لاستبدال myserveradmin في الأوامر التالية.

إذا كان جدول معين تالفا، حدد جداول معينة في قاعدة البيانات الخاصة بك للقيام بعمل نسخة احتياطية:

$ mysqldump --ssl-cert=</path/to/pem> -h mydemoserver.mysql.database.azure.com -u myserveradmin -p testdb table1 table2 > testdb_tables_backup.sql

لنسخ قاعدة بيانات واحدة أو أكثر احتياطيا، استخدم --database مفتاح التبديل واسرد أسماء قاعدة البيانات، مفصولة بمسافات:

$ mysqldump --ssl-cert=</path/to/pem>  -h mydemoserver.mysql.database.azure.com -u myserveradmin -p --databases testdb1 testdb3 testdb5 > testdb135_backup.sql

نسخ قاعدة البيانات أو الجداول احتياطيا

توضح الخطوات التالية كيفية استعادة قاعدة البيانات أو الجداول. بعد إنشاء ملف النسخ الاحتياطي، يمكنك استعادة الجداول أو قواعد البيانات باستخدام الأداة المساعدة mysql. قم بإجراء هذا الأمر:

mysql  --ssl-cert=</path/to/pem> -h [hostname] -u [uname] -p[pass] [db_to_restore] < [backupfile.sql]

فيما يلي مثال يستعيد testdb من ملف نسخ احتياطي أنشئ باستخدام mysqldump:

هام

  • بالنسبة إلى خادم Azure Database for MySQL الفردي، استخدم التنسيق admin-user@servername لاستبداله myserveradmin في الأمر التالي.
  • بالنسبة إلى خادم Azure Database for MySQL المرن، استخدم التنسيق admin-user لاستبداله myserveradmin في الأمر التالي.
$ mysql --ssl-cert=</path/to/pem> -h mydemoserver.mysql.database.azure.com -u myserveradmin -p testdb < testdb_backup.sql

الخطوات التالية

إذا لم تقم الخطوات السابقة بحل المشكلة، يمكنك دائما استعادة الخادم بأكمله: