Настройка службы DB2

В этом разделе представлен пример настройки кластерной службы, обеспечивающей отказоустойчивую работу в кластере сервера баз данных IBM DB2 редакции Enterprise или Workgroup. В этом примере, подразумевается что NIS в кластерных системах не работает. Для установки программных модулей и базы данных в кластерной системе, выполните следующие действия:

  1. В каждой кластерной системе, зарегистрируйтесь под именем root и добавьте в файл /etc/hosts IP адрес и имя компьютера, с которым будет связана служба DB2. Например:

    10.1.16.182     ibmdb2.class.cluster.com        ibmdb2
  2. Выберите на общем диске неиспользуемый раздел для размещения рабочих и служебных данных DB2 и создайте в нём файловую систему. Например:

    # mke2fs /dev/sda3
  3. Создайте в каждой кластерной системе точку подключения файловых систем, созданных на втором шаге. Например:

    # mkdir /db2home    
  4. В первой кластерной системе, devel0, подключите файловую систему, созданную на втором шаге, к точке подключения, созданной на третьем. Например:

    devel0# mount -t ext2 /dev/sda3 /db2home
  5. В первой кластерной системе, devel0, подключите компакт-диск DB2 и скопируйте файл ответов установки в каталог /root инсталляции Linux. Например:

    devel0% mount -t iso9660 /dev/cdrom /mnt/cdromdevel0% cp /mnt/cdrom/IBM/DB2/db2server.rsp /root	      
  6. Отредактируйте файл ответов установки, db2server.rsp, отразив в нем особенности вашей конфигурации. Убедитесь в том, что идентификаторы UID и GID зарезервированы в обоих кластерных системах. Например:

    -----------Instance Creation Settings------------
    -------------------------------------------------
    DB2.UID = 2001
    DB2.GID = 2001
    DB2.HOME_DIRECTORY = /db2home/db2inst1
    
    -----------Fenced User Creation Settings----------
    --------------------------------------------------
    UDF.UID = 2000
    UDF.GID = 2000
    UDF.HOME_DIRECTORY = /db2home/db2fenc1
    
    -----------Instance Profile Registry Settings------
    ---------------------------------------------------
    DB2.DB2COMM = TCPIP
    
    ----------Administration Server Creation Settings---
    ----------------------------------------------------
    ADMIN.UID = 2002
    ADMIN.GID = 2002
    ADMIN.HOME_DIRECTORY = /db2home/db2as
    
    ---------Administration Server Profile Registry Settings-
    ---------------------------------------------------------
    ADMIN.DB2COMM = TCPIP
    
    ---------Global Profile Registry Settings-------------
    ------------------------------------------------------
    DB2SYSTEM = ibmdb2
  7. Запустите установку. Например:

    devel0# cd /mnt/cdrom/IBM/DB2
    devel0# ./db2setup -d -r /root/db2server.rsp 1>/dev/null \
    	    2>/dev/null &
  8. Проверьте, не было ли ошибок во время установки, просмотрев журнал установки в файле /tmp/db2setup.log. В конце файла журнала каждый этап установки должен быть отмечен как SUCCESS (УСПЕШНО).

  9. Остановите рабочий и служебный сервер DB2 в первой кластерной системе. Например:

    devel0# su - db2inst1 
    devel0# db2stop
    devel0# exit
    devel0# su - db2as 
    devel0# db2admin stop
    devel0# exit
  10. Отключите раздел с рабочими и служебными данными DB2 в первой кластерной системе Например:

    devel0# umount /db2home
  11. Подключите раздел с рабочими и служебными данными DB2 во второй кластерной системе, devel1. Например:

    devel1# mount -t ext2 /dev/sda3 /db2home
  12. Подключите компакт-диск с DB2 во второй кластерной системе и выполните удаленное копирование файла db2server.rsp в каталог /root. Например:

    devel1# mount -t iso9660 /dev/cdrom /mnt/cdrom
    devel1# rcp devel0:/root/db2server.rsp /root
  13. Запустите инсталляцию во второй кластерной системе, devel1. Например:

    devel0# cd /mnt/cdrom/IBM/DB2
    devel1# ./db2setup -d -r /root/db2server.rsp 1>/dev/null \
    	    2>/dev/null &
  14. Проверьте, не было ли ошибок во время установки, просмотрев журнал установки в файле /tmp/db2setup.log. В конце файла журнала все этапы инсталляции должны быть отмечены как SUCCESS (УСПЕШНО), за исключением следующих:

    DB2 Instance Creation                              FAILURE
    Update DBM configuration file for TCP/IP           CANCEL
    Update parameter DB2COMM                           CANCEL
    Auto start DB2 Instance                            CANCEL
    DB2 Sample Database                                CANCEL
    Start DB2 Instance
    Administration Server Creation                     FAILURE
    Update parameter DB2COMM                           CANCEL
    Start Administration Server                        CANCEL
  15. Проверьте правильность установки сервера баз данных, выполнив следующие команды, сначала на одной, а затем на другой кластерной системе:

    # mount -t ext2 /dev/sda3 /db2home
    # su - db2inst1
    # db2start
    # db2 connect to sample
    # db2 select tabname from syscat.tables
    # db2 connect reset
    # db2stop
    # exit
    # umount /db2home
  16. Создайте сценарий для запуска и остановки кластера DB2 на разделе с рабочими и служебными данными. Например:

    # vi /db2home/ibmdb2
    # chmod u+x /db2home/ibmdb2
    
    #!/bin/sh
    #
    # IBM DB2 Database Cluster Start/Stop Script
    #
          
    DB2DIR=/usr/IBMdb2/V6.1
          
    case $1 in
    "start")
       $DB2DIR/instance/db2istrt
       ;;
    "stop")
       $DB2DIR/instance/db2ishut
       ;;
    esac
  17. Измените файл /usr/IBMdb2/V6.1/instance/db2ishut в каждой системе, таким образом, чтобы перед остановкой сервера баз данных выполнялось принудительное отключение работающих приложений. Например:

    for DB2INST in ${DB2INSTLIST?}; do
        echo "Stopping DB2 Instance "${DB2INST?}"..." >> ${LOGFILE?}
        find_homedir ${DB2INST?}
        INSTHOME="${USERHOME?}"
        su ${DB2INST?} -c " \
            source ${INSTHOME?}/sqllib/db2cshrc   1> /dev/null 2> /dev/null; \
                   ${INSTHOME?}/sqllib/db2profile 1> /dev/null 2> /dev/null; \
    >>>>>>> db2 force application all; \
            db2stop                              "  1>> ${LOGFILE?} 2>> ${LOGFILE?}
        if [ $? -ne 0 ]; then
            ERRORFOUND=${TRUE?}
        fi
    done
  18. В файле inittab закомментируйте строку DB2, чтобы запуск и остановку сервера баз данных выполняла кластерная служба. Скорее всего эта строка будет в конце файла. Например:

    # db:234:once:/etc/rc.db2 > /dev/console 2>&1 # Autostart DB2 Services

Воспользуйтесь утилитой cluadmin для создания службы DB2: Введите IP адрес, выбранный в первом пункте, название общего раздела, созданного во втором, и имя файла сценария, созданного в 16 пункте.

Чтобы установить клиента DB2 в третьей системе, выполните следующие команды:

display# mount -t iso9660 /dev/cdrom /mnt/cdrom
display# cd /mnt/cdrom/IBM/DB2
display# ./db2setup -d -r /root/db2client.rsp

Для настройки клиента DB2 добавьте IP адрес службы в файл /etc/hosts на клиентском компьютере:

10.1.16.182   ibmdb2.lowell.mclinux.com   ibmdb2

Затем добавьте следующую запись в файл /etc/services на компьютере-клиента:

db2cdb2inst1      50000/tcp

Выполните на этом компьютере следующие команды:

# su - db2inst1
# db2 catalog tcpip node ibmdb2 remote ibmdb2 server db2cdb2inst1
# db2 catalog database sample as db2 at node ibmdb2
# db2 list node directory
# db2 list database directory

Чтобы проверить подключение к базе данных DB2 на клиенте, выполните следующие команды:

# db2 connect to db2 user db2inst1 using ibmdb2
# db2 select tabname from syscat.tables
# db2 connect reset