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
).