Недостаточно места на диске: будет ли повреждена база данных моего приложения MySQL? - PullRequest
0 голосов
/ 04 января 2019

У меня есть большой сайт Drupal 7 с множеством одновременно работающих пользователей, работающих на сервере, на котором недавно заканчивалось дисковое пространство (MySQL InnoDB за Memcached в Ubuntu 16.04).Как / почему это произошло, это обсуждение другого дня.

Я устранил проблему с дисковым пространством, и сайт, кажется, работает нормально, насколько показывает общее взаимодействие, но журнал Drupal полон ошибок, подобных этой:

Необработанное исключение «PDOException» с сообщением «SQLSTATE [HY000]: общая ошибка: 3 Ошибка записи файла« / tmp / MYGWmIvU »(код ошибки: 28 - на устройстве не осталось места)» в /var/www/pixelscrapper.com/public_html/includes / database / database.inc: 2229

Теперь у меня вопрос: будет ли база данных mysql, на которой запущен Drupal, вероятно, повреждена / неработоспособна в этот момент? т.е. в масштабе0-10, насколько важно, чтобы я восстановил базу данных до того, как закончится место на диске?

(Все, кроме 0, означает, что я, скорее всего, восстановлю базу данных - но есть и другие вещи, которые здесь пошли не так, что означает, что мы потеряли бы довольно много дней данных, если мне нужно восстановить,что является огромным тормозом. C'est la vie и т. д.).

Я предполагаю, что данные в MySQL могут быть более или менее точными, но я не могу полагаться на целостность фактических данных Drupal (пользователей, узлов и т. Д.), Которые состоят из коллекций многихстроки базы данных ...

1 Ответ

0 голосов
/ 04 января 2019

Сбои вне пространства могут привести к серьезным повреждениям баз данных.Единственный факт, что ваша база данных может запускаться и работать, по-видимому, как обычно, уже является хорошим признаком того, что она не была полностью испорчена инцидентом.

Следующее, что вы можете сделать, - это выполнить углубленную проверку.сканирование с использованием программы sqlcheck :

Клиент mysqlcheck выполняет обслуживание таблиц: проверяет, восстанавливает, оптимизирует или анализирует таблицы.

Анализ всехТаблицы во всех базах данных:

$ mysqlcheck -A

Анализ и исправление всех таблиц во всех базах данных:

$ mysqlcheck -A -r

Примечание: как объяснено в документации, вам лучше закрыть приложение и сделать резервную копиюпрежде чем запустить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...