تغييرات على الخلية ك InnoDB الجدول الملفات التي تشارك ولماذا ؟
-
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
لكل من هذه الملفات:
- عندما هو الملف خلقت ؟
- متى الملف تكون مكتوبة ؟
- متى الملف يكون قراءة من ؟
- ماذا ستكون النتيجة إذا كان الملف تالف أو حذفها ؟
المحلول
/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
ملفات إلى آخر قاعدة البيانات ؟