БД MySQL и место на жёстком диске

Наиболее распространённые схемы хранения данных в MySQL это MyISAM и InnoDB.
По умолчанию в актуальной версии MySQL сервера на Ubuntu Linux используется InnoDB.
И в этом случае для хранения БД MySQL создаёт в соответствующей директории файлы с именами. начинающимися на ibdata*. С течением времени данный файл увеличивается в размерах настолько, что это может привести к заполнению всего свободного дискового пространства. Также, такая структура хранения данных затрудняет резервное копирование баз данных.

В некоторых случаях рекомендуется для InnoDB воспользоваться директивой innodb_file_per_table.
После этого структура хранения данных изменится - каждая таблица будет представлена в виде отдельного файла на жёстком диске.
Также будет решена проблема когда в случае удаления таблицы свободное дисковое пространство в системе не увеличивалось автоматически.

Если вам необходимо сменить схему размещения БД в InnoDB, то алгоритм представлен ниже:

1. Произвести резервное копирование всех существующих БД на сервере MySQL с использованием, например, mysqldump.
2. Добавить строку innodb_file_per_table в конфигурационный файл my.cnf
3. Перезапустить сервер MySQL.
4. Удалить все БД, использующие схему InnoDB.
5. Остановить службу MySQL.
6. Удалить файлы ibdata и ib_logfile[01].
7. Запустить службу MySQL, проверить журналы на наличие ошибок.
8. Восстановить БД из резервной копии, сделанной на первом шаге.

Добавить комментарий

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.