7.5 Таблицы BDB или Berkeley_DB

7.5.1 Обзор таблиц BDB

Поддержка для таблиц BDB включена в исходники MySQL начиная с версии 3.23.34 и активизирована в двоичной версии MySQL-Max.

BerkeleyDB, доступные по адресу http://www.sleepycat.com обеспечивают MySQL транзакционным драйвером таблицы. Используя BerkeleyDB, Ваши таблицы могут иметь большую возможность выживания после сбоев, а также обеспечивать COMMIT и ROLLBACK на транзакциях. В дистрибутив исходников MySQL входит комплект исходников BDB с несколькими патчами для обеспечения работы с MySQL. Непропатченную версию BDB использовать вместе с MySQL нельзя.

7.5.2 Установка BDB

Если Вы загрузили двоичную версию MySQL, которая включает поддержку для BerkeleyDB, надо просто следовать командам для установки двоичной версии MySQL. Подробности в разделе "4.7.5 mysqld-max, расширенный сервер mysqld".

Чтобы компилировать MySQL с поддержкой Berkeley DB, загрузите MySQL Version 3.23.34 или более новую и сконфигурируйте MySQL с опцией --with-berkeley-db. Подробности в разделе "2.3 Установка исходников MySQL".

cd /path/to/source/of/mysql-3.23.34
./configure --with-berkeley-db

Пожалуйста, обратитесь к руководству, предоставленному дистрибутивом BDB для получения более подробной информации.

Даже при том, что Berkeley DB сам по себе очень проверен и надежен, интерфейс с MySQL все еще рассматривается в качестве бета-версии. Но он активно улучшается и отлаживается.

7.5.3 Опции запуска BDB

Если Вы работаете с AUTOCOMMIT=0, изменения в таблицах BDB не будут восприниматься, пока Вы не выполните COMMIT. Вместо этого можно выполнить ROLLBACK, чтобы забыть Ваши изменения.

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

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

ОпцияЧто она делает
--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 в многопроцессном режиме (не используйте DB_PRIVATE при установке Berkeley DB).
--bdb-tmpdir=directoryИмя временного файла Berkeley DB.
--skip-bdbНе использовать поддержку berkeley db.
-O bdb_max_lock=1000Установить максимальное число допустимых блокировок. Подробности в разделе "4.5.5.4 Синтаксис SHOW VARIABLES ".

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

Обычно Вы должны запустить mysqld без опции --bdb-no-recover, если Вы предполагаете использовать BDB-таблицы. Это, однако, может создавать Вам проблемы, когда Вы пробуете запускать mysqld, если BDB журналы разрушены.

С помощью опции 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, если Вы используете большие транзакции.

7.5.4 Характеристики таблиц BDB

7.5.5 Некоторые вещи, которые планируется реализовать для BDB в ближайшем будущем

7.5.6 Операционные системы, поддерживающие таблицы типа BDB

Если Вы, сформировав MySQL с поддержкой для BDB-таблиц, получаете следующую ошибку в журнале, когда Вы запускаете mysqld:

bdb: architecture lacks fast mutexes: applications cannot be threaded
Can't init dtabases

Это означает, что таблицы BDB пока не поддержаны для Вашей архитектуры. В этом случае Вы должны восстановить MySQL без поддержки таблиц BDB.

ОБРАТИТЕ ВНИМАНИЕ: следующий список не полон, разработчики его модифицируют, поскольку получают большое количество информации о проблемах.

На сегодняшний день таблицы BDB работают под следующими ОС:

На сегодняшний день таблицы BDB НЕ работают под следующими ОС:

7.5.7 Ошибки, которые Вы можете получать, когда используете BDB-таблицы

Hosted by uCoz