Обзор таблиц BDB
Поддержка таблиц BDB включена в дистрибутив исходного кода MySQL начиная с версии 3.23.34 и в бинарную версию MySQL-Max.
BerkeleyDB, доступный на веб-сайте http://www.sleepycat.com/, обеспечивает транзакционный обработчик таблиц для MySQL. Использование BerkeleyDB повышает для ваших таблиц шансы уцелеть после сбоев, а также предоставляет возможность осуществлять операции COMMIT и ROLLBACK для транзакций. Дистрибутив исходного кода MySQL поставляется с дистрибутивом BDB, содержащим несколько небольших исправлений, которые позволяют устранить определенные проблемы при работе с MySQL. Неисправленные версии BDB при работе с MySQL использовать нельзя.
В целях поддержания высокого уровня и качества интерфейса MySQL/BDB компания MySQL AB тесно сотрудничает с компанией Sleepycat.
Что касается поддержки таблиц BDB, то мы взяли на себя обязательство оказывать помощь нашим пользователям в выявлении проблем и создании воспроизводимых контрольных примеров для любых ошибок, возникающих при использовании таблиц BDB. Все такие контрольные примеры направляются в компанию Sleepycat, которая, в свою очередь, помогает нам выявлять и исправлять ошибки. Поскольку эта операция состоит из двух этапов, решение проблем с таблицами BDB может отнять у нас больше времени, чем устранение ошибок других обработчиков таблиц. Тем не менее, поскольку помимо MySQL код BerkeleyDB использовался с большим количеством других приложений, мы не думаем, что с ним возникнут серьезные проблемы ( см. раздел Поддержка).
Установка BDB
Если вы загрузили бинарную версию MySQL, которая включает поддержку BerkeleyDB, просто выполните инструкции по установке бинарной версии MySQL (см. разделы Установка бинарного дистрибутива MySQL и mysqld-max , расширенный сервер mysqld ).
Чтобы произвести компиляцию MySQL с поддержкой Berkeley DB, загрузите MySQL версии 3.23.34 или выше и выполните настройку MySQL при помощи параметра --with-berkeley-db (смю раздел Установка исходного дистрибутива MySQL).
cd /path/to/source/of/mysql-3.23.34 ./configure --with-berkeley-db
Чтобы получить самую последнюю информацию, обращайтесь к руководству, которое поставляется с дистрибутивом BDB.
Хотя Berkeley DB детально протестирован и надежен, BDB-интерфейс MySQL пока еще является бета-версией. Мы совершенствуем и оптимизируем его, чтобы в скором времени добиться стабильной работы.
Параметры запуска BDB
Если запуск производился с параметром AUTOCOMMIT=0 , то изменения, сделанные в в таблицах BDB, не вносятся, пока не будет выполнена команда COMMIT . Кроме операции фиксации, можно запустить команду ROLLBACK , чтобы отменить изменения (см. раздел Синтаксис команд 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 | Задает максимальное количество возможных блокировок (см. раздел SHOW VARIABLES ). |
Если используется параметр --skip-bdb , MySQL не будет инициализировать библиотеку Berkeley DB, что позволит сэкономить большое количество памяти. Разумеется, после включения этого параметра нельзя пользоваться таблицами BDB.
Обычно если предполагается использовать таблицы BDB, следует запускать mysqld без параметра --bdb-no-recover . Однако если файлы журналов BDB повреждены, то при попытке запуска mysqld могут возникнуть проблемы (см. раздел Проблемы при запуске сервера 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 , если используются большие многострочные транзакции ( см. раздел Синтаксис команд BEGIN/COMMIT/ROLLBACK ).
1 2
8 8 8
| |