Глава 4. Службы баз данных

В этой главе содержатся инструкции по настройке Red Hat Enterprise Linux для реализации баз данных с высокой степенью доступности.

ЗамечаниеЗамечание
 

В следующих разделах представлены инструкции по созданию примерной конфигурации базы данных. Учтите, что ваша конфигурация может отличаться от приведённой, в зависимости от версии применяемого сервера баз данных. Поэтому эти инструкции могут быть неприменимы в исходном виде.

4.1. Настройка службы Oracle

Служба Oracle предоставляет данные приложению базы данных, обеспечивая при этом высокую степень доступности. Приложение может в свою очередь предоставить сетевой доступ к базе данных клиентским системам, например Web-серверам. В случае отказа службы, приложение обращается к данным общей базы данных, используя другую кластерную систему. Сетевой службе базы данных обычно назначается IP-адрес, который переносится вместе со службой, таким образом сохраняется прозрачный доступ клиентов к данным.

В этом разделе представлен пример создания кластерной службы для базы данных Oracle. Хотя значения переменных, используемые в сценарии службы, зависят от конкретной конфигурации Oracle, приведённый пример поможет вам настроить эту службу в вашем окружении. Информацию об улучшении производительности службы вы найдёте в разделе 4.2 Тонкая настройка службы Oracle.

В приведённом ниже примере:

Создайте целостную конфигурацию пользователь/группа так, чтобы было возможно обращаться к службе Oracle на каждой кластерной системе. Например:

mkdir /users
groupadd -g 900 dba
groupadd -g 901 oinstall
useradd -u 901 -g 901 -d /users/oracle -m oracle
usermod -G 900 oracle

В этом примере используются три сценария, которые должны быть размещены в каталоге /users/oracle, а владельцем файлов должен быть пользователь oracle. Для запуска и остановки службы Oracle используется сценарий oracle. Укажите этот сценарии при добавлении службы. Этот сценарий вызывает остальные сценарии Oracle. Сценарии startdb и stopdb запускают и останавливают базу данных. При этом приложение может взаимодействовать с базой данных самыми разными способами.

Ниже приведён пример сценария oracle, который запускает, останавливает и проверяет состояние службы Oracle.

#!/bin/sh
#
# Cluster service script to start, stop, and check status of oracle
#

cd /users/oracle

case $1 in
start)
    su - oracle -c ./startdb
    ;;
stop)
    su - oracle -c ./stopdb
    ;;
status)
    status oracle
    ;; 
esac

Ниже приведен пример сценария startdb, который запускает экземпляр сервера баз данных Oracle:

#!/bin/sh
#

#
# Script to start the Oracle Database Server instance.
#
########################################################################
#
# ORACLE_RELEASE
#
# Specifies the Oracle product release.
#
########################################################################

ORACLE_RELEASE=9.2.0

########################################################################
#
# ORACLE_SID
#
# Specifies the Oracle system identifier or "sid", which is the name of
# the Oracle Server instance.
#
########################################################################

export ORACLE_SID=TEST

########################################################################
#
# ORACLE_BASE
#
# Specifies the directory at the top of the Oracle software product and
# administrative file structure.
#
########################################################################

export ORACLE_BASE=/u01/app/oracle

########################################################################
#
# ORACLE_HOME
#
# Specifies the directory containing the software for a given release.
# The Oracle recommended value is $ORACLE_BASE/product/<release>
#
########################################################################

export ORACLE_HOME=/u01/app/oracle/product/${ORACLE_RELEASE}

########################################################################
#
# LD_LIBRARY_PATH
#
# Required when using Oracle products that use shared libraries.
#
########################################################################

export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:$LD_LIBRARY_PATH

########################################################################
#
# PATH
#
# Verify that the users search path includes $ORACLE_HOME/bin 
#
########################################################################

export PATH=$PATH:${ORACLE_HOME}/bin

########################################################################
#
# This does the actual work.
#
# Start the Oracle Server instance based on the initSID.ora
# initialization parameters file specified.
# 
########################################################################

/u01/app/oracle/product/9.2.0/bin/sqlplus << EOF
sys as sysdba
spool /home/oracle/startdb.log
startup pfile = /u01/app/oracle/product/9.2.0/admin/test/scripts/init.ora open;
spool off
quit;
EOF

exit

Ниже приведён пример сценария stopdb, который останавливает экземпляр сервера базы данных Oracle:

#!/bin/sh
#
#
# Script to STOP the Oracle Database Server instance.
#
######################################################################
#
# ORACLE_RELEASE
#
# Specifies the Oracle product release.
#
######################################################################

ORACLE_RELEASE=9.2.0

######################################################################
#
# ORACLE_SID
#
# Specifies the Oracle system identifier or "sid", which is the name 
# of the Oracle Server instance.
#
######################################################################

