MYSQL не працює з: InnoDB: Операційна система помилка номер 30 в операції з файлом


2

Мій сервер MySQL нещодавно зупинявся приблизно раз на тиждень. Це вимагає перезавантаження, щоб працювати знову. Але як тільки його перезавантажиться, він знову буде працювати ще на тиждень-два.

Помилка, про яку йдеться, є числом 30. Відповідно до URL-адреси в журналі помилок MYSQL не дає мені більше інформації, ніж просто сказати, що диск з базою даних тепер знаходиться в готовому режимі.

Моя база даних знаходиться на монтованому диску UUID="c3c2527e-..." /media/database ext4 user,auto 0 2. І що встановлений диск доступний через ssh, коли ця помилка відбувається.

Наскільки мені відомо, я недавно не оновлював свою ОС або MYSQL або вносив зміни на сервер. Я пам'ятаю, що треба налаштувати apparmor, коли я вперше додав диск, що містить MYSQL. Однак це було зроблено більше року тому.

Отже, моє запитання: чи пов'язано це питання з тим, що мій жорсткий диск зіпсується, агітація, або щось інше?

ОС: 12.04.2 LTS (GNU / Linux 3.5.0-23-загальний x86_64)

MYSQL: 5.5.31-0ubuntu0.12.04.1 (Ubuntu)

Диск MYSQL: / dev / sdb1 2.0T 709M 2.0T 1% / media / database

Уся помилка:

140301  8:00:29 [Note] Plugin 'FEDERATED' is disabled.
140301  8:00:29 InnoDB: The InnoDB memory heap is disabled
140301  8:00:29 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140301  8:00:29 InnoDB: Compressed tables use zlib 1.2.3.4
140301  8:00:29 InnoDB: Initializing buffer pool, size = 128.0M
140301  8:00:29 InnoDB: Completed initialization of buffer pool
140301  8:00:29  InnoDB: Operating system error number 30 in a file operation.
InnoDB: Error number 30 means 'Read-only file system'.
InnoDB: Some operating system error numbers are described at
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/operating-system-error-codes.html
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.

Відповіді:


1

Ви, безумовно, пов'язані з проблемами на диску. Це може бути контролер диска. Якою б не була історія, помилка на рівні ОС:

sh-4.1# perror 30
OS error code  30:  Read-only file system

InnoDB перестане працювати, оскільки для цього потрібно багато записів, навіть якщо вони читаються

Ось як виглядає InnoDB

InnoDB Architecture

Активні компоненти InnoDB, що потребують запису, є

  • Словник даних (під час створення, зміни та видалення таблиць)
  • Двомісний буфер запису (копіювання даних для повторного використання під час відновлення аварійного завершення роботи)
  • Вставити буфер (пом'якшити зміни в індексах з пула буферів)
  • Відхилення сегментів / журнали скасування ( Ізоляція транзакцій і MVCC )
  • Файли журналу (отримання змін із буфера журналу через Нечіткі контрольні точки )
  • .ibd файлів (файли індивідуальних таблиць)

Після того, як файлова система перетвориться лише на читання, всі ці рухомі частини зупиняються.

Ви повинні підтримувати дані

  • Я б зробив mysqldump всіх даних
  • Закрийте mysql та отримайте знімок LVM (якщо є)
  • Закрийте mysql і скопіюйте дані

Після створення резервної копії отримайте право на обслуговування диска. Перевірте RAID, контролер дисків і сам диск.

Ось кілька інших повідомлень ServerFault з питань, доступних лише для читання


Це закінчилося будучи моїм жорстким диском. Я вирішив після цього питання, щоб перемістити кожну річ в хмару, тому я не доведеться мати справу з 1 рік жорстких дисків буде погано: +1
Jon
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.