пятница, 14 апреля 2017 г.

Установка db2 11.1 на ubuntu 16.04.2 lxc

Создадим контейнер
# lxc-create -t ubuntu -n xenial_lxc -- -r xenial -a amd64

Клонировать контейнер
# lxc-clone -o xenial_lxc -n db2_11_lxc

Сохранение контейнера xenial_lxc
# cd /var/lib/lxc/
# tar -cvzf xenial_lxc.tar.gz ./xenial_lxc

# cp /home/user/_soft/db2/v11.1_linuxx64_expc.tar.gz /var/lib/lxc/db2_11_lxc/rootfs/home/ubuntu
# cd /var/lib/lxc/db2_11_lxc/rootfs/home/ubuntu
# tar xvzf v11.1_linuxx64_expc.tar.gz
# rm -R  /var/lib/lxc/db2_11_lxc/rootfs/home/ubuntu/v11.1_linuxx64_expc.tar.gz

Старт контейнера
# lxc-start -n db2_11_lxc -d

Посмотреть ip
# lxc-ls -f

$ sudo su
# apt-get update -y
# apt-get upgrade -y
# apt-get install -y mc htop samba nano
# nano /etc/sysctl.conf
В конец файла:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Сохранить.
# sysctl -p
Проверка:
# cat /proc/sys/net/ipv6/conf/all/disable_ipv6

# nano /etc/hosts
127.0.0.1   localhost
127.0.1.1   desktop_lxc

Сохранить.

Установка db2 утилитой db2_install
Зададим пользователей:

# groupadd db2iadm1
# useradd -g db2iadm1 -m -d /home/db2inst1 db2inst1
# passwd db2inst1

# groupadd db2fadm1
# useradd -g db2fadm1 -m -d /home/db2fenc1 db2fenc1
# passwd db2fenc1

# dpkg --add-architecture i386
# apt-get update
 Пакет libaio1 есть.
# apt-get install libx32stdc++6 -y
# apt-get install libpam0g:i386 -y
# apt-get install binutils -y
# apt-get install libnuma-dev -y

# cd /home/ubuntu/expc
# ./db2prereqcheck -v 11.1.0.0

инсталляция
# ./db2_install
#  rm -R /home/ubuntu/expc

Настройка db2 для работы с 1С

# cd /opt/ibm/db2/V11.1/instance
# ./db2icrt -u db2fenc1 db2inst1

# su - db2inst1

Конфигурируем DB2 для работы с 1С:

$ db2set DB2_WORKLOAD=1C

Запускаем экземпляр DB2:

При установке db2setup экземпляр db2 уже запущен, пропускаем

$ db2start
!!!без apt-get install libnuma-dev -y
!!!db2start: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No !!!such file or directory

Посмотреть версию DB2

$ db2ls

Посмотреть БД
$ db2ilist

$ exit

# cd /opt/ibm/db2/V11.1/instance
# ./db2iauto -on db2inst1

Итог db2 не запускается автоматом.
Напишем свой systemd сервис для db2

Скрипт
How to Auto Start more then one instance of DB2 in linux environment 

# nano /usr/local/bin/db2.sh

#!/bin/sh
    #
    # Startup script for DB2
    # by A.F.
    #


   DB2_USER=db2inst1

    ### BEGIN INIT INFO
    # Provides:       $DB2_USER
    # Required-Start: $network $remote_fs
    # Required-Stop: $network $remote_fs
    # Default-Start: 3
    # Default-Stop: 0 1 2 5 6
    # Short-Description: DB2 $DB2_USER job service
    # Description:  DB2 Instance $DB2_USER job service
    ### END INIT INFO

    # Find the name of the script
    NAME=`basename $0`

    start() {
        DB2_START=$"Starting ${NAME} service: "

        su - $DB2_USER -c '. ./sqllib/db2profile; \
            ./sqllib/adm/db2start > /dev/null'

        ret=$?
        if [ $ret -eq 0 ]
        then
                echo "$DB2_START Success."
        else
                echo "$DB2_START Failed!"
                exit 1
        fi
        echo
    }

    stop() {
        echo -n $"Stopping ${NAME} service: "

        su - $DB2_USER -c '. ./sqllib/db2profile; \
            ./sqllib/adm/db2stop > /dev/null'

        ret=$?
        if [ $ret -eq 0 ]
        then
                echo "Success."
        else
                echo "Failed!"
                exit 1
        fi
      echo
    }
    restart() {
        stop
        start
    }
    case "$1" in
        start)
            start
            ;;
        stop)
            stop
            ;;
        restart)
            restart
            ;;
        *)
            echo $"Usage: $0 {start|stop|restart}"
            exit 1
    esac
    exit 0

Сохранить.


# chmod +x /usr/local/bin/db2.sh

# nano /etc/systemd/system/db2.service

[Unit] 
Description = db2 daemon 

[Service] 
Type = forking 
ExecStart = /usr/local/bin/db2.sh start 
ExecStop = /usr/local/bin/db2.sh stop 
ExecReload = /usr/local/bin/db2.sh restart 
[Install] 
WantedBy = multi-user.target 
  
Сохранить. 
---------------------------------- 

# systemctl start db2
# systemctl status db2
# systemctl enable db2
!!!# systemctl disable db2

# reboot

Проверка
# ps -eaf|grep -i db2sysc

#  ps -eaf|grep -i db2sysc
db2inst1   694   692  0 09:41 ?        00:00:00 db2sysc
root       771   760  0 09:42 pts/4    00:00:00 grep --color=auto -i db2sysc

# poweroff

Сохранение контейнера db2_11_lxc
# cd /var/lib/lxc/
# tar -cvzf db2_11_lxc.tar.gz ./db2_11_lxc
__________________________________________________
Установка 1С

Клонировать контейнер # lxc-clone -o db2_11_lxc -n db2

# mkdir /var/lib/lxc/db2/rootfs/home/ubuntu/8.3.10.2168
# cp /home/user/_soft/8.3.10.2168/deb64.tar.gz /var/lib/lxc/db2/rootfs/home/ubuntu/8.3.10.2168/

Старт контейнера
# lxc-start -n db2 -d

Посмотреть ip
# lxc-ls -f

# ssh ubuntu@db2

$ sudo su

# su - db2inst1

Запускаем экземпляр DB2:
$ db2start
$ exit
# ps -eaf|grep -i db2sysc
db2inst1   754   752  0 15:42 pts/4    00:00:00 db2sysc
root       779   272  0 15:43 pts/4    00:00:00 grep --color=auto -i db2sysc

# apt-get install  imagemagick -y
Строка ниже срабатывает далеко не всегдаю
# apt-get install ttf-mscorefonts-installer -y
------------------------------------------------------------
Альтернативно:
# apt-get install wget -y
# mkdir /home/ubuntu/Downloads
# wget http://ftp.de.debian.org/debian/pool/contrib/m/msttcorefonts/ttf-mscorefonts-installer_3.6_all.deb -P /home/ubuntu/Downloads
# apt install /home/ubuntu/Downloads/ttf-mscorefonts-installer_3.6_all.deb
# fc-cache -f -v
------------------------------------------------------------


Дистрибутивы  в папке soft
!!!# ln -s /usr/lib/x86_64-linux-gnu/libMagickWand.so.5 /usr/lib/x86_64-linux-gnu/libMagickWand.so

# cd /home/ubuntu/8.3.10.2168/
# tar xvzf deb64.tar.gz
# dpkg -i 1c*.deb
# apt-get -f install
# apt autoremove -y
# cd .. 
# rm -R  /home/ubuntu/8.3.10.2168
# chown -R usr1cv8:grp1cv8 /opt/1C
Зададим пароль pass
# passwd usr1cv8
 Теперь создадим базу 1С на сервере DB2.
добавим пользователя usr1cv8 в группу доступа db2iadm1
# usermod -aG db2iadm1 usr1cv8
# echo ". /home/db2inst1/sqllib/db2profile" >> /home/usr1cv8/.profile
# service srv1cv83 start
# service srv1cv83 status
!!!# service srv1cv83 restart
# poweroff

Старт контейнера
# lxc-start -n db2 -d

Посмотреть ip
# lxc-ls -f

# ssh ubuntu@db2

!!!$ sudo su
!!!# su - db2inst1

!!!Запускаем экземпляр DB2:
!!!$ db2start
!!!$ exit
# ps -eaf|grep -i db2sysc

!!!# service srv1cv83 start
# service srv1cv83 status

Создадим базу


# poweroff

Сохранение контейнера db2
# cd /var/lib/lxc/
# tar -cvzf db2.tar.gz ./db2

Восстановление контейнера
!!!# cd /var/lib/lxc
!!!# tar xvzf db2.tar.gz

Старт контейнера # lxc-start -n db2 -d

Посмотреть ip
# lxc-ls -f



Клонирование контейнера с заменой кластера 1с
Клонировать контейнер
# lxc-clone -o db2 -n db2_1
Почистить кластер 1с
# rm -R /var/lib/lxc/db2_1/rootfs/home/usr1cv8/.1cv8
Создадим базу (база подхватится из клонируемого контейнера):

Сохранение контейнера db2_1
# cd /var/lib/lxc/
# tar -cvzf db2_1.tar.gz ./db2_1

Восстановление контейнера
!!!# cd /var/lib/lxc
!!!# tar xvzf db2_1.tar.gz

.

Комментариев нет:

Отправить комментарий