سؤال

لا بد لي من استعادة قاعدة البيانات التي تم إسقاطها عن غير قصد في MySQL 5.0.من خلال التحقق من ملفات النسخ الاحتياطي، يبدو أن لدي ملفات .FRM فقط للاحتفاظ ببيانات قاعدة البيانات.

هل يمكن لأي شخص أن يخبرني ما إذا كان هذا هو كل ما أحتاجه لإجراء استعادة/استيراد قاعدة البيانات من النسخة الاحتياطية، أم أن هناك ملفات أخرى يجب علي تسليمها لإكمال هذا؟

هل كانت مفيدة؟

المحلول

ملفات .frm ليست ملفات بيانات، بل تقوم فقط بتخزين "معلومات قاموس البيانات" (انظر دليل ماي اس كيو ال).يقوم InnoDB بتخزين بياناته في ملفات ib_logfile*.هذا ما تحتاجه للقيام بالنسخ الاحتياطي/الاستعادة.لمزيد من التفاصيل انظر هنا.

نصائح أخرى

استعادة innodb:(بافتراض أن مجلد البيانات الخاص بك هو C:\ProgramData\MySQL\MySQL Server 5.5\data)

  1. انسخ مجلدات قواعد البيانات (المسماة باسم قاعدة البيانات) التي تريد استعادتها إلى C:\ProgramData\MySQL\MySQL Server 5.5\data
  2. انسخ ملفات ibdata الثلاثة إلى مجلد البيانات على سبيل المثال.(C:\ProgramData\MySQL\MySQL Server 5.5\data)

    _ib_logfile0
    _ib_logfile1
    _ibdata1
    
  3. احصل على حجم _ib_logfile0 بالميجابايت (يجب أن يكون هو نفسه _ib_logfile1) عن طريق "ملف" انقر بزر الماوس الأيمن -> خصائص

  4. قم بتحرير ملف التكوين mysql (mysql\bin\my.ini) ليكون حجم innodb_log_file_size=343M هو الحجم الدقيق لملفات ibdata

  5. يجري

    mysqld-defaults-file = mysql bin my.ini-standalone-console-innodb_force_recovery = 6

  6. الآن يجب أن تعود بياناتك إلى قاعدة البيانات الخاصة بك.قم بتصديرها باستخدام phpmysql أو أي أداة أخرى

يا بلدي...أنت في ورطة.اغلاق قاعدة البيانات.قم بعمل نسخة احتياطية لملف innodb.صلي من أجل أنك لم تفعل شيئًا بعد إسقاط قاعدة البيانات.

يجب أن يكون بمقدور الأشخاص في Percona (بما في ذلك مؤلفو مدونة أداء MySQL) مساعدتك: بيركونا دعم الطوارئ.

إذا كنت تغامر بمفردك، خذ معك هذا: مجموعة أدوات استعادة البيانات لـ Innodb.

اللوجستية من ذلك؟عليك أن تقرأ كل صفحة (صفحة مصطلح الكمبيوتر...كتلة 16 كيلو بايت في حالة Innodb) وإعادة بناء بياناتك بهذه الطريقة.إنه عمل منخفض المستوى للغاية (نحن نتحدث عن فتح محررك السداسي والبدء في حساب البايتات إذا لم تقم مجموعة الأدوات بذلك نيابةً عنك)، وإذا لم تكن مبرمجًا ذو خبرة كبيرة، فسوف تتألم .

الحل التفصيلي تجده هنا:

http://www.unilogica.com/mysql-innodb-recovery/ (المقالة باللغة البرتغالية)

بالإضافة إلى علم innodb_force_recovery, ، لقد وجدت حلاً آخر: innodb_file_per_table, الذي يقسم جداول InnoDB في كل ملف مثل جداول MyISAM.

في عملية التعافي من العطل، من الممكن أن تفقد بيانات أقل من تلك الموجودة في ملف واحد ibdata1.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top