تغييرات على الخلية ك InnoDB الجدول الملفات التي تشارك ولماذا ؟

StackOverflow https://stackoverflow.com/questions/1201184

  •  05-07-2019
  •  | 
  •  

سؤال

عند تغيير محتوى ك InnoDB الخلية الجدول التالي الملفات على نظام الملفات يظهر أن تشارك/تغيير:

  • /path/to/mysql/data/[database]/[table].ibd (بسبب innodb_file_per_table)
  • /path/to/mysql/data/data/ib_logfile0
  • /path/to/mysql/data/data/ib_logfile1
  • /path/to/mysql/data/data/ibdata1

لكل من هذه الملفات:

  1. عندما هو الملف خلقت ؟
  2. متى الملف تكون مكتوبة ؟
  3. متى الملف يكون قراءة من ؟
  4. ماذا ستكون النتيجة إذا كان الملف تالف أو حذفها ؟
هل كانت مفيدة؟

المحلول

/path/to/mysql/data/[database]/[table].ibd (due to innodb_file_per_table)

هذا هو المكان الذي يتم تخزين البيانات.يتم إنشاؤه عند إنشاء الجداول.

/path/to/mysql/data/data/ib_logfile0
/path/to/mysql/data/data/ib_logfile1

هذه هي logfiles.

جميع البيانات كتابة التغييرات إلى logfiles بالتتابع ، والذي يسمح كتابة-قبل الدخول (حاسمة في المعاملات)

/path/to/mysql/data/data/ibdata1

هذا هو المكان بيانات النظام ، UNDO يتم تخزين البيانات.

إذا ibdata لم يتم العثور على ، MySQL أعتقد أن InnoDB المحرك لم يتم تهيئة و خلق الجديد ibdata.نفسه مع logfiles.

إذا كان الاستعلام الصادرة ضد الطاولة ، .ibd ملفات لم يتم العثور عليها ، MySQL سوف تفشل مع هذه الرسالة:

لا يمكن العثور على الجدول database/table من البيانات الداخلية قاموس InnoDB على الرغم من .frm ملف جدول موجود.وربما كنت قد حذف صوغه InnoDB ملفات البيانات ولكن نسوا حذف المقابلة .frm الملفات InnoDB جداول ، أو انتقلت .frm ملفات إلى آخر قاعدة البيانات ؟

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