Spec-Zone .ru
спецификации, руководства, описания, API
|
Этот раздел описывает то, что можно сделать когда Ваш InnoDB
системная
табличная область исчерпывает комнату или когда Вы хотите изменить размер файлов журнала
отката.
Самый легкий способ увеличить размер InnoDB
системная табличная область должна
сконфигурировать это с начала авторасшириться. Определите autoextend
атрибут для
последнего файла данных в определении табличной области. Затем InnoDB
увеличивает
размер того файла автоматически в инкрементах 8 МБ, когда это исчерпывает пространство. Размер инкремента может
быть изменен, устанавливая значение innodb_autoextend_increment
системная переменная, которая измеряется в
мегабайтах.
Можно развернуть системную табличную область определенным количеством, добавляя другой файл данных:
Завершите работу сервера MySQL.
Если предыдущий последний файл данных определяется с помощью ключевого слова autoextend
, измените его определение, чтобы использовать фиксированный
размер, основанный на том, как большой это фактически выросло. Проверьте размер файла данных, округлите
в меньшую сторону это до самого близкого кратного числа 1024 × 1024 байтов (= 1 МБ), и определите этот
округленный размер явно в innodb_data_file_path
.
Добавьте новый файл данных до конца innodb_data_file_path
, дополнительно делая то авторасширение файла.
Только последний файл данных в innodb_data_file_path
может быть определен как авторасширение.
Запустите сервер MySQL снова.
Например, у этой табличной области есть только один авторасширяющийся файл данных 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
создает и инициализирует файл, когда Вы
перезапускаете сервер.
В настоящий момент невозможно удалить файл данных из системной табличной области. Чтобы уменьшить системный размер табличной области, используйте эту процедуру:
Используйте 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)
Остановите сервер.
Удалите все существующие файлы табличной области (*.ibd
), включая ibdata
и ib_log
файлы. Не забывайте удалять *.ibd
файлы
для таблиц располагались в базе данных MySQL.
Удалите любого .frm
файлы для InnoDB
таблицы.
Сконфигурируйте новую табличную область.
Перезапустите сервер.
Импортируйте файлы дампа.
Если Ваши базы данных только используют InnoDB
механизм, может быть
более просто вывести все базы данных, остановить сервер, удалить
все базы данных и InnoDB
файлы журнала, перезапустите сервер, и импортируйте
файлы дампа.
Изменить число или размер InnoDB
файлы журнала, выполните следующие шаги:
Остановите сервер MySQL и удостоверьтесь, что он завершает работу без ошибок.
Редактирование my.cnf
изменить конфигурацию файла
журнала. Чтобы изменить размер файла журнала, сконфигурировать innodb_log_file_size
. Чтобы увеличить число файлов журнала,
сконфигурировать innodb_log_files_in_group
.
Запустите сервер MySQL снова.
Если InnoDB
обнаруживает что innodb_log_file_size
отличается от размера файла журнала отката, он запишет
контрольную точку журнала, закроет и удалит старые файлы журнала, создаст новые файлы журнала в требуемом
размере, и откроет новые файлы журнала.