DB2
DB2 — семейство программных продуктов в области управления информацией компании IBM.
Основная статья на форуме:
Установка ibm db2 v.11.5 на Альт Линукс 10
Входные данные
- Версия IBM DB2 11.5 для Linux, автор использовал архив v11.5.5_linuxx64_server_dec.tar.gz (для партнёров), подойдёт и коммерческий архив, только после установки нужно будет поставить лицензию на софт.
- Альт 10 платформы, автор использовал серверный вариант стартового набора. Проверял работу на виртуальной машине KVM и контейнере LXC - оба варианта рабочие.
- Архитектура процессора x86_64, для других архитектур перечень библиотек может отличаться, например автор для работы на POWER PC/Ubuntu ставил дополнительные библиотеки к тем, что нужны для Ubuntu на x86_64.
- IBM DB2 исторически имеет ограничения в именах(справедливо для username/hostname), имена пользователей и хоста не должны превышать 8 символов.
- Установка выполняется под корневым пользователем (root).
- Статья имеет рекомендательный характер, т.к. доскональной проверки работы IBM DB2 на Альт Линукс после установки не проводилось, возможна частичная неработоспособность отдельных компонент, результатом действий будет возможность работать с экземпляром БД.
- Автор не претендует на истину в последней инстанции и может ошибаться, он такой же человек, как и все. Устанавливая IBM DB2 на Альт Линукс вы принимаете все возможные риски на себя.
Изначально (официально) IBM гарантирует работоспособность DB2 на следующих дистрибутивах Linux:
- Red Hat
- Ubuntu
- SUSE
Распаковка архива
tar -xzvf v11.5.5_linuxx64_server_dec.tar.gz
Отправной точкой установки является проверка компонент операционной системы перед установкой - утилита db2prereqcheck.
Если ее запустить на дистрибутиве не из привилегированного списка дистрибутивов, например, fedora (чем не rhel) или debian (чем не ubuntu), результат будет одинаков:
# ./db2prereqcheck - l
=========================================================
Sun May 15 01:18:18 2022
Checking prerequisites for DB2 installation. Version "11.5.5.0". Operating system "Linux"
Validating "Linux distribution " ...
Segmentation fault
Это значит, что ваш дистрибутив Linux официально не поддерживается IBM для работы DB2.
Для примера, та же команда, выполненная на неподготовленной для IBM DB2 openSUSE выдаст перечень несоответствий:
#./db2prereqcheck -l
Несоответствие требованиям для базы данных DB2 "Server" . Версия: "11.5.5.0".
Сводка невыполненных предварительных требований в текущей системе:
DBT3514W Утилите db2prereqcheck не удалось найти следующий файл 32-битной библиотеки: "/lib/libpam.so*".
DBT3514W Утилите db2prereqcheck не удалось найти следующий файл 32-битной библиотеки: "libstdc++.so.6".
sh: -c: строка 0: синтаксическая ошибка рядом с неожиданным маркером «(»
sh: -c: строка 0: `rpm -q --qf "%{NAME}\n%{VERSION}\n%{RELEASE}\n" -l (null) 2>&1 > /tmp/db2prereqcheck.14479'
Несоответствие требованиям для базы данных DB2 "Server" с возможностью pureScale . Версия: "11.5.5.0".
Сводка невыполненных предварительных требований в текущей системе:
DBT3613E Утилите db2prereqcheck не удалось проверить предварительные условия для TSA. Убедитесь, что компьютер соответствует предварительным условия
DBT3507E DBT3507E Утилите db2prereqcheck не удалось найти следующий пакет или файл: "kernel-source".
DBT3507E DBT3507E Утилите db2prereqcheck не удалось найти следующий пакет или файл: "".
DBT3507E DBT3507E Утилите db2prereqcheck не удалось найти следующий пакет или файл: "gcc-c++".
DBT3507E DBT3507E Утилите db2prereqcheck не удалось найти следующий пакет или файл: "cpp".
DBT3507E DBT3507E Утилите db2prereqcheck не удалось найти следующий пакет или файл: "gcc".
Установка необходимых пакетов
После установки ОС Альт надо обновить компоненты системы
apt-get update
apt-get dist-upgrade
Автор поставил следующие компоненты:
Консольные утилиты
apt-get install mc net-tools nano
для авторизации в X11 (чтобы запускать GUI программы через ssh без установки X-сервера (xinit не ставил)):
apt-get install xauth xterm
пакеты из группы "kernel-source", зависит от вашего ядра (un-def или std-def)
apt-get install kernel-headers-un-def
пакеты из группы "sh"
apt-get install pdksh
группа 32-битной библиотеки: "/lib/libpam.so*" и 32-битной библиотеки: "libstdc++.so.6"
apt-get install i586-libpam0 libpam0
apt-get install libstdc++6 i586-libstdc++6
пакеты (из зависимостей при установке Ubuntu)
apt-get install make perl m4 patch i586-libaio
пакеты зависимостей установщика
apt-get install libXtst libXi
пакеты зависимостей db2 (без первой не работает разбор xml и не устанавливается лицензия, без второй не стартует db2)
apt-get install libxml2 libnuma
пакеты из группы "gcc-c++"
apt-get install gcc gcc-c++ binutils cpp
Подготовка к установке [1]
Теперь подключиться с X-авторизацией, ключ -YC (не -XC, иначе клавиатура в GUI работать не будет, особенности текущих версий openssh).
ssh -YC admin@10.10.10.111
Запуск xterm; если запустился, значит, GUI-установщик ibm db2 тоже будет работать.
xterm
Установщик ibm db2 не понимает русский язык (запускается, но в процессе установки - ломается), поэтому надо перевести пользователя root в английскую локаль:
nano /root/.bash_profile
Вставить строки
export LANG="en_US.UTF-8"
export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
выйти и снова зайти root, проверить locale
locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
Непосредственно установка и её проверка
Перейти в каталог установки и запустить утилиту установки ./db2setup -f sysreq (ключ обязателен, иначе забракует не поддерживаемый официально дистрибутив Linux)
./db2setup -f sysreq
Сам процесс установки очень прост:
- новая установка,
- серверная установка (первый пункт),
- типовая установка и согласиться с правилами ibm db2,
- задать пароли пользователям и файл ответов.
Дождаться завершения установки, должна быть фраза Setup has completed successfully
А лог файл не должен содержать ошибок, кроме "TSAMP" (нужен для кластера).
Перезагрузиться, войти в систему пользователем db2inst1 и убедиться, что экземпляр БД заработал:
db2start
05/24/2022 21:49:26 0 0 SQL1063N Команда DB2START выполнена успешно.
SQL1063N Команда DB2START выполнена успешно.
При работающем экземпляре БД открыт порт для подключения, проверка
netstat -ntpa | grep 50000
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 :::50000 :::* LISTEN 2925/db2sysc 0
Итог
На этом всё, дальше работать с БД, как на официально поддерживаемых дистрибутивах Linux, при выявлении ошибок в работе - найти недостающие библиотеки и установить их.
- ↑ Все операции по установке автор делал от root