7.6.3 Параметры запуска BDB

Если запуск производился с параметром AUTOCOMMIT=0, то изменения, сделанные в в таблицах BDB, не вносятся, пока не будет выполнена команда COMMIT. Кроме операции фиксации, можно запустить команду ROLLBACK, чтобы отменить изменения (see section 6.7.1 Синтаксис команд BEGIN/COMMIT/ROLLBACK).

Если вы работаете с параметром AUTOCOMMIT=1 (значение по умолчанию), внесенные изменения будут фиксироваться немедленно. Можно выполнить расширенную транзакцию при помощи команды SQL BEGIN WORK, после которой изменения не будут зафиксированы до запуска команды COMMIT (или будут отменены при помощи команды ROLLBACK).

Чтобы изменить параметры таблиц BDB, можно воспользоваться следующими опциями mysqld:

Параметр Описание
--bdb-home=directory Базовый каталог для таблиц BDB. Это должен быть тот же каталог, что и для --datadir.
--bdb-lock-detect=# Обнаружение блокировки Berkeley; одно из значений DEFAULT, OLDEST, RANDOM или YOUNGEST
--bdb-logdir=directory Каталог файла журнала Berkeley DB
--bdb-no-sync Отмена синхронной записи журналов на диск
--bdb-no-recover Отмена запуска Berkeley DB в режиме восстановления
--bdb-shared-data Запуск Berkeley DB в режиме параллельной обработки (при инициализации Berkeley DB не следует использовать DB_PRIVATE)
--bdb-tmpdir=directory Имя временного файла Berkeley DB
--skip-bdb Отмена использования berkeley db
-O bdb_max_lock=1000 Задает максимальное количество возможных блокировок (see section 4.5.6.4 SHOW VARIABLES).

Если используется параметр --skip-bdb, MySQL не будет инициализировать библиотеку Berkeley DB, что позволит сэкономить большое количество памяти. Разумеется, после включения этого параметра нельзя пользоваться таблицами BDB.

Обычно если предполагается использовать таблицы BDB, следует запускать mysqld без параметра --bdb-no-recover. Однако если файлы журналов BDB повреждены, то при попытке запуска mysqld могут возникнуть проблемы (see section 2.4.2 Проблемы при запуске сервера MySQL).

При помощи параметра bdb_max_lock задается максимальное количество блокировок (10000 по умолчанию), которые могут быть установлены на таблицу BDB. Это значение необходимо увеличить, если возникают ошибки bdb: Lock table is out of available locks или Got error 12 from ... при проведении длинных транзакций или когда mysqld должен просмотреть много строк, чтобы произвести необходимые вычисления для запроса.

Можно также изменить binlog_cache_size и max_binlog_cache_size, если используются большие многострочные транзакции (see section 6.7.1 Синтаксис команд BEGIN/COMMIT/ROLLBACK).