MySQL и тонкости конфигурации InnoDB.

Приходилось ли Вам встречаться с базами данных размером 100G и более? Если да, то Вы наверняка сталкивались с проблемами бэкапа у таких баз, можно ли снять дамп без тормозов и остановки БД? Можно!
Ниже показан рабочий способ:

mysqldump --routines --triggers --no-autocommit --extended-insert --master-data --single-transaction --log-error=./mysqldump.err -B MY_DATABASE | gzip > ./MY_DATABASE.sql.gz

База InnoDB размером 165G под нагрузкой без остановки и тормозов :)
Далее расскажу Вам несколько тонкостей оптимизации InnoDB, которые будут полезны и дадут прирост производительности в умелых руках!

Тонкости конфигурации InnoDB:

innodb_additional_mem_pool_size = 20M
innodb_buffer_pool_size = 8G
innodb_data_file_path = ibdata1:10M:auto extend

Данное значение для UNIX систем не рекомендуется менять: http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#sysvar_innodb_file_io_threads

innodb_file_io_threads = 4

This variable should be set greater than 0 only in an emergency situation when you want to dump your tables from a corrupt database!

innodb_force_recovery=0

Должно совпадать с thread_concurrency; число одновременно работающих потоков, рекомендуется ставить 2 * количество CPU + количество дисков.

innodb_thread_concurrency = 20
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 16M

Количество файлов журналов транзакций в группе журналов; InnoDB производит запись в файлы по круговому способу; увеличение ускоряет запись но тормозит восстановление информации в случае сбоя. Общий #размер регистрационных журналов определяется произведением этих двух значений и не может превышать 4GB.

innodb_log_file_size = 512M
innodb_log_files_in_group = 4
innodb_max_dirty_pages_pct = 90

Время простоя (в секундах), на протяжении которого транзакция InnoDB может ожидать прекращения блокировки прежде, чем будет произведен откат.

innodb_lock_wait_timeout = 120

Успехов в работе!

Related posts:

  1. InnoDB: Unable to lock ./ibdata1, error: 11 Ошибка выглядит следующим образом: Чтобы исправить ошибку, делаем следующие шаги:...
  2. Mysql – создание бд и заведение пользователей Создадим БД с кодировкой UTF8: или с кодировкой CP1251: Предоставим...
  3. Как включить протоколирование DEADLOCK в MySQL? В основном, я всем советую использовать Percona вместо MySQL, это...
  4. MySQLTuner :: High-performance MySQL optimization script Полезный скрипт для проверки производительности вашей СУБД MySql. Внимание, перед...
  5. Включение query cache в MySQL – улучшаем производительность Если выхотите оптимизировать скорость ответа вашего MySQL сервера, тогда вам...
You can leave a response, or trackback from your own site.

Оставить комментарий

*