28 июля 2010 г.

Ключ инсталляции/апгрейда

При установке системы SAP, основанной на SAP NetWeaver, программа установки (SAPINST) на одном из этапов запрашивает ключ инсталляции/апгрейда.


Подробности про этот ключ описаны в SAP note # 805390.

Существует 2 способа получить ключ:
  • официальный, который описан в SAP note # 811923. Он подразумевает, что у Вас установлена система SAP Solution Manager, в которой Вы можете сгенерировать ключ для установки новой системы. Подробности данного способа описаны мной в небольшой инструкции (zip-архив, 139 Кб).
  • неофициальный, почти хакерский. ;) Если под рукой нет системы SAP Solution Manager и, не смотря на пропаганду компании SAP AG, нет желания включать её в ландшафт, можно обойти проверку в программе установки системы (SAPINST). Процедура следующая: 
  1. После того, как программа установки выдаст экран с запросом ключа инсталляции/апгрейда, необходимо остановить программу установки;
  2. Войти в директорию установки (обычно это путь типа: C:\Program Files\sapinst_instdir\ERP\SYSTEM\ORA\CENTRAL\AS) и найти файл control.xml;
  3. Открыть файл на редактирование (например, программой MS Word) и найти в тексте блок следующего вида:
     var retval = eval(installer.invokeModuleCall(call));
     Trace("Installer", "Installer.checkSolManKey() done: ", retval);
     return retval;

     заменить последнюю строчку на return true;
      и сохранить файл control.xml;

  4. Запустить программу установки системы (SAPINST) и продолжить предыдущую инсталляцию:

  5. На экране запроса ключа инсталляции/апгрейда ввести любой набор цифр и продолжить установку:

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

23 июля 2010 г.

Старые журналы событий SAP и ORACLE

Сегодня мы поговорим о старых записях в журналах событий процессов SAP и ORACLE.

Процессы ORACLE:
  1. Лидером в рейтинге "самый бесполезный и быстрорастущий журнал событий" является лог процесса LISTENER. :) Файл журнала располагается в директории /oracle/<SID>/<ora_version_bit>/network/log и имеет имя - listener.log. В системе с несколькими диалоговыми инстанциями всего за год файл может "распухнуть" до 1,5 Гб!


    В Unix-е очистить его очень легко. Достаточно выполнить команду # > listener.log . В Windows придется перезапускать сервис LISTENER, а во время его останова - удалять содержимое файла. Либо поиграться с программа типа unlocker, но сервис для нормальной работы перестартовать потом все равно придётся. Вот тебе и первая выгода (с) ;)

  2. Основной журнал событий базы данных ORACLE - alert_<SID>.log. Место обитания - директория /oracle/<SID>/saptrace/background/. Растет не так быстро, но при долгой работе базы данных имеет размер исчисляемый десятками Мб. Автоматически не обнуляется. Значит этим должны заниматься мы. Какие плюсы от небольшого размера файла? Они очевидны - меньшие требования к дисковому пространству, удобство в анализе. Очищать целиком, право, не стоит: записи в нем, в отличии от предыдущего лога, очень важны. В Windows процедура понятна: останавливаете СУБД, открываете файл текстовым редактором, удаляете лишние строки, сохраняете файл, запускаете СУБД. Как хорошо, что продуктивных систем на Windows все таки не так уж много. ;) В Unix можно поиграться двумя комбинациями команд: wc и split. Первая команда (# wc -l alert_<SID>.log) поможет нам понять сколько всего записей в данном файле. Хорошо бы еще знать дату первой и последней записей. После этого делите файл на части командой # split -line_count alert_<SID>.log. Результат команды - несколько файлов, содержащие по line_count строк из файла alert_SID.log. Анализируете файлы. Содержащие старые ненужные строки удаляете. Оставшийся можно делить еще. В итоге, командой mv заменяете текущий файл alert_<SID>.log полученным укороченным.
Процессы SAP:
  1. В системе SAP есть отличный автоматический процесс (задание) под названием CleanUpLogs, который можно (нужно) запланировать в транзакции DB13 с некой периодичностью (например, 1 раз в неделю). Параметры хранения журналов событий и записей указываются либо в профайле init<SID>.dba (в случае использования SAPDBA (версия системы ниже SAP 4.6С)), либо в init<SID>.sap (использование BRTOOLS). Что и как удаляется можно посмотреть в данных профайлах и в журнале выполнения задания в DB13. Информацию можно почерпнуть в нотках - # 204499 и # 403704.





  2. Если база данных находится в режиме ARCHIVELOG и для создания резервных копий используются утилиты SAP: brbackup/brarchive, то стоит обратить внимание еще на один журнал системы. Это файл /oracle/<SID>/saparch/arch<SID>.log, в котором хранятся записи о том, на какой носитель и когда был скопирован тот или иной оффлайн журнал базы данных ORACLE. Старые записи из этого файла тоже можно почистить. Использовать можно те же способы, что и для файла alert_<SID>.log. 

  3.  Ну и еще можно заглянуть в транспортную директорию - /usr/sap/trans/. Там есть директория log, которую можно проверить на предмет существования в ней старых журналов, которые можно сархивировать в другое место или просто удалить. Ну и директория /usr/sap/trans/EPS/in, в ней хранятся в распакованном виде все пакеты поддержки, которые были установлены на систему или стоят в очереди на установку. Те которые уже были установлены просятся в /dev/null. ;)



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:


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