В далёком 2010 году я выкладывал посты (часть 1, часть 2) про процесс запуска операционной системы HP-UX. Помимо этого там было описано как настроить автоматический запуск и останов SAP системы вместе с операционной системой.
Потом, как вы помните, был пост, в котором я описывал процесс миграции системы на платформу x86_64 и операционную систему Linux. Пост назывался "История одной миграции SAP системы или Век живи, век учись! - III". Таким образом, система стала работать на операционной системе SUSE Linux Enterprise Server версии 11 SP4 и встал вопрос как автоматизировать запуск и останов SAP системы уже в данной операционной системе.
Всё это я веду к тому, что в этот раз хочу рассказать как решил этот вопрос, может быть кому-то пригодится.
Операционная система SUSE Linux Enterprise Server 11, как и HP-UX, в качестве системы инициализации использует SysV. В этом случае процесс инициализации совместим со стандартом операционной системы System V. Тогда как почти все современные, на данный момент, дистрибутивы Linux (и SLES, начиная с версии 12) перешли на новую систему инициализации - systemd. Если кратко, то SysV основан на наборе shell-скриптов, а systemd это огромный программный универсальный комбайн с большим количеством функций (если интересны детали, то начать изучение можно с этого). А описание версий дистрибутивов (и систему инициализации, в частности) можно найти, например, на сайте DistroWatch.com.
За основу shell-скриптов для решения поставленной задачи я взял скрипт, которым кто-то из читателей поделился в комментарии к старому посту про HP-UX. Но "из коробки" у меня скрипт не заработал. Точнее при ручном выполнении скрипта всё работало "на ура": система запускалась и останавливалась. А вот при запуске скрипта во время старта операционной системы возникали какие-то проблемы и он не срабатывал. Анализ показал, что в скрипте не работает изящное решение по выделению системного идентификатора SAP системы (и базы данных) SAPSID и DBSID из имени скрипта. То есть по какой-то причине при запуске скрипта процессом init не работал вот этот кусок кода:
FILENAME=`basename $0`
SAPSID=${FILENAME:6:3}
В итоге, я заменил эти строки на прямое указание идентификатора системы в коде:
SAPSID=DLC
Здесь DLC - это пример системного идентификатора системы.
Потом было ещё несколько усовершенствований, переделок. В итоге, работающие именно у меня скрипты можно скачать по этой ссылке.
Напоминаю ещё раз, что скрипты служат для автоматизации процесса запуска/останова старой SAP системы (используются скрипты startsap и stopsap) с базой данных Oracle на Linux, использующем систему инициализации SysV.
Инструкция по установке скриптов не сложная:
1. Для настройки запуска/останова SAP инстанции с базой данных Oracle cкопировать скрипт sapctlSID_CI в директорию /etc/init.d, переименовав имя файла и добавив в имя скрипта текущий SAPSID, командой вида:
cp sapctlSID_CI /etc/init.d/sapctl<SID>
2. Отредактировать файл /etc/init.d/sapctl<SID>, изменив в начале скрипта строки:
# Provides: sapctlSID
и
SAPSID=SID
Заменив значение SID на свой <SID>.
Например,
# Provides: sapctlDLC
...
SAPSID=DLC
3. Права/полномочия на файл должны быть "755", а владельцы файла/группы: "root:root".
4. Следующая команда автоматически создаст ссылки в необходимых директориях /etc/init.d/rc*.d/ для запуска и останова SAP на нужном уровне ОС:
chkconfig --add sapctl<SID>
5. После выполнения вышеописанных шагов скрипт будет автоматически запускать и останавливать SAP систему вместе с базой данных ORACLE и процессами sapOScol и LISTENER на 3 и 5 уровнях операционной системы соответственно.
6. Вручную скрипт можно запускать командами со следующими опциями:
- /etc/init.d/sapctl<SID> status - показывает статус всех процессов SAP + DB;
- /etc/init.d/sapctl<SID> stop - останавливает все процессы SAP + DB;
- /etc/init.d/sapctl<SID> start - запускает все процессы SAP + DB;
- /etc/init.d/sapctl<SID> restart - сначала останавливают систему целиком, а потом запускает SAP + DB;
- /etc/init.d/sapctl<SID> r3stop - останавливает все процессы только SAP инстанции;
- /etc/init.d/sapctl<SID> r3start - запускает все процессы только SAP инстанции;
- /etc/init.d/sapctl<SID> r3restart - сначала останавливает, а потом запускает все процессы только SAP инстанции.
7. Для временного или постоянного отключения автоматического старта и останова SAP системы достаточно удалить ссылки из директорий /etc/init.d/rc*.d/ командой:
chkconfig --del sapctl<SID>
8. Скрипт с именем sapctlSID_DI предназначен для запуска/останова отдельной диалоговой инстанции SAP системы. Всё что относится к запуску базы данных из него удалено. Процесс установки и настройки идентичен вышеописанному. При работе в ручном режиме работают опции "status, stop, start и restart".
Данная инструкция есть в текстовом файле внутри архива со скриптами. Так что достаточно скачать архив.
Ещё раз спасибо тому, кто поделился своим скриптом. Без этого процесс решения моей задачи однозначно занял бы больше времени. А этот пост, надеюсь, кому-то поможет быстрее решить его задачу.
Автор: Шиболов Вячеслав Анатольевич
Комментариев нет:
Отправить комментарий