export ORACLE_SID=TEST

######################################################################
#
# ORACLE_BASE
#
# Specifies the directory at the top of the Oracle software product
# and administrative file structure.
#
######################################################################

export ORACLE_BASE=/u01/app/oracle

######################################################################
#
# ORACLE_HOME
#
# Specifies the directory containing the software for a given release.
# The Oracle recommended value is $ORACLE_BASE/product/<release>
#
######################################################################

export ORACLE_HOME=/u01/app/oracle/product/${ORACLE_RELEASE}

######################################################################
#
# LD_LIBRARY_PATH
#
# Required when using Oracle products that use shared libraries.
#
######################################################################

export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:$LD_LIBRARY_PATH

######################################################################
#
# PATH
#
# Verify that the users search path includes $ORACLE_HOME/bin 
#
######################################################################

export PATH=$PATH:${ORACLE_HOME}/bin

######################################################################
#
# This does the actual work.
#
# STOP the Oracle Server instance in a tidy fashion.
# 
######################################################################

/u01/app/oracle/product/9.2.0/bin/sqlplus << EOF
sys as sysdba
spool /home/oracle/stopdb.log
shutdown abort;
spool off
quit;
EOF

exit

4.1.1. Oracle и Cluster Configuration Tool

Чтобы добавить службу Oracle в Настройке кластера (Cluster Configuration Tool), выполните следующее:

  1. Запустите Настройку кластера (Cluster Configuration Tool), выбрав Главное меню (Main Menu) => Системные параметры (System Settings) => Настройка сервера (Server Settings) => Кластер (Cluster) или выполнив в приглашении оболочки redhat-config-cluster. По умолчанию запускается Состояние кластера (Cluster Status Tool).

  2. Запустите Настройку кластера (Cluster Configuration Tool), выбрав Кластер (Cluster) => Настройка (Configure) в меню программы Состояние кластера (Cluster Status Tool).

  3. Перейдите на вкладку Службы (Services).

  4. Добавьте службу Oracle.

    • Щёлкните Создать (New). На экране появится диалог Служба (Service).

      Рисунок 4-1. Добавление службы Oracle

    • Введите в поле Имя службы (Service Name) имя службы Oracle.

    • Выберите в поле Домен переноса (Failover Domain) домен переноса или оставьте в нём значение None.

    • Введите интервал (в секундах) проверки жизнедеятельности службы Oracle с помощью функции status сценария инициализации.

    • Определите сценарий в поле Сценарий пользователя (User Script), например, /home/oracle/oracle.

    • Нажмите OK

  5. Добавьте IP-адрес службы Oracle.

    • Выберите службу Oracle и щёлкните Добавить потомка (Add Child).

    • Выберите пункт Добавить IP-адрес службы (Add Service IP Address) и нажмите OK. На экране появится диалог IP-адрес службы (Service IP Address).

    • Заполните поле IP-адрес (IP Address).

    • Введите в поле Маска подсети (Netmask) маску или оставьте в нём значение None.

    • Введите в поле Широковещательный (Broadcast Address) широковещательный адрес или оставьте в нём значение None.

    • Нажмите OK.

  6. Добавьте устройство для службы Oracle и административных файлов.

    • Выберите службу Oracle и щёлкните Добавить потомка (Add Child).

    • Выберите пункт Добавить устройство (Add Device) и нажмите OK. На экране появится диалог Устройство (Device).

    • Заполните поле Специальный файл устройства (Device Special File) (введите, например, /dev/sdb5).

    • В поле Точка монтирования (Mount Point) введите /u01.

    • В поле Тип ФС (FS Type) выберите тип файловой системы или оставьте его пустым.

    • В поле Параметры (Options) укажите все параметры подключения, включая rw (чтение-запись).

    • Поставьте или снимите флажок Принудительно отмонтировать (Force Unmount).

    • Нажмите OK.

  7. Добавьте устройство для файлов базы данных Oracle.

    • Выберите службу Oracle и щёлкните Добавить потомка (Add Child).

    • Выберите пункт Добавить устройство (Add Device) и нажмите OK. На экране появится диалог Устройство (Device).

    • Заполните поле Специальный файл устройства (Device Special File) (введите, например, /dev/sdb6).

    • В поле Точка монтирования (Mount Point) введите /u02.

    • В поле Тип ФС (FS Type) выберите тип файловой системы или оставьте его пустым.

    • В поле Параметры (Options) укажите все параметры подключения, включая rw (чтение-запись).

    • Поставьте или снимите флажок Принудительно отмонтировать (Force Unmount).

    • Нажмите OK.

  8. Выберите Файл (File) => Сохранить (Save), чтобы сохранить параметры службы Oracle.