Автоматический запуск/останов SAP-инстанции на Linux
Операционная система SUSE Linux Enterprise Server 11, как и HP-UX, в качестве системы инициализации использует SysV. В этом случае процесс инициализации совместим со стандартом операционной системы System V.
Ранее я выкладывал посты (часть 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
Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland
ЗарегистрироватьсяУ вас уже есть учетная запись?
Войти