13 апреля 2021 г.

Автоматический запуск/останов SAP инстанции на Linux: примеры использования

В прошлый раз я рассказал, как с помощью shell-скриптов интегрировать процесс запуска/останова SAP системы в процесс инициализации операционной системы Linux. Всего один скрипт, написанный по определённым правилам, и 2 ссылки на него для старта и останова (рис. 1). А в результате ваша SAP система будет останавливаться, когда операционная система отправляется в shutdown или reboot и аналогично запускаться при её старте. Это позволит получить работающую систему при внезапном незапланированном рестарте сервера. Особенно это актуально для дополнительных серверов приложений или кластерной конфигурации. Когда при сбое на основном узле кластера система должна стартовать на резервном узле без вмешательства администратора. Большинство систем построения отказоустойчивых кластеров имеет свои инструменты для старта-останова приложений, но иногда возможно и использование собственных разработок. Тем более если они тщательно протестированы и работают без сбоев.

Рис. 1. Пример расположения инициализационного скрипта и ссылок на него.

Вторая польза от этих скриптов в том, что вы можете использовать их для ручного останова, запуска или проверки состояния SAP системы. Скрипт для центральной инстанции запускает и останавливает не только SAP инстанцию, но и базу данных с сопутствующими процессами (например, процесс LISTENER). Опции, которые можно использовать для этого, я перечислял в прошлом посте (рис. 2). В случае решения каких-то проблем с системой (troubleshooting) лучше выполнять запуск/останов не скриптами, а командами, отслеживая внимательно выполнение каждого шага. А вот если система работает стабильно, то почему бы не облегчить себе немного жизнь: выполнить одну команду, вместо 2-4? :)

Рис. 2. Пример ручного использования инициализационного скрипта.

Третий момент, где мы можем использовать этот скрипт - это запланированный рестарт SAP системы целиком или только её части. Например, изменили вы параметры SAP инстанции и теперь вам необходимо выполнить рестарт инстанции, чтобы параметры подхватились системой. Если у вас есть такой shell-скрипт, то можно запланировать его запуск с нужными параметрами через планировщик операционной системы cron. И при планировании выбрать интервал времени, когда вы можете устроить downtime системе (рис. 3). Чаще всего это возможно сделать или в ночное время, или выходной день, в зависимости от требований к системе. 

Рис. 3. Пример планирования рестарта SAP инстанции через cron.

Главное после такого рестарта, не забудьте закомментировать или удалить запись в планировщике. А то в будущем возможен "сюрприз". 

Ну и последний пример применения скриптов инициализации - это резервное копирование. На текущем проекте резервное копирование выполняется средствами программного обеспечения HPE Data Protector (иногда называют Micro Focus Data Protector). А для серверов, как я уже рассказывал, используется система виртуализации VMware vSphere. Data Protector прекрасно умеет интегрироваться с VMware и при резервном копировании виртуальных машин использует снимки виртуальных машин (snapshots). Таким образом, происходит резервное копирование "замороженного" снимка виртуальной машины (то есть консистентного состояния всех виртуальных дисков) без прерывания работы основной системы. Для получения более консистентного снимка можно перед его созданием выполнить останов SAP системы вместе с базой данных. А после создания снимка SAP систему сразу же запустить, обеспечив её доступность для пользователей. Реализовать это можно через средства Data Protector. Перед выполнением запроса на создание снимка виртуальной машины программное обеспечение резервного копирования может из целевой операционной системы выполнить shell-скрипт  /usr/sbin/pre-freeze-script, а сразу же после создания - другой shell-скрипт /usr/sbin/post-thaw-script. Ну а в этих скриптах можно прекрасно использовать уже написанный инициализационный скрипт для SAP системы (рис. 4).

Рис. 4. Пример shell-скриптов для Data Protector.

Рис. 5. Журнал создания снимков VM для резервного копирования.

Как видите (рис. 5) в данном случае рестарт системы занимает буквально пару минут. В течении этого времени создаётся снимок виртуальной машины, после чего SAP система становится вновь доступной для пользователей. А система резервного копирования (СРК) может спокойно копировать виртуальные диски снимка на целевое хранилище, не влияя на работу SAP системы. И самое главное, мы получаем абсолютно консистентную копию виртуальной машины.

Надеюсь эти примеры убедили вас в том, что данные скрипты могут быть полезны администратору и стоит задуматься об их создании.


Комментариев нет:

Отправить комментарий