LINUX.ORG.RU
ФорумAdmin

Еще раз о включение опции innodb_file_per_table

 


0

1

Сразу после установки mariaDB  еще до создания базы zabbix я хочу включить параметр innodb_per_table. Для включения параметра  innodb_per_table в интернете предлагают 3 варианта:  

a) сделать бекап баз (в нашем случае базы zabbix еще нет) , удалить все базы кроме information_schema и mysql (в нашем случае надо удалить только базу performance_schema) ,остановить mysql, удалить файлы ib_logfile* и ibdata1 ,установить параметр innodb_per_table=1,  запустить mysql, запустить mysql_upgrade для генерации новой базы performance_schema

б) сделать бекап базы, удалить все базы кроме information_schema, performance_schema и mysql (в нашем случае ни одной не надо удалять), удалить файлы ib_logfile* и ibdata1, установить параметр innodb_per_table=1,  запустить mysql

в) сделать бекап базы, удалить все базы, удалить файлы ib_logfile* и ibdata1, установить параметр innodb_per_table=1,  запустить mysql.

Может ли иметь значение  по какому варианту действовать? Скажется ли это на производительности базы данных?

Предлагаю не выполнять ни один из указанных пунктов, просто добавьте эту опцию в конфиг и перезапустите mysql - все новые создаваемые innodb-таблицы будут создаваться в виде отдельных ibd-файлов.
Даже если бы у вас уже были какие-то базы созданные ранее, можно было бы включить этот параметр, и сделать дамп/заливку для баз - данные innodb-таблиц начали б храниться в отдельных файлах.
Делать то, что здесь написано, стоит только, если нужно избавиться от гигантского ibdata.

spirit ★★★★★
()
Ответ на: комментарий от spirit

Спасибо за ответ! Одно уточнение. Если просто включить эту опцию и запустить mysql, то он не запустится. Выдает ошибку.Надо предварительно удалить файлы ib_logfile* и ibdata1. Это нормально? Так и должно быть?

anonymous
()
Ответ на: комментарий от anonymous

Интересно, обычно при изменении этого параметра mysql всегда запускался без проблем. Какая ошибка выдаётся ? Может там ещё какие-то параметры менялись (например, размер ib_logfile*) ?

spirit ★★★★★
()
Ответ на: комментарий от spirit

В конфиге стоят такие параметры:

\\

innodb_data_home_dir = /var/lib/mysql/data innodb_data_file_path = ibdata1:128M;ibdata2:128M:autoextend:max:4096M innodb_file_per_table = 1 innodb_status_file = 1 innodb_additional_mem_pool_size = 128M innodb_buffer_pool_size = 14G innodb_flush_method = O_DIRECT innodb_io_capacity = 2000 innodb_flush_log_at_trx_commit = 2 innodb_support_xa = 0 innodb_log_file_size = 512M innodb_log_buffer_size = 128M

\\

anonymous
()

С версии 10.3 вроде бы это значение стоит в 1 изначально.

Radjah ★★★★★
()
Ответ на: комментарий от spirit

При запуске mysql с параметрами в файле которые я привел выдается следующая ошибка:

The innodb_system data file ‘./ibdata1’ is of a different size 768 pages than the 8192 pages specified in the .cnf file.

anonymous
()

Есть 4 вариант

Заранее подготовить конфиг

Сделать бэкап всех баз

Остановить mysql

Удалить содержимое /var/lib/mysql

Стартануть mysql, создастся правильная и чистая структура всего без ошибок

Настроить права, залить бэкап

ism ★★★
()
Последнее исправление: ism (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.