MySQL краш таблицы и забивание диска бекапами

12
Metal Messiah
На сайте с 01.08.2010
Offline
152
2279

Доброго времени суток.

Есть у сайта средне используемая таблица БД. Характер использования - периодически все данные с определенным значением индекса удаляются (до 1/10 строк от общего числа) и заносятся новые, регулярно кто-то что-то из не читает.

Уже 2 раз за этот месяц происходит вылет сайта - заканчивается место на диске.

В каталоге mysql data кроме файлов этой таблицы обнаруживаю кучу их бекапов (*.BAK именно большими буквами) которые и заполняют все место. Таблица занимает приличный объем, потому увеличение места на диске сервера приведет только к увеличению промежутка времени между вылетами.

В логе:

160422 12:27:56 [Note] /usr/sbin/mysqld: ready for connections.
160422 12:27:58 [ERROR] /usr/sbin/mysqld: Table 'TABLENAME' is marked as crashed and should be repaired
160422 12:27:58 [Warning] Checking table: 'TABLENAME'
160422 12:27:58 [ERROR] /usr/sbin/mysqld: Table 'TABLENAME' is marked as crashed and should be repaired
160422 12:27:58 [Warning] Checking table: 'TABLENAME'
160422 12:27:59 [ERROR] /usr/sbin/mysqld: Incorrect key file for table 'TABLENAME'; try to repair it
160422 12:27:59 [ERROR] Got an error from unknown thread, /build/buildd/mysql-5.5-5.5.41/storage/myisam/ha_myisam.cc:912
160422 12:27:59 [Warning] Recovering table: 'TABLENAME'
160422 12:28:04 [Note] Retrying repair of: 'TABLENAME' with keycache
160422 12:28:13 [Warning] Disk is full writing 'TABLENAME.TMD' (Errcode: 28). Waiting for someone to free space... (Expect up to 60 secs delay for server to continue after freeing disk space)
160422 12:28:13 [Warning] Retry in 60 secs. Message reprinted in 600 secs
160422 12:38:13 [Warning] Disk is full writing 'TABLENAME.TMD' (Errcode: 28). Waiting for someone to free space... (Expect up to 60 secs delay for server to continue after freeing disk space)
160422 12:38:13 [Warning] Retry in 60 secs. Message reprinted in 600 secs
160422 12:48:13 [Warning] Disk is full writing 'TABLENAME.TMD' (Errcode: 28). Waiting for someone to free space... (Expect up to 60 secs delay for server to continue after freeing disk space)
160422 12:48:13 [Warning] Retry in 60 secs. Message reprinted in 600 secs
160422 12:58:13 [Warning] Disk is full writing 'TABLENAME.TMD' (Errcode: 28). Waiting for someone to free space... (Expect up to 60 secs delay for server to continue after freeing disk space)
160422 12:58:13 [Warning] Retry in 60 secs. Message reprinted in 600 secs
160422 13:08:13 [Warning] Disk is full writing 'TABLENAME.TMD' (Errcode: 28). Waiting for someone to free space... (Expect up to 60 secs delay for server to continue after freeing disk space)
160422 13:08:13 [Warning] Retry in 60 secs. Message reprinted in 600 secs
160422 13:18:13 [Warning] Disk is full writing 'TABLENAME.TMD' (Errcode: 28). Waiting for someone to free space... (Expect up to 60 secs delay for server to continue after freeing disk space)
160422 13:18:13 [Warning] Retry in 60 secs. Message reprinted in 600 secs
160422 13:28:13 [Warning] Disk is full writing './TABLENAME_160422 19:23:13 [Note] Found 226078 of 612705 rows when repairing 'TABLENAME'

Как бороться с этим бредом?

rm -rf *.BAK в крон - не предлагать, нужно устранить причину.

anonymous, думай что говоришь и не забывай подписать отзыв :)
LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#1

У вас виртуальный хостинг или сервер свой?

---------- Добавлено 22.04.2016 в 23:59 ----------

Таблицы все myisam ?

mysql-5.5

Попробуйте обновиться на 5,6

Также проверьте диски, возможно они просто вышли уже из строя или что-то с сервером не так. Какие-то сбои.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
Metal Messiah
На сайте с 01.08.2010
Offline
152
#2

Это VPS, за состоянием дисков по идее следит хостер, да и RAID там должен быть.

Просто не вижу проблем с той таблицей, REPAIR работает на ура, спрашивается чего оставлять лишние копии причем в десятке экземпляров.

[umka]
На сайте с 25.05.2008
Offline
456
#3

Читаем описание опции

Для значения "BACKUP" описывается причина такого поведения, как у вас.

Лог в помощь!
LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#4
'[umka:
;14447909']Читаем описание опции
Для значения "BACKUP" описывается причина такого поведения, как у вас.

Ну я так понимаю надо перевести в режим: FORCE

НО, так не должно быть, надо найти причину падения.

Это VPS, за состоянием дисков по идее следит хостер

Это по идеии. Опишите ему ситуацию, пусть проверит диск. Ну и mysql как и писал попробуйте обновить, вполне возможно какой-то баг.

[umka]
На сайте с 25.05.2008
Offline
456
#5
LEOnidUKG:
Ну я так понимаю надо перевести в режим: FORCE

Скорее, в режим "BACKUP,FORCE"

LEOnidUKG:
НО, так не должно быть, надо найти причину падения.

Причина в забивании диска бэкапами.

Причина их появления в том, что в табличку идёт запись в момент починки таблицы.

Metal Messiah
На сайте с 01.08.2010
Offline
152
#6

Нет, причина в том что table is marked as crashed or was not closed properly

как результат - MyISAM запускает Recovery (следствие 1), возможно в этот момент идет запись (второстепенная проблема) и файл бекапа не удаляется после завершения (следствие 2).

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

По проверке диска - создал тикет, гуляю до понедельника.

A
На сайте с 23.02.2008
Offline
84
#7

table is marked as crashed - это следствие.

А вот причина скорее всего - падение мускуля (signal 11 например - segmentation flow).

www.diphost.ru (https://www.diphost.ru) - надежный профессиональный хостинг. Администрирование серверов.
T
На сайте с 09.12.2011
Offline
55
tls
#8
Metal_Messiah:
периодически все данные с определенным значением индекса удаляются (до 1/10 строк от общего числа)

Сразу после этого не пробовали делать чек?

Himiko
На сайте с 28.08.2008
Offline
560
#9

Таблицы бьются по причине отсутствия места на диске.

После чего уже запускается проверка, но т.к. места нет и она не выполняется.

Решите проблему со свободным местом.

Профессиональное администрирование серверов (https://systemintegra.ru). Круглосуточно. Отзывы (/ru/forum/834230) Лицензии (http://clck.ru/Qhf5) ISPManager,VDSManager,Billmanager e.t.c. по низким ценам.
Metal Messiah
На сайте с 01.08.2010
Offline
152
#10

Свободного места на диске 3 GB, таблица занимает 300 Мб потолок.

С какого перепугу запускается проверка - остается только гадать.

Место заканчивается ТОЛЬКО после того как таких бекапов наберется десяток.

Веду записи. Файл tablename-160423061542.BAK появился 23.04 06:15

Я его удалил нафиг, сейчас вижу файл tablename-160423061542.BAK датой 23.04 10:15

Как видно, имя то же за 6 утра, а создан в 10 утра вчера. За сегодня пока ничего. Удалил. После того как удалил в прошлый раз всю пачку понял, что нужно было посмотреть на их даты и вычислить периодичность...

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий