В качестве ОС была выбрана 64-битная Ubuntu Server 12.04. GUI не устанавливал, базу данных запланировал разместить на /home и поэтому выделил под этот раздел большую часть диска.
Для начала заполним sysctl. Я выделил для сервера 8 Гб озу, соответственно
grep MemTotal /proc/meminfo
выдало MemTotal: 8178400 kB – в shmmax записал цифру 8000000000
Также использовал формулу shmall = shmmax * 0,9 / 4096 и взял данные из документации IBM DB2 Express-C 10.1
В /etc/sysctl.conf внес следующие строки:
1 2 3 4 5 |
kernel.sem = 250 256000 32 1024 kernel.msgmax = 65535 kernel.msgmnb = 65535 kernel.shmmax = 8000000000 kernel.shmall = 1757812 |
далее команда sysctl -p
Устанавливаем зависимости:
1 |
apt-get install alien binutils build-essential cpp-4.4 debhelper g++-4.4 gawk gcc-4.4 gcc-4.4-base gettext html2text ia32-libs intltool-debian ksh lesstif2 lib32bz2-dev lib32z1-dev libaio-dev libaio1 libbeecrypt7 libc6 libc6-dev libc6-dev-i386 libdb4.8 libelf-dev libelf1 libltdl-dev libltdl7 libmotif4 libodbcinstq4-1 libodbcinstq4-1:i386 libqt4-core libqt4-gui libsqlite3-0 libstdc++5 libstdc++6 libstdc++6-4.4-dev lsb lsb-core lsb-cxx lsb-desktop lsb-graphics lsb-qt4 make odbcinst openjdk-6-jdk pax po-debconf rpm rpm-common sysstat tzdata-java unixodbc unixodbc-dev unzip |
Как уже упоминал выше, в моем случае Ubuntu без менеджера окон, а установщик DB2 использует GUI.
Многим здесь ничего не мешает установить lubuntu-core, xinit и запустив иксы через startx произвести инсталляцию DB2 (../expc/db2setup)
Я же проброшу дисплей на свой рабочий линукс – вношу в /etc/ssh/ssh_config строки:
1 2 |
ForwardX11 yes X11Forwarding yes |
и подключаюсь к серверу добавив параметры -XY к ssh:
ssh -XY -l root ubuntuserver_ip
Теперь весь вывод иксов с сервера пойдет на мой рабочий стол (xauth).
Распаковываем db2_v101_linuxx64_expc.tar.gz и даем команду
./expc/db2setup
Во время установки я указал такие данные:
Пользователь | Логин | Группа | Пароль | Расположение |
Администратор сервера | dasusr1 | dasadm1 | dasusr1 | /home/dasusr1 |
Владелец экземпляра | db2inst1 | db2iadm1 | db2inst1 | /home/db2inst1 |
Изолированный | db2fenc1 | db2fadm1 | db2fenc1 | /home/db2fenc1 |
При выборочной установке также убрал русский язык – установщик не мог найти файл русских сообщений.
Затем поправил шеллы вновь созданных пользователей в /etc/passwd с sh на bash:
1 2 3 |
dasusr1:x:1001:119::/home/dasusr1:/bin/bash db2inst1:x:1002:120::/home/db2inst1:/bin/bash db2fenc1:x:1003:121::/home/db2fenc1:/bin/bash |
Далее конфигурируем DB2 для работы с 1С. Заходим под пользователем db2inst1: su db2inst1
и даем команду db2set DB2_WORKLOAD=1C
Возвращаемся в root через Ctrl-D (logout).
Добавляем в /etc/services строку:
1 |
db2c_db2inst1 50000/tcp |
Настраиваем автозапуск сервера – создаем файл /etc/init.d/db2autostart
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#! /bin/sh # /etc/init.d/db2autostart # case "$1" in start) sudo -u db2inst1 /home/db2inst1/sqllib/adm/db2start ;; stop) sudo -u db2inst1 /home/db2inst1/sqllib/adm/db2stop ;; *) echo "Usage: /etc/init.d/db2autostart {start|stop}" exit 1 ;; esac exit 0 |
Затем выполняем update-rc.d db2autostart defaults и ./db2iauto -on db2inst1 (из /opt/ibm/db2/V10.1/bin)
Отправляем сервер на перезагрузку и пробуем создать базу – например, db_name в 1C (пользователь и пароль db2inst1).
Чтобы 1C не ругалась, что не хватает памяти, на сервере от имени db2inst1 выполняем комаанды:
1 2 3 4 |
db2 UPDATE DATABASE CONFIGURATION FOR db_name USING LOGFILSIZ 4000 db2 UPDATE DATABASE CONFIGURATION FOR db_name USING LOGPRIMARY 16 db2 UPDATE DATABASE CONFIGURATION FOR db_name USING LOGSECOND 128 UPDATE DATABASE CONFIGURATION FOR db_name USING APPLHEAPSZ 4096 |
13.12.2012
10.02.2013
13.03.2013