2009-05-27 2 views
5

У меня есть база данных mysql, настроенная с движком хранения innoDB. Я бросил базу данных (drop database <dbname>) , но дисковое пространство не было освобождено.mysql: Как освободить место (innodb)

В /var/lib/mysql есть некоторые «большие» файлы называются ib_logfile0, ib_logfile1 и ibdata1 где последний действительно большой. Я настаиваю на том, что эти файлы на самом деле являются исходной БД.

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

Разъяснение
Я хочу бросить полную базу данных и освободить дисковое пространство. Я не хочу выполнять какое-либо восстановление.

Заранее спасибо.

+0

Это вопрос для serverfault.com – soulmerge

ответ

7

К сожалению, невозможно ограничить эти файлы после того, как пространство было выделено. Однако MySQL снова использует пространство при добавлении новых данных, но файл не будет сокращаться.

Чтобы уменьшить размер, вам необходимо сбросить базы данных, а затем восстановить их снова.

Вы также можете сделать следующее:

Установите innodb_file_per_table в вашем конфигурационном файле, который будет создавать отдельный файл для каждой таблицы. Это позволит вам удалить эти файлы после сброса базы данных и также позволит вам использовать команду OPTIMIZE TABLE для восстановления файлов ibd, если вы сокращаете данные в определенной таблице.

+0

Спасибо, что ответили. BTW, которые являются недостатками создания одного отдельного файла в таблице (если есть)? Я потерял производительность? – Luixv

+0

Я не могу придумать недостаток использования параметра innodb_file_per_table с верхней части головы, иначе он создаст еще много файлов, которые могут затруднить управление ими. Но использование опции, безусловно, имеет несколько преимуществ, таких как меньшая фрагментация, способность сокращать отдельные файлы таблицы, и если у вас есть файловая система с лимитом 2 ГБ (очень редко, в наши дни), то теперь ограничение применяется вместо таблицы от всего этого. –

+0

Спасибо за ответ. Я задал вам ответ как «принятый», – Luixv

0

Одним из решений является сброс, а затем восстановление.

Смежные вопросы