Spec-Zone .ru
спецификации, руководства, описания, API

14.2.2.2. Добавление, Удаление, или Изменение размеров InnoDB Данные и LogFiles

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

Самый легкий способ увеличить размер InnoDB системная табличная область должна сконфигурировать это с начала авторасшириться. Определите autoextend атрибут для последнего файла данных в определении табличной области. Затем InnoDB увеличивает размер того файла автоматически в инкрементах 8 МБ, когда это исчерпывает пространство. Размер инкремента может быть изменен, устанавливая значение innodb_autoextend_increment системная переменная, которая измеряется в мегабайтах.

Можно развернуть системную табличную область определенным количеством, добавляя другой файл данных:

Например, у этой табличной области есть только один авторасширяющийся файл данных ibdata1:

innodb_data_home_dir =innodb_data_file_path = /ibdata/ibdata1:10M:autoextend

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

innodb_data_home_dir =innodb_data_file_path = /ibdata/ibdata1:988M;/disk2/ibdata2:50M:autoextend

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

В настоящий момент невозможно удалить файл данных из системной табличной области. Чтобы уменьшить системный размер табличной области, используйте эту процедуру:

  1. Используйте mysqldump, чтобы вывести все Ваш InnoDB таблицы, включая InnoDB таблицы располагались в базе данных MySQL. С 5.6, есть пять InnoDB таблицы включали в базу данных MySQL:

    mysql> select table_name from information_schema.tables where table_schema='mysql' and engine='InnoDB';+----------------------+| table_name           |+----------------------+| innodb_index_stats   || innodb_table_stats   || slave_master_info    || slave_relay_log_info || slave_worker_info    |+----------------------+5 rows in set (0.00 sec)      
  2. Остановите сервер.

  3. Удалите все существующие файлы табличной области (*.ibd), включая ibdata и ib_log файлы. Не забывайте удалять *.ibd файлы для таблиц располагались в базе данных MySQL.

  4. Удалите любого .frm файлы для InnoDB таблицы.

  5. Сконфигурируйте новую табличную область.

  6. Перезапустите сервер.

  7. Импортируйте файлы дампа.

Отметить

Если Ваши базы данных только используют InnoDB механизм, может быть более просто вывести все базы данных, остановить сервер, удалить все базы данных и InnoDB файлы журнала, перезапустите сервер, и импортируйте файлы дампа.

Изменение Числа или Размера Файлов журнала InnoDB

Изменить число или размер InnoDB файлы журнала, выполните следующие шаги:

  1. Остановите сервер MySQL и удостоверьтесь, что он завершает работу без ошибок.

  2. Редактирование my.cnf изменить конфигурацию файла журнала. Чтобы изменить размер файла журнала, сконфигурировать innodb_log_file_size. Чтобы увеличить число файлов журнала, сконфигурировать innodb_log_files_in_group.

  3. Запустите сервер MySQL снова.

Если InnoDB обнаруживает что innodb_log_file_size отличается от размера файла журнала отката, он запишет контрольную точку журнала, закроет и удалит старые файлы журнала, создаст новые файлы журнала в требуемом размере, и откроет новые файлы журнала.