10 декабря 2012 г.

Утилиты для администрирования ORACLE в SAP. Часть I.

В статье про ПО SAP на сайте Луркоморья написано: "... В европейском идеале, базисник занимается исключительно сервером приложений и базовой логикой системы — безопасностью, производительностью, управлением изменениями и др. В реальности, этот человек отвечает за СУБД, ОС и даже за железо ...". И, к сожалению, это правда. Но, к счастью, компания SAP AG думает и об этом и предоставляет SAP Basis администратору утилиты для администрирования базы данных ORACLE.

Данные утилиты входят в состав ядра SAP системы, в следствии чего, представляют собой бинарные файлы, и начинаются на BR*. Для удобного доступа к данным утилитам используется программа, которая представляет собой интерактивное меню для выполнения тех или иных операций с базой данных ORACLE. В старых версиях систем (в SAP R/3 4.6C и ORACLE 8i) использовалась программа SAPDBA (рис. 1). В новых версиях систем (с WAS 6.20 и выше) была заменена утилитой BR*TOOLS (рис. 2).

Рис. 1. Утилита SAPDBA.
Рис. 2. Утилита BR*TOOLS.

Кроме изменения дизайна в новой версии, была применена другая концепция перерисовки экрана. Это немного усложнило удобство использования, но позволило отслеживать на экране всю последовательность действий. То есть предыдущий экран утилиты теперь не перерисовывается, как в старой версии, а сохраняется на экране. Всегда можно прокрутить вверх окно терминала и посмотреть действия и команды. Можно сохранить в текстовый файл для последующего анализа или наглядного примера.

Запуск утилиты, как вы уже поняли, осуществляется из командной строки путем ввода команды:
> sapdba
или
> brtools
Версию используемой программы можно узнать, указав ключик "-V".
Запускать следует из под пользователя ora<sid> в Unix системах или <sid>adm в MS Windows.

Для соединения к базе данных используется OPS$ user, так как он не требует пароля с уровня ОС. В утилитах это указывается через параметр "-u /".

При выборе той или иной операции с базой данных автоматически запускается одна из следующих программ:
  • BRBACKUP - осуществляет бэкап базы данных. Журналы работы хранятся в директории /oracle/<SID>/sapbackup.
  • BRARCHIVE - создает копии оффлайн журналов ORACLE (offline redo logs). Журналы работы можно найти в директории /oracle/<SID>/saparch.
  • BRCONNECT - отвечает за различные административные задачи, такие как сбор статистики ORACLE или проверка базы данных. Журналы работы стоит искать в директории /oracle/<SID>/sapcheck.
  • BRRESTORE - восстановление из резервных копий базы данных. Логи в директории /oracle/<SID>/sapbackup.
  • BRRECOVER - новая утилита (с версии 6.20 и выше) восстановления базы данных. Журналы в /oracle/<SID>/sapbackup.
  • BRSPACE - утилита для реорганизации базы данных целиком или по частям. Журналы находятся в директории - /oracle/<SID>/sapreorg.
Для работы используются параметры из профайлов:
  • /oracle/<SID>/<DB_vers>/dbs/init<SID>.sap,
  • /oracle/<SID>/<DB_vers>/dbs/init<SID>.dba.
Данный путь верен для Unix, в Windows надо dbs заменить на database.

При выполнении или планировании операций с базой данных из таких SAP транзакций, как DBACOCKPIT, DB13, DB02, DB14 и т.д, используются эти же утилиты. Правда запуск происходит из под пользователя <sid>adm в Unix и SAPService<SID> в MS Windows.

Старые журналы работы утилит можно удалить с помощью опции "-f cleanup" программы BRCONNECT или, запланировав соответствующее задание в транзакции DB13. По-умолчанию, удаляются журналы старше 30 дней. Период регулируется параметрами cleanup_* в вышеуказанных профилях.

Если возникли ошибки в работе вышеуказанных утилит и, решение не было найдено в базе SAP notes, то можно написать сообщение в службу поддержки, указав компонент BC-DB-ORA-DBA.

За дополнительной информацией можно обратиться к следующим нотам:
- SAP note # 651812 - FAQ: BR*TOOLS and SAPDBA
- SAP note # 12741 - Current versions of BR*Tools and SAPDBA

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


