DB2

Материал из ALT Linux Wiki

DB2 — семейство программных продуктов в области управления информацией компании IBM.

Логотип Википедии
В Википедии есть обзорная статья по теме « DB2».

Основная статья на форуме:

Установка ibm db2 v.11.5 на Альт Линукс 10

Начало установки
А таким должен быть финал установки

Входные данные

  1. Версия IBM DB2 11.5 для Linux, автор использовал архив v11.5.5_linuxx64_server_dec.tar.gz (для партнёров), подойдёт и коммерческий архив, только после установки нужно будет поставить лицензию на софт.
  2. Альт 10 платформы, автор использовал серверный вариант стартового набора. Проверял работу на виртуальной машине KVM и контейнере LXC - оба варианта рабочие.
  3. Архитектура процессора x86_64, для других архитектур перечень библиотек может отличаться, например автор для работы на POWER PC/Ubuntu ставил дополнительные библиотеки к тем, что нужны для Ubuntu на x86_64.
  4. IBM DB2 исторически имеет ограничения в именах(справедливо для username/hostname), имена пользователей и хоста не должны превышать 8 символов.
  5. Установка выполняется под корневым пользователем (root).
  6. Статья имеет рекомендательный характер, т.к. доскональной проверки работы IBM DB2 на Альт Линукс после установки не проводилось, возможна частичная неработоспособность отдельных компонент, результатом действий будет возможность работать с экземпляром БД.
  7. Автор не претендует на истину в последней инстанции и может ошибаться, он такой же человек, как и все. Устанавливая IBM DB2 на Альт Линукс вы принимаете все возможные риски на себя.

Изначально (официально) IBM гарантирует работоспособность DB2 на следующих дистрибутивах Linux:

  1. Red Hat
  2. Ubuntu
  3. 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

Сам процесс установки очень прост:

  1. новая установка,
  2. серверная установка (первый пункт),
  3. типовая установка и согласиться с правилами ibm db2,
  4. задать пароли пользователям и файл ответов.

Дождаться завершения установки, должна быть фраза 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, при выявлении ошибок в работе - найти недостающие библиотеки и установить их.

  1. Все операции по установке автор делал от root