Spec-Zone .ru
спецификации, руководства, описания, API
|
Можно теперь запросить InnoDB
таблицы, где каталог данных MySQL находится на
носителях только для чтения, включая --innodb-read-only
параметр конфигурации при запуске сервера.
Чтобы подготовить экземпляр к работе только для чтения, удостоверьтесь, что вся необходимая информация сбрасывается к файлам данных прежде, чем
сохранить ее на носителе только для чтения. Выполните сервер с отключенной буферизацией изменения (innodb_change_buffering=0
)
и сделайте медленное завершение
работы.
Чтобы включить режиму только для чтения для всего экземпляра MySQL, определите следующие параметры конфигурации при запуске сервера:
Если экземпляр находится на носителях только для чтения, таких как DVD или CD, или
/var
каталог не является writeable всеми: --pid-file=
и path_on_writeable_media
--event-scheduler=disabled
Этот режим работы является соответствующим в ситуациях, таких как:
Распределение приложения MySQL, или ряда данных MySQL, на носителе только для чтения, таком как DVD или CD.
Многократные экземпляры MySQL, запрашивающие тот же самый каталог данных одновременно, обычно в конфигурации организации хранилищ данных. Вы могли бы использовать этот метод, чтобы избежать узких мест, которые могут произойти с в большой степени загруженным экземпляром MySQL, или Вы могли бы использовать различные параметры конфигурации для различных экземпляров, чтобы настроить каждого для определенных видов запросов.
Запросы данных, которые были помещены в состояние только для чтения для безопасности или причин целостности данных, таких как заархивированные резервные данные.
Эта функция, главным образом, предназначается для гибкости в распределении и развертывании, а не необработанной производительности, основанной на аспекте только для чтения. См. Раздел 14.2.4.2.3, "Оптимизация для Транзакций Только для чтения" для способов настроить производительность запросов только для чтения, которые не требуют создания всего сервера, только для чтения.
Когда сервер выполняется в режиме только для чтения через --innodb-read-only
опция, бесспорная InnoDB
функции
и компоненты уменьшаются или выключаются полностью:
Никакая буферизация изменения не делается, в
особенности никакие слияния от буфера изменения. Чтобы удостовериться буфер изменения пуст, когда Вы
готовите экземпляр к работе только для чтения, отключаете буферизацию изменения (innodb_change_buffering=0
) и сделайте медленное
завершение работы сначала.
Нет никакой фазы восстановления катастрофического отказа при запуске. Экземпляр, должно быть, выполнил медленное завершение работы прежде, чем быть помещенным в состояние только для чтения.
Поскольку журнал
отката не используется в работе только для чтения, можно установить innodb_log_file_size
к самому маленькому размеру, возможному (1 Мбайт)
прежде, чем сделать экземпляр, только для чтения.
Все фоновые потоки кроме потоков чтения ввода-вывода выключаются. Как следствие экземпляр только для чтения не может встретиться ни с какими мертвыми блокировками.
Информация о мертвых блокировках, выводе монитора, и так далее не пишется временным
файлам. Как следствие, SHOW ENGINE INNODB
STATUS
не производит вывода.
Если сервер MySQL запускается с --innodb-read-only
но каталог данных находится все еще на writeable
носителях, пользователь root может все еще выполнить операции DCL такой как GRANT
и REVOKE
.
Изменения к настройкам параметра конфигурации, которые обычно изменяли бы поведение операций записи, не имейте никакого эффекта, когда сервер находится в режиме только для чтения.
MVCC, обрабатывающий, чтобы осуществить уровни изоляции, выключается. Все чтение запросов последняя версия записи, потому что обновление и удаляет, не возможно.
Журнал
отмены не используется. Отключите любые настройки для innodb_undo_tablespaces
и innodb_undo_directory
параметры конфигурации.