
У меня проблема с MySQL на FreeBSD.
Он создает множество двоичных файлов объемом 1 ГБ каждые 20 минут и быстро заполняет свободное место на диске.
-rw-rw---- 1 mysql mysql 1073741982 2013-09-14 18:26 mysql-bin.000174
-rw-rw---- 1 mysql mysql 1073741890 2013-09-14 18:42 mysql-bin.000175
-rw-rw---- 1 mysql mysql 1073741988 2013-09-14 18:59 mysql-bin.000176
-rw-rw---- 1 mysql mysql 1073741964 2013-09-14 19:15 mysql-bin.000177
-rw-rw---- 1 mysql mysql 1073741974 2013-09-14 19:29 mysql-bin.000178
-rw-rw---- 1 mysql mysql 1073741923 2013-09-14 19:46 mysql-bin.000179
-rw-rw---- 1 mysql mysql 577143852 2013-09-14 19:59 mysql-bin.000180
Это происходит без какой-либо интернет-активности со стороны пользователей. У меня max_binlog_file=526870912
в my.cnf
Я пытался сделать
freebsd# mysql -u root -p
mysql> flush logs;
mysql> flush master;
В результате все файлы mysql-bin удаляются, а отсчет начинается с mysql-bin.000001.
Затем я shutdown -r now
запускаю FreeBSD (mysql_enable="YES" в rc.conf). MySQL работает, но снова начинает создавать 1 ГБ bin-файлы каждые 20 минут.
ПРИЛОЖЕНИЕ 1
Mysql работает для aimsniff и netams. Я остановил netams. И mysql перестал создавать файлы "mysql-bin." Так что проблема, по-видимому, между mysql и netams. Но я пока не могу найти причину.
При попытке прочитать файл mysql-bin., созданный до текущего, есть несколько строк команды «mysqlbinlog mysql-bin.000179 | less».
'fw-sher1# mysqlbinlog mysql-bin.000179 | меньше
'/!40019 SET @@session.max_insert_delayed_threads=0/;
'/!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0/; 'РАЗДЕЛИТЕЛЬ /!/;
'# в 4
'#130915 11:27:20 идентификатор сервера 1 end_log_pos 98 Начало: binlog v 4, сервер v 5.0.81-log создан 130915 11:27:20
'Предупреждение: игнорирование Append_block, так как нет события Create_file для file_id: 1417
'Предупреждение: игнорирование Append_block, так как нет события Create_file для file_id: 1417
'Предупреждение:
игнорирование Append_block, так как нет события Create_file для file_id: 1417
'# в 98
'#130915 11:27:19 идентификатор сервера 1 end_log_pos 8313
'#Append_block: file_id: 1417 block_len: 8192
'# в 8313
'#130915 11:27:19 идентификатор сервера 1 end_log_pos 16528
'#Append_block: file_id: 1417 block_len: 8192
'# в 16528
'#130915 11:27:19 идентификатор сервера 1 end_log_pos 24743
'#Append_block: file_id: 1417 block_len: 8192
'# в 24743
'#130915 11:27:19 идентификатор сервера 1 end_log_pos 32958
'#Append_block: file_id: 1417 block_len: 8192
'# в 32958
'#130915 11:27:19 идентификатор сервера 1 end_log_pos 41173
'#Append_block: file_id: 1417 block_len: 8192
'# at 41173
'#130915 11:27:19 идентификатор сервера 1 end_log_pos 82248
'#Append_block:Предупреждение: игнорирование Append_block, так как нет события Create_file для file_id: 1417
'Предупреждение: игнорирование Append_block, так как нет события Create_file для file_id: 1417
'Предупреждение: игнорирование Append_block, так как нет события Create_file для file_id: 1417
И так далее и тому подобное. Для меня это не имеет никакого смысла.
Что говорит netams.log
Файл: netams.log Строка 1006126 Столбец 0 180576689 байт 84%
13.09.2013 23:59:52.8916 источник данных:1 [ПРЕДУПРЕЖДЕНИЕ]: Получены следующие ОШИБКИ от MySQL: уровень = Ошибка, код = 126, сообщение = Неверный ключевой файл для таблицы './netams/monitor.MYI'; попробуйте исправить его.
13.09.2013 23:59:52.8916 источник данных:1 [ПРЕДУПРЕЖДЕНИЕ]: Получены следующие ОШИБКИ от MySQL: уровень = Ошибка, код = 126, сообщение = Неверный ключевой файл для таблицы './netams/monitor.MYI'; попробуйте исправить его.
13.09.2013 23:59:52.8919 источник данных:1 [ПРЕДУПРЕЖДЕНИЕ]: Не удалось загрузить данные в SQL для попытки монитора "debug storage"
14.09.2013 00:01:20.0461 источник данных:1 [ПРЕДУПРЕЖДЕНИЕ]: Загрузка данных SQL: Неверный ключевой файл для таблицы './netams/monitor.MYI'; попробуйте исправить его
14.09.2013 00:01:20.0464 источник данных:1 [ПРЕДУПРЕЖДЕНИЕ]: Получены следующие ПРЕДУПРЕЖДЕНИЯ от MySQL: уровень = Предупреждение, код = 1262, сообщение = Строка 243 была усечена; она содержала больше данных, чем входных столбцов.
14.09.2013 00:01:20.0464 data-source:1 [WARN]: Получены следующие ПРЕДУПРЕЖДЕНИЯ от MySQL: уровень = Предупреждение, код = 1262, сообщение = Строка 265 была усечена; она содержала больше данных, чем входных столбцов.
решение1
14.09.2013 00:01:20.0461 data-source:1 [WARN]: SQL Load data: Incorrect key file for table './netams/monitor.MYI'; try to repair it
14.09.2013 00:01:20.0464 data-source:1 [WARN]: Got the following WARNINGS from MySQL: level = Warning, code = 1262, message = Row 243 was truncated; it contained more data than there were input columns.
14.09.2013 00:01:20.0464 data-source:1 [WARN]: Got the following WARNINGS from MySQL: level = Warning, code = 1262, message = Row 265 was truncated; it contained more data than there were input columns.
Эта ошибка указывает на то, что в базе данных netams есть поврежденные таблицы. Обратите внимание на раздел, в котором говорится: "Неверный ключевой файл для таблицы «./netams/monitor.MYI»;попробуй починить его".
Восстановление таблиц обычно можно выполнить несколькими командами. Восстановление таблицы иногда может привести к потере данных, поэтому сначала сделайте резервную копию таблиц. Восстановление может занять некоторое время в зависимости от размера базы данных — иногда может показаться, что восстановление зависло на 10–20 минут, но на самом деле оно тихо сканирует поврежденные строки. Сделайте это во втором окне, чтобы вы могли следить за ним, и будьте терпеливы.
Советы по восстановлению таблиц можно найти в руководстве MySQL: