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-инстанциями на одном сервере. Если будут проблемы, пишите мне, помогу адаптировать скрипты.

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


30 апреля 2010 г.

SAP GUI Installation Server

Клиентское место SAP GUI можно устанавливать не только с локального CD-диска или из локальной директории, но и с удаленного сервера установки SAP GUI - SAP GUI Installation Server. Для организации такого сервера необходим файл-сервер на базе MS Windows Server, около 1 Гб дискового пространства, диск с дистрибутивом SAP GUI. На текущий момент это SAP GUI 7.10. Хочу сразу предупредить - берите свежий диск - SAP GUI 7.10 comp 4. Я сначала пытался установить с SAP GUI 7.10 comp 1, но потерял пару дней - не было возможности ставить пакеты поддержки на сервер, не было части пунктов меню. Не повторяйте моей ошибки. :)
Установка SAP GUI Installation Server:
  1. Копирование дистрибутива SAP GUI 7.10 на выделенный файл-сервер.
  2. Выделение директории, организация общего доступа к ней по локальной сети.
  3. Запуск NW_7.0_Presentation\PRES1\GUI\WINDOWS\WIN32\setup\NwCreateInstServer.exe и установка сервера SAP GUI в выделенную директорию.
После этого запускается основной инструмент конфигурации, обновления SAP GUI Installation Server - NwSapSetupAdmin.exe (SAP Installation Server Administration Tool). Данный инструмент можно запустить в дальнейшем вручную через пункт меню MS Windows Server.


Данный инструмент выглядит следующим образом:


На данный сервер можно "накатывать" пакеты поддержки для SAP GUI. Через кнопку "Patch server". Можно создать свой Package из компонент сервера, которые нужны тому или иному типу пользователей.


Перейти к списку пакетов при установке можно, выбрав пункт "Switch to a list of predefided packages", на следующем экране:


Самые интересные возможности SAP GUI Installation Server:
  • Создание установочного exe-файла из Package с последним пакетом поддержки на SAP GUI (пункт меню Packages -> Compress to Single-file Installer).
  • Самое "вкусное" - это возможность выполнения удалённо процедур удаления, установки, обновления клиентского места SAP GUI. Для этого открывается пункт меню "Remote -> Execute Process Remotely". Далее указывается host рабочей станции пользователя, строка выполнения комманд и имя пользователя/пароль с достаточными полномочиями для этой операции на рабочей станции пользователя.

     Основные строки выполнения команд следующие:
  • C:\Program Files\SAP\SAPSetup\Setup\NwSapSetup.exe /Silent /Uninstall /All - удалить клиентское место.
  • \\<server_share>\Setup\NwSapSetup.exe /Silent /Package="SAP_GUI_STANDARD"
