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 5.6.7 или ранее, используйте
следующие инструкции. Процедура, чтобы использовать зависит от значения innodb_fast_shutdown
, который определяет, принести ли системную табличную
область, полностью актуальную перед работой завершения работы:
Если innodb_fast_shutdown
не устанавливается в 2: Остановите сервер MySQL и
удостоверьтесь, что он завершает работу без ошибок, чтобы гарантировать, что нет никакой информации для
выдающихся транзакций в журнале отката. Скопируйте старые файлы журнала отката в безопасное место, в
случае, если что-то пошло не так, как надо во время завершения работы, и Вы нуждаетесь в них, чтобы
восстановить табличную область. Удалите старые файлы журнала из каталога файла журнала, редактирования
my.cnf
изменить конфигурацию файла журнала, и запустить сервер MySQL
снова. mysqld видит что нет InnoDB
файлы журнала существуют при запуске, и создает новые.
Если innodb_fast_shutdown
устанавливается в 2: Набор innodb_fast_shutdown
к 1:
mysql> SET GLOBAL innodb_fast_shutdown =
1;
Затем следуйте инструкциям в предыдущем элементе.
С MySQL 5.6.8, innodb_fast_shutdown
установка больше не релевантна, изменяя число или размер InnoDB
файлы журнала.
Дополнительно, Вы больше не требуетесь, удаляют старые файлы журнала, хотя можно все еще хотеть скопировать
старые файлы журнала в безопасное место как резервное копирование. Изменить число или размер InnoDB
файлы журнала, выполните следующие шаги:
Остановите сервер MySQL и удостоверьтесь, что он завершает работу без ошибок.
Редактирование my.cnf
изменить конфигурацию файла
журнала. Чтобы изменить размер файла журнала, сконфигурировать innodb_log_file_size
. Чтобы увеличить число файлов журнала,
сконфигурировать innodb_log_files_in_group
.
Запустите сервер MySQL снова.
Если InnoDB
обнаруживает что innodb_log_file_size
отличается от размера файла журнала отката, он запишет
контрольную точку журнала, закроет и удалит старые файлы журнала, создаст новые файлы журнала в требуемом
размере, и откроет новые файлы журнала.