@Svobolad

Как уменьшить размера БД MySQL (ibdata1 )?

Добрый день,

Интересует вопрос, как можно уменьшить размер ibdata1 при использовании движка InnoDB MySQL без использования innodb_file_per_table (БД объемна и обслуживает критический сервис, который нельзя останавливать).
В БД имееться много ненужных таблиц которые хотелось бы удалить, но учитывая специфику InnoDB, место на HDD это не освободит.
  • Вопрос задан
  • 2921 просмотр
Пригласить эксперта
Ответы на вопрос 2
@BorisKorobkov Куратор тега MySQL
Web developer
Комментировать
@gaidukav
-1. При условии, что на данном MySQL сервере нет других баз, иначе и с ними ТОЖЕ нужно будет делать следующие операции.
0. Удалить все ненужные данные и таблицы.
1. Сконвертировать все таблицы в формат MyISAM. Надо понимать - во время конвертации таблица блокируется.
2. остановить сервер
3. удалить файлы (для MariaDB):
aria_log.00000001
aria_log_control
ib_logfile0
ib_logfile1
ibdata1
4. запустить сервер, удалённые файлы будут автоматически созданы с дефолтными размерами
5. провести обратную конвертацию таблиц в InnoDB.
--
На девелоперском сервере с копией боевой базы эту операцию проводил многократно,
уменьшал файл "ibdata1" с 6GB до 1.5GB
Что произойдет с процедурами и триггерами - наверное помрут, не пробовал, у меня их нет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы