SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 22.12.2010 13:46:46

Ямаец
Участник
Зарегистрирован: 22.12.2010
Сообщений: 2

Проблема с MySQL

Добрый день! Проблема в следующем:
На сервере (fedora) стоит MySQL. Одна из ее баз очень сильно разрослась и было принято решение почистить ее. Перед очищением базы места оставалось 9%.
А после запуска очистки с помощью команды DELETE FROM 'бла-бла';
процесс после минут 20 был прерван ошибкой: ERROR 1114 (HY000): The table 'бла-бла' is full
После чего место на диске стало занято на 100%.
Я так понимаю, что ошибка и возникла из-за того, что место закончилось.
Но почему это произошло не смог понять... ведь место должно было освободиться.
Подскажите пожалуйста с чем это может быть связано?

Неактивен

 

#2 22.12.2010 14:34:41

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Проблема с MySQL

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

Неактивен

 

#3 22.12.2010 20:54:13

Ямаец
Участник
Зарегистрирован: 22.12.2010
Сообщений: 2

Re: Проблема с MySQL

Не смог найти эти копии... Не подскажите, где их искать, для удаления? И как отключить их создание при дальнешей очистке?

Неактивен

 

#4 23.12.2010 15:30:32

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Проблема с MySQL

Они внутри одного и того же файла, Вы не сможете их «найти». Можете
Если разросся файл ibdata1, то его уменьшить уже не удастся. Если включен
innodb_file_per_table, то может помочь ALTER TABLE tablename ENGINE=InnoDB,
который пересоздаст файлики с таблицами (но на время создания нужно
место на диске, куда будет пересоздана таблица.

Если есть место в другом разделе, можете:
1. Остановить MySQL.
2. Перенести какой-то из больших файлов в другой раздел.
3. Поставить символическую ссылку на старое место файла.
4. Запустить MySQL и почистить.

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

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson