Spec-Zone.ru › MariaDB

Установка TokuDB

TokuDB устарел по данным его основного разработчика. Он отключён в MariaDB 10.5 и удалён в MariaDB 10.6 — MDEV-19780. Рекомендуется использовать MyRocks в качестве пути миграции.

Обратите внимание, что ha_tokudb не включён в бинарные файлы, скомпилированные с «старой» glibc. Бинарные файлы, скомпилированные с glibc 2.14+, его содержат.

TokuDB доступен в следующих дистрибутивах:

Дистрибутив Введён
CentOS 6 64-бит и новее MariaDB 5.5.36 и MariaDB 10.0.9
Debian 7 "wheezy" 64-бит и новее MariaDB 5.5.33 и MariaDB 10.0.5
Fedora 19 64-бит и новее MariaDB 5.5.33 и MariaDB 10.0.5
openSUSE 13.1 64-бит и новее MariaDB 5.5.41 и MariaDB 10.0.15
Red Hat 6 64-бит и новее MariaDB 5.5.36 и MariaDB 10.0.9
Ubuntu 12.10 "quantal" 64-бит и новее MariaDB 5.5.33 и MariaDB 10.0.5

Примечание: Версия TokuDB с MariaDB.org немного отличается от версии TokuDB с Tokutek. Перед использованием TokuDB ознакомьтесь со статьёй Различия в TokuDB!

В следующих разделах подробно описано, как установить и включить TokuDB.

Установка TokuDB

До версий MariaDB 5.5.39 и 10.0.13 для обновления TokuDB необходимо было полностью выключить сервер. Если сервер не был выключен должным образом, TokuDB не запускался. Начиная с версий 5.5.40 и 10.0.14, это больше не требуется. См. MDEV-6173.

TokuDB включён в MariaDB с MariaDB 5.5.34 и MariaDB 10.0.6 и не требует отдельной установки. Перейдите сразу к разделу Проверка поддержки Transparent HugePage на Linux. Для более старых версий см. инструкции, специфичные для дистрибутива, ниже.

Установка TokuDB на Fedora, RedHat и CentOS

В MariaDB 5.5.33, MariaDB 10.0.5 и начиная с MariaDB 10.2.5 TokuDB находится в отдельном пакете RPM, называемом MariaDB-tokudb-engine и устанавливается следующим образом:

sudo yum install MariaDB-tokudb-engine

Установка TokuDB на Ubuntu и Debian

На Ubuntu TokuDB доступен в 64-битных версиях Ubuntu 12.10 и новее. На Debian TokuDB доступен в 64-битных версиях Debian 7 "Wheezy" и новее.

Пакет устанавливается следующим образом:

sudo apt-get install mariadb-plugin-tokudb

В некоторых более ранних версиях, начиная с MariaDB 5.5.33 и MariaDB 10.0.5, TokuDB находится в отдельном пакете, называемом mariadb-tokudb-engine-x.x, где x.x — серия MariaDB (5.5 или 10.0). Пакет устанавливается, например, на 5.5, следующим образом:

sudo apt-get install mariadb-tokudb-engine-5.5

libjemalloc

TokuDB требует библиотеку libjemalloc (в настоящее время версия 3.3.0 или выше).

libjemalloc должна автоматически устанавливаться при использовании менеджера пакетов и загружается при перезапуске MariaDB.

Если она не включена, её можно включить, добавив следующее в файл конфигурации my.cnf:

[mysqld_safe]

malloc-lib= /path/to/jemalloc

Если вы этого не сделаете, в файле ошибок появится ошибка, подобная следующей:

2018-11-19 18:46:26 0 [ERROR] mysqld: Can't open shared library '/home/my/maria-10.3/mysql-test/var/plugins/ha_tokudb.so' (errno: 2, /usr/lib64/libjemalloc.so.2: cannot allocate memory in static TLS block)

Проверка поддержки Transparent HugePage на Linux

Transparent hugepages — это функция в новых версиях ядра Linux, которая вызывает проблемы с отслеживанием использования памяти в TokuKV и может привести к перерасходу памяти. Если эта функция включена, TokuKV не запустится, и её следует отключить.

Вы можете проверить статус Transparent Hugepages следующим образом:

