Red Hat Cluster Manager: Руководство по установке и администрированию Red Hat Cluster Manager | ||
---|---|---|
Назад | Вперед |
В этой главе содержатся инструкции по настройке Red Hat Enterprise Linux AS для реализации баз данных с высокой степенью доступности.
Замечание | |
---|---|
В следующих разделах представлены инструкции по созданию примерной конфигурации базы данных. Учтите, что ваша конфигурация может отличаться от приведенной, в зависимости от версии применяемого сервера баз данных. Поэтому эти инструкции могут быть неприменимы в исходном виде. |
Служба Oracle предоставляет данные приложению базы данных, обеспечивая при этом высокую степень доступности. Приложение может в свою очередь предоставить сетевой доступ к базе данных клиентским системам, например Web-серверам. В случае отказа службы, приложение обращается к данным общей базы данных, используя другую кластерную систему. Доступной по сети службе базы данных обычно назначается IP адрес, который переносится вместе со службой, таким образом сохраняется прозрачное подключение клиентов к данным.
В этом разделе представлен пример создания кластерной службы для базы данных Oracle. Хотя значения переменных, используемые в сценарии службы, зависят от конкретной конфигурации Oracle, приведенный пример поможет вам настроить в вашем окружении. Обратитесь к разделу Тонкая настройка служб Oracle за информацией об увеличении производительности службы.
В приведенном ниже примере:
Службе Oracle присвоен один IP адрес, к которому будут подключаться клиенты.
Служба использует две смонтированных файловых системы, одну для исполняемых файлов Oracle (/u01) и одну для базы данных Oracle (/u02), которые были настроены до создания службы.
В каждой кластерной системе до создания службы была создана административная учетная запись oracle.
Сетевой доступ в этом примере осуществляется через прокси Perl DBI
Административный каталог располагается на том же диске, что и служба Oraсle (например, /u01/app/oracle/admin/db1).
В этом примере используются пять сценариев, которые должны быть размещены в каталоге /home/oracle, владельцем файлов должен быть пользователь oracle. Сценарий oracle используется для запуска и остановки службы Oracle. Укажите этот сценарии при добавлении службы. Этот сценарий вызывает остальные сценарии Oracle. Сценарии startdb и stopdb запускают и останавливают базу данных. Сценарии startdbi и stopdbi запускают и останавливают Web-приложение, которое написано с использованием Perl-сценариев и модулей и взаимодействует с базой данных Oracle. При этом приложение может взаимодействовать с базой данных самыми разными способами.
Ниже приведен пример сценария oracle, который запускает и останавливает службу Oracle. Обратите внимание, сценарий работает от имени пользователя oracle, а не root.
#!/bin/sh # # Cluster service script to start/stop oracle # cd /home/oracle case $1 in 'start') su - oracle -c ./startdbi su - oracle -c ./startdb ;; 'stop') su - oracle -c ./stopdb su - oracle -c ./stopdbi ;; esac |
Ниже приведен пример сценария startdb, который запускает экземпляр сервера баз данных Oracle:
#!/bin/sh # # # Script to start the Oracle Database Server instance. # ######################################################################## # # ORACLE_RELEASE # # Specifies the Oracle product release. # ######################################################################## ORACLE_RELEASE=8.1.6 ######################################################################## # # ORACLE_SID # # Specifies the Oracle system identifier or "sid", which is the name of # the Oracle Server instance. # ######################################################################## export ORACLE_SID=TESTDB ######################################################################## # # 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=/u01/app/oracle/product/${ORACLE_RELEASE}/lib ######################################################################## # # PATH # # Verify that the users search path includes $ORCLE_HOME/bin # ######################################################################## export PATH=$PATH:/u01/app/oracle/product/${ORACLE_RELEASE}/bin ######################################################################## # # This does the actual work. # # The oracle server manager is used to start the Oracle Server instance # based on the initSID.ora initialization parameters file specified. # ######################################################################## /u01/app/oracle/product/${ORACLE_RELEASE}/bin/svrmgrl << EOF spool /home/oracle/startdb.log connect internal; startup pfile = /u01/app/oracle/admin/db1/pfile/initTESTDB.ora open; spool off EOF exit 0 |
Ниже приведен пример сценария stopdb, который останавливает экземпляр сервера базы данных Oracle:
#!/bin/sh # # # Script to STOP the Oracle Database Server instance. # ###################################################################### # # ORACLE_RELEASE # # Specifies the Oracle product release. # ###################################################################### ORACLE_RELEASE=8.1.6 ###################################################################### # # ORACLE_SID # # Specifies the Oracle system identifier or "sid", which is the name # of the Oracle Server instance. # ###################################################################### export ORACLE_SID=TESTDB ###################################################################### # # 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=/u01/app/oracle/product/${ORACLE_RELEASE}/lib ###################################################################### # # PATH # # Verify that the users search path includes $ORCLE_HOME/bin # ###################################################################### export PATH=$PATH:/u01/app/oracle/product/${ORACLE_RELEASE}/bin ###################################################################### # # This does the actual work. # # The oracle server manager is used to STOP the Oracle Server instance # in a tidy fashion. # ###################################################################### /u01/app/oracle/product/${ORACLE_RELEASE}/bin/svrmgrl << EOF spool /home/oracle/stopdb.log connect internal; shutdown abort; spool off EOF exit 0 |
Ниже приведен пример сценария startdbi, который запускает демон прокси DBI:
#!/bin/sh # # ##################################################################### # # This script allows are Web Server application (perl scripts) to # work in a distributed environment. The technology we use is # base upon the DBD::Oracle/DBI CPAN perl modules. # # This script STARTS the networking DBI Proxy daemon. # ##################################################################### export ORACLE_RELEASE=8.1.6 export ORACLE_SID=TESTDB export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/${ORACLE_RELEASE} export LD_LIBRARY_PATH=/u01/app/oracle/product/${ORACLE_RELEASE}/lib export PATH=$PATH:/u01/app/oracle/product/${ORACLE_RELEASE}/bin # # This line does the real work. # /usr/bin/dbiproxy --logfile /home/oracle/dbiproxy.log --localport 1100 & exit 0 |
Ниже приведен пример сценария stopdbi, который останавливает демон сетевого прокси DBI:
#!/bin/sh # # ################################################################### # # Our Web Server application (perl scripts) work in a distributed # environment. The technology we use is base upon the # DBD::Oracle/DBI CPAN perl modules. # # This script STOPS the required networking DBI Proxy daemon. # ################################################################### PIDS=$(ps ax | grep /usr/bin/dbiproxy | awk '{print $1}') for pid in $PIDS do kill -9 $pid done exit 0 |
В следующем примере показано как с помощью cluadmin добавить службу Oracle.
cluadmin> service add oracle The user interface will prompt you for information about the service. Not all information is required for all services. Enter a question mark (?) at a prompt to obtain help. Enter a colon (:) and a single-character command at a prompt to do one of the following: c - Cancel and return to the top-level cluadmin command r - Restart to the initial prompt while keeping previous responses p - Proceed with the next prompt Preferred member [None]: ministor0 Relocate when the preferred member joins the cluster (yes/no/?) \ [no]: yes User script (e.g., /usr/foo/script or None) \ [None]: /home/oracle/oracle Do you want to add an IP address to the service (yes/no/?): yes IP Address Information IP address: 10.1.16.132 Netmask (e.g. 255.255.255.0 or None) [None]: 255.255.255.0 Broadcast (e.g. X.Y.Z.255 or None) [None]: 10.1.16.255 Do you want to (a)dd, (m)odify, (d)elete or (s)how an IP address, or are you (f)inished adding IP addresses: f Do you want to add a disk device to the service (yes/no/?): yes Disk Device Information Device special file (e.g., /dev/sda1): /dev/sda1 Filesystem type (e.g., ext2, reiserfs, ext3 or None): ext2 Mount point (e.g., /usr/mnt/service1 or None) [None]: /u01 Mount options (e.g., rw, nosuid): [Return] Forced unmount support (yes/no/?) [no]: yes Do you want to (a)dd, (m)odify, (d)elete or (s)how devices, or are you (f)inished adding device information: a Device special file (e.g., /dev/sda1): /dev/sda2 Filesystem type (e.g., ext2, reiserfs, ext3 or None): ext2 Mount point (e.g., /usr/mnt/service1 or None) [None]: /u02 Mount options (e.g., rw, nosuid): [Return] Forced unmount support (yes/no/?) [no]: yes Do you want to (a)dd, (m)odify, (d)elete or (s)how devices, or are you (f)inished adding devices: f Disable service (yes/no/?) [no]: no name: oracle disabled: no preferred node: ministor0 relocate: yes user script: /home/oracle/oracle IP address 0: 10.1.16.132 netmask 0: 255.255.255.0 broadcast 0: 10.1.16.255 device 0: /dev/sda1 mount point, device 0: /u01 mount fstype, device 0: ext2 force unmount, device 0: yes device 1: /dev/sda2 mount point, device 1: /u02 mount fstype, device 1: ext2 force unmount, device 1: yes Add oracle service as shown? (yes/no/?) y notice: Starting service oracle ... info: Starting IP address 10.1.16.132 info: Sending Gratuitous arp for 10.1.16.132 (00:90:27:EB:56:B8) notice: Running user script '/home/oracle/oracle start' notice, Server starting Added oracle. cluadmin> |