- установить Package SAP_GUI_STANDARD.

  • \\<server_share>\Setup\NwSapSetup.exe /Silent /Update
  • - обновить клиентское место установленное на рабочей станции пользователя до уровня пакета поддержки сервера. Есть возможность автоматического обновления клиентского места SAP GUI на рабочей станции пользователя. Для этого надо проверить активность автоматического обновления через пункт меню "Services -> Configure Automatic Workstation Update Service" на стороне сервера.


    И на стороне пользователя выбрать пункт меню "Cofigure Update-Check", появляющийся при нажатии правой клавишей мыши на иконке SAP Logon.


    Здесь стоит проверить активность обновления и указать периодичность проверки в кликах мыши на иконку SAP Logon. Проверка происходит в момент запуска программы SAP Logon. Если программа автоматического обновления на стороне рабочей станции пользователя обнаружит, что произошло обновление SAP GUI Installation Server, она выдаст пользователю диалоговое окно с предложением обновить SAP GUI. Если выберете обновить, то программа "без вопросов" оперативно обновит версию SAP GUI. Правда, такая реакция системы некоторых пользователей может напугать. :) Поэтому есть возможность централизованно на стороне сервера отключить эту функцию. Стоит заметить, что SAP GUI будет обновляться таким образом, только если клиентское место было изначально установлено с SAP GUI Installation Server.

    Дополнительную информацию смотрите в справке по программе SAP Installation Server Administration Tool (меню Help).

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


    22 апреля 2010 г.

    Вышла новая версия SAP GUI 7.20

    Пока в России вся страна праздновала день космонавтики, вспоминая таких людей, как Юрий Гагарин, компания SAP AG без лишнего шума обновила версию клиентского места, выпустив SAP GUI for Windows 7.20 и SAP GUI for Java 7.20. Первую скачать можно здесь, вторая где-то рядом. ;)

    Я поставил себе SAP GUI for Windows 7.20 на рабочий ноутбук под управлением MS Windows 7. Процедура установки аналогична процедуре установки версии 7.10. Запускаете на выполнение файл NW_7.0_Presentation\PRES1\GUI\WINDOWS\WIN32\SetupAll.exe и проходите по серии экранчиков:


    Запускаем SAP GUI Configuraton и первое, что бросается в глаза это новая тема оформления "SAP Signature Theme". Как позже оказалось это не новшество версии 7.20, данная тема появилась и в версии 7.10 после 11 пакета поддержки.


    Полная версия SAP GUI, что я поставил, следующая:


    Основное окно программы теперь выглядит так:


    Появилась вкладка "Фавориты", куда я сразу же накидал системы, с которыми работаю наиболее часто:


    Окно входа в систему тоже претерпело некоторые изменения:


    Что сразу бросается в глаза это курсорчик в виде квадратика-мишени, который выделяет активное поле:


    С ним очень удобно работать клавиатурой. Правда, при выборе другой темы оформления этот курсорчик пропадает и вид становится отнюдь не такой симпатичный. Примерно, как у MS Windows 7 без Aero:


    При работе были замечены такие же глюки с перерисовкой и мерцанием, как у Диспетчера файлов в MS Windows 7.
    Файлы настройки были обнаружены в директории С:\Users\shibolov\AppData\Roaming\SAP\Common\ и состояли из файлов saplogon.ini (настройки соединений) и SapLogonTree.xml (хранит фавориты и указатели на файлы saplogon.ini и sapshortcut.ini).
    Основными особенностями SAP GUI for Windows 7.20 компания SAP AG отмечает:
    • поддержка MS Windows 7, MS Office 2010 (32-бит),
    • разработка на Visual Studio 2008,
    • вышеупомянутый SAP Signature Theme в качестве темы, по умолчанию.

    С полным списком изменений можно ознакомится в SAP note:


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


    12 апреля 2010 г.

    Планировщик заданий CRON


    Семейство операционных систем UNIX и их клонов (Linux, FreeBSD и т.д.) имеют прекрасный набор команд, использование которых облегчает жизнь системному администратору. Как говорится, "у нас все для людей". ;) К одной из таких команд относится программа cron, планировщик заданий пользователя. При старте системы запускается демон cron, который каждую минуту проверяет очередь заданий пользователя - crontab, расположенную в файлах в директории /var/spool/cron/crontabs/.

    Основные команды:
    • # crontab -l - просмотреть файл очереди заданий текущего пользователя,
    • # crontab -e - редактировать файл очереди заданий текущего пользователя,
    • # crontab -r - удалить файл очереди заданий текущего пользователя.

    Планирование команды я покажу на примере. Вот такие строчки планируют задания пользователя:
    30 04 10 04 * /home/slava/scripts/start_stop_sap.sh 1>> /home/slava/scripts/start_stop_sap.log 2>&1
    В 4:30 (первые два числа строки) 10 апреля (третье и четвертое числа) (* - в любой день недели) выполнится скрипт /home/slava/scripts/start_stop_sap.sh и запишет результаты своего выполнения и сообщения об ошибках в файл /home/slava/scripts/start_stop_sap.log. Можно ставить вместо чисел знаки "*". Можно указывать несколько значений через ",". Таким образом создать периодическое планирование задания. Для каждого задания своя строка. Можно вставлять строки с комментариями, начиная символом "#". Для осуществления планирования достаточно сохранить файл. Для удаления задания можно удалить строку или поставить перед ней знак комментария - "#". Вот пример периодического планирования (каждые 10 минут) выполнения скриптов:
    # 15.08.2005. System loading. Shibolov Vyacheslav.
    00,10,20,30,40,50 * * * * /opt/sys_load/bin/cpu.pl 1>> /opt/sys_load/log/cpu.pl.log 2>&1
    00,10,20,30,40,50 * * * * /opt/sys_load/bin/disk.pl 1>> /opt/sys_load/log/disk.pl.log 2>&1
    А теперь вопрос знатокам. :) Есть ли опасность в этой команде? Какой сюрприз она может преподнести администратору?

    Сегодня утром на проекте обнаружилось, что 2 диалоговые инстанции "лежат". Сервера, на которых они были запущены, функционируют в штатном режиме. В логах (/usr/sap/<SID>/<Instance_name>/work/dev_disp, /var/adm/syslog/syslog.log) информация о "шпионе", который зашел 10 апреля в 4:30 и положил обе инстанции нашим любимым пользователем <sid>adm. Всё. Никаких ошибок, дампов. База данных в этот момент совершала обряд под названием offline backup. Через систему никто остановить инстанции не мог. Почему именно эти инстанции? Почему в 4:30? Вопросы летали в голове пока я не додумался заглянуть в crontab. И что же. А ничего. Просто "я годичной давности" слал привет "себе современному". :) Не закомментировал строки останова инстанций год назад, вот они и сработали, как отлично работающий механизм.

    Если не хотите таких приветов, то комментируйте/удаляйте старые планирования.
    Подробности планирования заданий в cron смотрите в документации:
    # man 1 crontab
    # man 1M cron
    Автор: Шиболов Вячеслав Анатольевич

    8 апреля 2010 г.

    Реорганизация входящих писем в почтовом ящике системы SAP

    В любой версии ERP-системы SAP есть SAP Business Workplace (транзакция SBWP) или просто "Рабочее место SAP". Состоит оно из директорий (inbox, outbox) почтового ящика пользователя, календаря задач, личных папок с файлами и общих папок, доступных всем пользователям системы. Некий электронный органайзер. Пользователи часто используют возможности SAP-почты для обмена рабочей (и не только) корреспонденцией друг с другом.

    После бурно прожитых 3-4 лет жизни в системе SAP пользовательский почтовый ящик наполняется сообщениями и "важными" письмами, как мусорное ведро у молодой семьи с полугодовалым карапузом памперсами. :) И перед Вами может быть поставлена задача: улучшить пользование таким почтовым ящиком, увеличив скорость работы, но оставив доступ к старым письмам.


    Решение предлагается следующее. Есть прекрасная транзакция SOY9, специально созданная для организации входящей почты пользователей. На экране транзакции мы можем увидеть 3 поля - "Минимальное число документов", "Минимальный срок хранения документов", "Целевая группа" и одна галочка - "Тестовый прогон". Первые два поля позволяют установить критерии выбора старых сообщений для сохранения (лучше назвать этот процесс архивацией), третье ограничить обработку одним/группой пользователей. Галочка позволяет поиграться параметрами перед реальной обработкой почтового ящика пользователя. Принцип работы транзакции проще показать на примере. Итак, у моего тестового пользователя есть письма от 2005, 2006, 2007, 2008 и 2009 годов. Выделим все письма, кроме писем прошлого года, в отдельные директории. Для этого запустим несколько раз обработку со следующими параметрами:
    • 2005 год. Сначала тестовый прогон, потом реальный.

    В результате получим поддиректорию в директории "Личные папки", в которой лежат удаленные из папки "входящие письма" документы полученные в 2005 году.


    Переименовываем директорию в "Вход. почта 2005 год":


    • 2006 год.
    • 2007 год.

    • и 2008 год.

    После переименования всех папок в нормальный вид, получаем следующую приятную картинку:


    В директории "Личные папки" у нас хранится почта за прожитые года в аккуратном виде с сохранением даты, автора и вложений.

    SAP нот по теме не нашел, но на SAP Help информация по транзакции SOY9 есть.

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


    30 марта 2010 г.

    SAP System Landscape Directory. Часть III.

    В последней части я хочу описать как использовать SLD систему в SAP Solution Manager. В этой системе есть транзакция SMSY, в которой можно вести системный ландшафт.


    Данная транзакция может получать данные из SLD. Настройка производится в транзакции SMSY_SETUP.


    Необходимо настроить периодические задания (LANDSCAPE FETCH) по переносу данных из SLD. Для этого выберем в транзакции пункт меню "Системный ландшафт -> Запланировать перенос данных из TMS/SLD (F8)".


    После выставляем предпочтительное время отработки задания (время работы задания - 9-10 секунд), ставим галочку "Выполнять задание периодически" и задаём значения периодов:


    После этого данные с "завидной" периодичностью будут обновляться из SLD.


    При возникновении проблем стоит заглянуть в следующие SAP notes:

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