cat /sys/kernel/mm/transparent_hugepage/enabled

Если путь не существует, Transparent Hugepages не включены, и вы можете продолжить.

В противном случае будет возвращено следующее:

always madvise [never]

что указывает на то, что Transparent Hugepages не включены, и вы можете продолжить. Если возвращается следующее:

[always] madvise never

Transparent Hugepages включены, и их необходимо отключить.

Чтобы отключить их, передайте "transparent_hugepage=never" ядру в загрузчике (grub, lilo и т.д.). Например, для SUSE добавьте transparent_hugepage=never в параметр командной строки ядра в конце, например, после "showopts", и нажмите OK. Настройка вступит в силу при следующем перезапуске.

Вы также можете отключить их с помощью:

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

В CentOS или RedHat вы можете сделать:

Добавьте строку GRUB_CMDLINE_LINUX_DEFAULT="transparent_hugepage=never" в файл /etc/default/grub

Обновите grub (загрузчик):

grub2-mkconfig -o /boot/grub2/grub.cfg "$@"

Дополнительную информацию можно найти на http://unix.stackexchange.com/questions/99154/disable-transparent-hugepages

Включение TokuDB

Попытка включения TokuDB при включённых Transparent HugePages Linux завершится ошибкой, например:

ERROR 1123 (HY000): Can't initialize function 'TokuDB'; Plugin initialization function failed

См. раздел выше; Проверка поддержки Transparent HugePage на Linux.

Также необходимо включить двоичный журнал перед включением TokuDB. Строго говоря, код XA требует двух XA-совместимых хранилищ данных, и это проверяется при запуске. На практике это требует активации InnoDB и двоичного журнала. Если это не так, будет возвращено следующее предупреждение, и функции XA будут отключены:

Cannot enable tc-log at run-time. XA features of TokuDB are disabled

По умолчанию файлы конфигурации MariaDB my.cnf содержат раздел для TokuDB. Чтобы включить TokuDB, просто удалите символы комментариев '#' из опций в разделе TokuDB.

Типичный раздел TokuDB выглядит следующим образом:

# See https://mariadb.com/kb/en/how-to-enable-tokudb-in-mariadb/
# for instructions how to enable TokuDB
#
# See https://mariadb.com/kb/en/tokudb-differences/ for differences
# between TokuDB in MariaDB and TokuDB from http://www.tokutek.com/

plugin-load=ha_tokudb

По умолчанию опция plugin-load прокомментирована. Просто раскомментируйте её, как в примере выше.

Не забудьте также включить jemalloc в файле конфигурации.

[mysqld_safe]
malloc-lib= /path/to/jemalloc

После внесения этих изменений можно перезапустить MariaDB, чтобы активировать TokuDB.

Включение TokuDB на Fedora

Вместо помещения раздела TokuDB в основной файл my.cnf, он размещается в отдельном файле по адресу: /etc/my.cnf.d/tokudb.cnf

Включение TokuDB на Ubuntu и Debian

Вместо помещения раздела TokuDB в основной файл my.cnf, он размещается в отдельном файле по адресу: /etc/mysql/conf.d/tokudb.cnf

Включение TokuDB вручную из командной строки mysql

В целом, рекомендуется использовать один из вышеперечисленных методов для включения движка хранения TokuDB, но также возможно включить его вручную, как и другие плагины. Для этого запустите клиент mysql, подключитесь к MariaDB как пользователю с привилегией SUPER и выполните следующую команду:

INSTALL SONAME 'ha_tokudb';

TokuDB будет установлен, пока кто-то не выполнит UNINSTALL SONAME.

Временное включение TokuDB при запуске MariaDB

Если вы хотите только протестировать TokuDB, вы можете запустить сервер mysqld с TokuDB с помощью следующей команды:

mysqld --plugin-load=ha_tokudb --plugin-dir=/usr/local/mysql/lib/mysql/plugin

См. также

  • Различия между TokuDB с Tokutek.com и версией TokuDB в MariaDB от MariaDB.org.
  • Системные и статусные переменные TokuDB
Содержимое, воспроизведённое на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проверяется предварительно MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают точку зрения MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/installing-tokudb/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API