7 июня 2010 г.

Запуск/останов SAP инстанции на HP-UX. Часть II.


В первой части статьи я рассказал как запускать SAP-систему на сервере под управлением HP-UX. Теперь давайте посмотрим, что мы можем получить "с этого кролика, кроме ценного меха". :)

Самое главное, что мы получили, это то, что SAP-система без нашего участия корректно останавливается при останове ОС (например, после сигнала останова от UPS) и автоматически запускается при старте сервера. Согласитесь, что в автоматизации полезных действий и состоит основная задача администратора. Как и получение полезных привычек задача просто человека. ;)

Теперь десерт. Организация данных скриптов позволит администратору автоматизировать процесс перезапуска SAP-системы. Например, для того, чтобы вступили в силу изменения параметров инстанции SAP. Для этого необходимо набросать простенький скриптик следующего содержания:

#!/sbin/sh

# Print current date to log
echo "Current date is"
/usr/bin/date
echo "--"

# Stopping SAP system
/sbin/init.d/instance-sap stop
/sbin/init.d/saposcol stop
/sbin/init.d/listener-one stop

# Pause 30 seconds
sleep 30

# Starting SAP & ORACLE
/sbin/init.d/listener-one start
/sbin/init.d/instance-sap start

#Print end line
echo "-------------------"


И, используя утилиту cron, запланировать на ночь тихий и быстрый рестарт SAP-системы, прописав в crontab файле следующие строки:

# Shibolov Vyacheslav. SAP restart.
30 04 21 01 * /home/slava/scripts/sap_restart/start_stop_sap.sh 1>> /home/slava/scripts/sap_restart/start_stop_sap.log 2>&1


Если не хотите писать скрипт, то можно просто прописать следующие строчки в crontab файле:

# Restart SAP system. Shibolov Vyacheslav.
00 23 02 06 * /sbin/rc2.d/K009stopsap 1>> /SAPrestart.log 2>&1
30 23 02 06 * /sbin/rc3.d/S991startsap 1>> /SAPrestart.log 2>&1


Утром спокойно наблюдаете результаты работы. 
Где еще можно использовать данные скрипты? Например, для увеличения размеров файловой системы (команда extendfs). Для этого создаете скрипт, который последовательно останавливает SAP-систему и базу данных, отмонтирует раздел, расширяет его, монтирует на место и запускает SAP-систему. И все это без просиживания администратором ночи на работе. Можете придумать свои случаи применения. :) 

Автор: Шиболов Вячеслав Анатольевич


3 июня 2010 г.

Запуск/останов SAP инстанции на HP-UX. Часть I.

Запуск процессов-демонов (фоновые процессы, работающие всё время работы системы) в операционной системе HP-UX удовлетворяет стандарту System V. Сначала стартует процесс инициализации системы - init. /etc/inittab - файл настройки процесса init. В нем указан уровень старта системы по умолчанию (3). Процесс инициализации системы (init) запускает скрипт /sbin/rc, который в зависимости от уровня старта системы запускает соответствующие скрипты из директорий /sbin/rcX.d/, где X=0,1,2,3. В данных директориях лежат не скрипты, а линки, начинающиеся на "S" или "K", в зависимости от того, что необходимо на данном уровне сделать с подсистемой - запустить (start) или остановить (kill). Сами скрипты находятся в директории /sbin/init.d/. Файлы настройки подсистем хранятся в директории /etc/rc.config.d/.


Если необходимо "поднять" систему на уровень 3, то процесс /sbin/rc выполняет последовательно скрипты начинающиеся символом "S" из директорий /sbin/rc1.d/, /sbin/rc2.d/, /sbin/rc3.d/, поднимаясь сначала на уровень 1, затем 2, а потом уже 3.
Останов системы происходит в обратной последовательности: выполнение процессом /sbin/rc скриптов начинающихся на символ "K" из директорий /sbin/rcX.d/ (где X=1,2,3) и переход на уровень 2, затем 1 и 0.
Скрипты одни и для того и для другого, просто выполняются с параметром start или stop соответственно. Есть еще параметры start_msg и stop_msg. С этими параметрами скрипты подсистем выдают сообщения, которые можно лицезреть на консоли при старте/останове системы.


Это была матчасть. Теперь перейдем к практике. Как заставить стартовать и останавливаться нашу SAP систему, установленную на сервер под управлением HP-UX. Причем, делать это автоматически при старте/останове ОС.
Для начала надо скачать архив (3 Кб). Выложить его на сервер с HP-UX и установленной системой SAP, например, в директорию /tmp/. Далее последовательность команд на самом сервере под пользователем root такова:
  1. Распаковать архив: # gunzip -c /tmp/start_stop_SAP.tar.gz > /tmp/start_stop_SAP.tar
  2. # cd /tmp; tar -xvf /tmp/start_stop_SAP.tar
  3. Открыть текстовым редактором, например, vi, и подкорректировать последовательно файлы из директории /tmp/start_stop_SAP/etc/rc.config.d/. В данных файлах задаются следующие параметры: oracleVAR, instanceVAR, saposcolVAR, listenerVAR - параметры запуска скриптов, 0 - не запускать, 1- запускать (установив значение в "0", можно на время отключить автостарт/автостоп системы SAP на данном сервере). DATABASE_NAME и INSTANCE_NAME - это SID базы данных и SAP-системы соответственно. В примере - SID = TTM. ORA_SID и SAP_SID - пользователь <sid>adm. В примере - ttmadm. COMMAND_START и COMMAND_STOP - команды запуска и останова SAP-системы. В примере - startsap_tsap_00 и stopsap_tsap_00, здесь tsap - hostname, 00 - номер системы. Аккуратно прописать эти параметры, сохранить файлы.
  4. Копируем файлы раз: # cp -p /tmp/start_stop_SAP/etc/rc.config.d/* /etc/rc.config.d/
  5. Копируем файлы два: # cp -p /tmp/start_stop_SAP/sbin/init.d/* /sbin/init.d/
  6. Копируем файлы три: # cp -p /tmp/start_stop_SAP/sbin/rc2.d/* /sbin/rc2.d/
  7. Копируем файлы и четыре: # cp -p /tmp/start_stop_SAP/sbin/rc3.d/* /sbin/rc3.d/
Скрипты очень просты в исполнении. Если Вы знаете основы shell-программирования и процесс запуска-останова SAP-системы на Unix-системах, то легко разберетесь в скриптах и сможете их модифицировать: добавить Java-инстанцию, "разрулить ситуацию" с несколькими установленными SAP-инстанциями на одном сервере. Если будут проблемы, пишите мне, помогу адаптировать скрипты.

Автор: Шиболов Вячеслав Анатольевич