20 октября 2010 г.

Установка SAP ERP 6.0 SR3, опять в картинках


Ну вот дошла очередь и до третьей системы в великолепной команде на подопытном сервере, который я собрал своими мозолистыми руками в кризисном, 2009, году. Ей стала SAP ERP 6.0 SR3. Скачал последние версии установочных дисков для системы на Windows/ORACLE x64 с SAP Support Portal. Инструкции по установке взял тут.

Как всегда, стараясь для будущих поколений SAP администраторов, сделал инструкцию по установке. База данных после установки, апдейта и начальной настройки занимает - 100 Гб.

Смело качаем инструкцию по установке SAP ERP 6.0 SR3 (zip-архив, 1813 Кб) и используем во благо. :)

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


16 октября 2010 г.

Файл блокировки brbackup/brarchive


Если для создания резервных копий базы данных используются стандартные утилиты системы SAP (brbackup/brarchive), то стоит учитывать, что при старте эти программы создают файл блокировки. Данный файл служит для защиты от одновременного запуска нескольких программ резервного копирования. Файл имеет имя .lock.brb или .lock.bra соответственно для блокировки brbackup и brarchive процессов. Располагается файл в директории, заданной параметром stage_root_dir или archive_stage_dir соответственно, по умолчанию, /oracle/<SID>/sapbackup.

После сбоя утилиты brbackup или brarchive файл блокировки может остаться в вышеуказанной директории и препятствовать последующему запуску процесса резервного копирования. В данной ситуации требуется ручное удаление файла блокировки администратором. Старайтесь не забывать об этом.

Подробности в SAP note # 153902 - Flexible processing of BR program locks.

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


8 октября 2010 г.

Процессы SAP, ORACLE, HP-UX


Сегодня поговорим о рабочих процессах системы SAP. Основными "пчелками" в ABAP-части системы являются рабочие процессы, которые исполняют ABAP-код программы, запускаемой пользователем, осуществляют печать из системы, обновление данных в базе данных и т.д. Выделяют следующие типы процессов:
  • DIA - диалоговые процессы, которые выделяются для работы пользователей с системой в режиме диалога;
  • BTC - фоновые процессы, которые обрабатывают запланированные фоновые задания системы и пользователей;
  • ENQ - процесс блокировки, всегда один и всегда на центральной инстанции;
  • UPD(VB), UP2 - процессы обновления данных в базе данных;
  • SPO - процессы спула, которые обрабатывают запросы на печать.
Количество тех или иных процессов задается параметрами в профиле инстанции. Посмотреть что и в каком количестве сконфигурировано в системе можно в транзакции SM50. У "пчелок" есть "матка" - диспетчер. Данный процесс системы организует очередь к рабочим процессам, раздает им задания, управляет их запуском и остановкой. Рабочие процессы являются дочерними процессами родительского процесса диспетчера на уровне ОС Unix. Таким образом, стоит понимать, что рабочий процесс системы SAP это отдельный процесс на уровне ОС. Каждому рабочему процессу SAP соответствует shadow-процесс ORACLE, который в свою очередь представляет отдельный процесс на уровне ОС Unix (на платформе Windows ситуация несколько иная).
Любой процесс требует определенный набор ресурсов (оперативная память, такты процессора, место в таблице процессов и т.д.). Поэтому держать неограниченное количество процессов, что со стороны SAP, что со стороны ORACLE или UNIX, не целесообразно. Есть определенный ряд параметров, которые ограничивают количество процессов, прежде всего максимальное. И чтобы SAP, ORACLE и UNIX не вели себя как лебедь, рак и щука, необходимо учитывать эти параметры и согласовывать между собой их значения.
И так, есть общее количество рабочих процессов системы SAP. При этом, если установлены дополнительные сервера приложений, то количество рабочих процессов дополнительных серверов приложений надо учитывать. Количество рабочих процессов SAP задаётся параметрами rdisp/wp_no_* в профиле инстанции системы. В профайле ORACLE (init<SID>.ora) есть 2 параметра: PROCESSES и SESSIONS.
Формулы расчета можно найти в SAP note # 384839 (пункт 2)(для ORACLE версий 8i и 9i) или SAP note # 830576 (для ORACLE версий 10i). В наиболее общем виде формулы выглядят так:
  • PROCESSES = #ABAP work processes * 2 + #J2EE server processes * <max-connections> + PARALLEL_MAX_SERVERS + 40
  • SESSIONS = 2 * PROCESSES
Если установлена только ABAP-часть, то формула очень проста - удвоенное количество рабочих процессов SAP плюс запас для служебных процессов ORACLE. Например, в системе сконфигурировано 50 рабочих процессов SAP, следовательно, надо выставить PROCESSES = 140, SESSIONS = 280.
На уровне HP-UX есть параметр ядра nfile. Этот параметр задается формулой, которая зависит от параметров nproc и max_users. Если в системе много процессов ORACLE, которые работают с большой базой данных (состоящей из большого количества дата файлов), то можно "схлопотать" ошибку ОС:
Error: 23: File table overflow
Чтобы такого "безобразия" не было. Необходимо чтобы параметр nfile удовлетворял условию:
  • nfile > #File descriptors = #Data files * PROCESSES
Для подробной информации стоит заглянуть в SAP notes # 546006 и # 172747. Для установки параметра в HP-UX используйте команду kmtune (kctune) или SAM.

Вышесказанное поможет добавить дополнительный сервер приложений, дополнительные рабочие процессы в систему SAP и при этом согласовать работу базы данных ORACLE и ОС HP-UX, не получив лишних проблем. ;)

А еще у меня есть вопрос знатокам. ;) Почему в формуле расчета параметра PROCESSES для ORACLE количество рабочих процессов SAP умножается на 2? В документации говорится, что одному рабочему процессу SAP соответствует один рабочий процесс ORACLE. Зачем брать ИМЕННО двойное количество. Кто знает - отпишитесь в комментариях. Очень интересно. :)

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