28 ноября 2012 г.

Утилита DPMON

Как я уже говорил в посте про SAP Management Console, в данной утилите, как и в SAP MMC в MS Windows Server, можно, помимо всего прочего, осуществлять мониторинг рабочих процессов (WPs) ABAP инстанции SAP системы на уровне операционной системы.

Иногда это бывает жизненно необходимо. Например, в ситуации, когда заняты все диалоговые рабочие процессы инстанции, вход в систему затруднен. В данном случае, время отклика системы огромно, так как запросы "толкаются" в очереди ABAP-диспетчера. И часто список процессов операционной системы не дает представления о причинах проблемы - процессоры сервера, на котором работает диалоговая инстанция, могут быть не загружены. А в увеличенном времени отклика инстанции могут быть виноваты "тяжелые" процессы к базе данных, которые удерживают диалоговые рабочие процессы диалоговой инстанции за пользователями. Известно, что SAP ABAP инстанции используют принцип мультиплексирования рабочих процессов, что позволяет большему количеству пользователей работать на инстанции с меньшим количеством рабочих процессов. Тут этот принцип может дать сбой и пользователям будет не хватать свободных диалоговых рабочих процессов.

Итак, как еще можно достучаться до таблицы рабочих процессов с уровня операционной системы? В файлах SAP ядра есть утилита DPMON, которая запускается из-под пользователя <sid>adm командой вида:
 > dpmon nr=04 
или
 > dpmon pf=/usr/sap/<SID>/SYS/profile/<SID>_D04_hostname 
здесь 04 - номер диалоговой инстанции, а <SID>_D04_hostname имя её профиля.

Утилита имеет небольшое меню (рис. 1), через которое можно просмотреть статистику очереди диспетчера (рис. 2), таблицу рабочих процессов инстанции (рис. 3), остановить тот или иной рабочий процесс, дабы освободить ресурсы системы и дать остальным пользователям поработать и так далее.

Рис.1. Меню утилиты DPMON.

Рис. 2. Статистика очереди ABAP диспетчера.

Рис. 3. Таблица рабочих процессов ABAP инстанции.

Утилита доступна для всех SAP систем с ABAP стеком и всех операционных систем. В новой версии (на снимках экрана система SAP R/3 4.6C) может немного отличаться в лучшую сторону. Например, добавлением функций для мониторинга J2EE инстанции.

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


22 ноября 2012 г.

Журнальные файлы Oracle и archivelog mode. Часть II.

В первой части поста я остановился на онлайн журнальных файлах. Продолжим.

Онлайн журнальные файлы используются по кругу (рис. 1).

Рис. 1. Запись в онлайн журнальные файлы ORACLE.

После того, как полностью заполнен онлайн журнал группы G11, начинается запись в журнал группы G12 и так далее, пока не дойдет до группы G14. После использования последней группы, процесс записи должен переключиться на первый журнал и начать запись в него. И тут есть 2 варианта. Дело в том, что экземпляр ORACLE может работать в двух режимах:
  • ARCHIVELOG MODE,
  • NOARCHIVELOG MODE,


20 ноября 2012 г.

C_TADM51_70 - 94 %


Сегодня сдал сертификационный тест C_TADM51_70 - "SAP Certified Technology Associate - System Administration (Oracle DB) with SAP NetWeaver 7.0" в компании SAP AG.

Набрал 94 % из 80 вопросов.
Теперь я сертифицированный SAP BASIS консультант.

Принимаю поздравления. :)

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


12 ноября 2012 г.

Журнальные файлы Oracle и archivelog mode. Часть I.

В структуре базы данных ORACLE, которая представлена на рисунке 1, можно выделить 3 крупные части:
  • процессы,
  • области в оперативной памяти,
  • файлы на жестком диске.
Рис.1 Структура СУБД ORACLE.
Выделяют 2 вида процессов. Первый - это фоновые процессы, которые запускаются всегда при запуске экземпляра (инстанции) и выполняют огромное количество операций по обслуживанию базы данных, очистки, журналированию, восстановлению и так далее. Второй тип - это, так называемые, "shadow processes", которые создаются в количестве равном количеству рабочих процессов SAP инстанций, работающих с этим экземпляром базы данных. Они-то и обрабатывают SQL запросы к базе данных со стороны SAP системы.
Также еще есть, отдельно стоящий, процесс сетевого слушателя (ORACLE Listener), который "слушает" определенный сетевой порт (в случае SAP системы, по умолчанию это 1527) и обеспечивает соединение к экземпляру базы данных извне.

Области в оперативной памяти являются буферами того или иного назначения и обеспечивают приемлемый уровень быстродействия при работе с базой данных.

Ну и наконец, файлы базы данных. Это прежде всего профиль - файл, который используется для инициализации экземпляра базы данных при запуске. Содержит набор параметров и указатели на важные директории базы данных. Хранится и имеет название:
/oracle/<SID>/<ora_version>/database/SPFILE<SID>.ORA.
Контрольный файл базы данных, который содержит структуру базы данных. Очень важен для целостности экземпляра, поэтому хранится в 3 экземплярах. Одну копию можно обнаружить тут - /oracle/<SID>/origlogA/cntrl/CNTRL<SID>.DBF.
Самый большой объем занимают файлы с данными, которые логично распределены между табличными пространствами экземпляра. По-умолчанию, расположены в директориях вида /oracle/<SID>/sapdataX.
Журнальные файлы ORACLE делятся на онлайн и оффлайн. Остановимся на них подробнее.

В журнальные файлы ORACLE записывает все операции, которые производятся с файлами данных. Таким образом, если произойдет сбой, то ORACLE при восстановлении экземпляра сможет повторить все операции с данными в той же последовательности, как это происходило во времени до сбоя. Данные файлы очень важны для работы базы данных, поэтому за ними нужен "глаз да глаз".

По-умолчанию, при создании экземпляра базы данных для SAP системы организуется 4 группы журнальных файлов размером по 50 Мб с дублированием (зеркалированием) каждого. Онлайн журнальные файлы распределены по 4 директориям:
/oracle/<SID>/origlogA/
             LOG_G11M1.DBF
             LOG_G13M1.DBF
/oracle/<SID>/origlogB/
             LOG_G12M1.DBF
             LOG_G14M1.DBF
/oracle/<SID>/mirrlogA/
             LOG_G11M2.DBF
             LOG_G13M2.DBF
/oracle/<SID>/mirrlogB/
             LOG_G12M2.DBF
             LOG_G14M2.DBF
Здесь видно 4 группы G11, G12, G13, G14 с двумя копиями M1 и M2 в каждой.
Данные директории рекомендуется распределять по разным файловым системам с RAID1 или RAID1+0  для приемлемого уровня отказоустойчивости и быстродействия.

Продолжение тут.

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


26 октября 2012 г.

Знакомство


В этом посте хотел бы познакомиться со всеми, кто заходит на этот блог.

Со мной-то все знакомы. Мой профиль можно посмотреть тут.

Пожалуйста, напишите в комментариях к этому посту несколько слов о себе.

Для ориентировки:
- в каком городе живете;
- кем работаете, как давно;
- если работаете в SAP области, то консалтинг или внутренний проект;
- чего бы хотели бы достичь в профессиональном плане в ближайшем будущем,
- как часто заглядываете на мой блог (раз в неделю/месяц/год :) );
- ну и что тут нравится, что не очень, а что раздражает.

Спасибо. :)

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


24 октября 2012 г.

SAPControl

В продолжении поста про SAP Management Console стоит упомянуть про утилиту SAPControl. Данная утилита входит в состав SAP kernel (начиная с версии 640 patch level 169) и позволяет выполнят ряд, так называемых, веб-методов процесса sapstartsrv. Утилита является консольной и доступна во всех операционных системах.

Синтаксис и набор опций можно увидеть, если набрать в командной строке имя утилиты без параметров:
> sapcontrol 
SAPControl позволяет производить все те же операции, что и  SAP Management Console, но в консольном режиме.

Основной синтаксис команды следующий:
> sapcontrol [-prot xxx] [-user <user> <password>] [-host <host_name>] -nr <instance number> -function <Web method> 
здесь user - это пользователь sidadm, который имеет полномочия на запуск/останов SAP инстанции,
опция -prot используется для доверительных соединений между хостами с инстанциями одной SAP системы (подробности в SAP note # 927637).