четверг, 17 августа 2017 г.

Oracle + Unix: полномочия на директории

Links to this post
Все кто сталкивался с операционными системами семейства Unix знают, что базовые полномочия на файлы/директории разделяются на 3 группы: 
  • для владельца файла/директории,
  • для группы, которой принадлежит файл/директория,
  • для всех остальных пользователей системы.
Полномочия можно получить на три типа операции: чтение (read), запись (write) и выполнение (execute) для файлов и переход в директорию для директорий. Кратко они записываются по первым буквам английских понятий: rwx. Последовательность именно такая. Сложив все 3 группы, имеем:
rwx rwx rwx
Например, права на чтение и запись для владельца и группы и запрет всего для остальных пользователей (рис. 1).

Рис. 1. Пример полномочий на файл в Unix.

Существует правило преобразования символьного обозначения в цифровое. Записываем разрешение в виде битов. Например, в приведенном примере это: 
rw- rw- --- = 110 110 000 = 6 6 0 = 660
То есть, выставляем биты-разрешения и получаем 3 числа в двоичном исчислении. Записываем их в десятичном и получаем результат. Кто-то считает по другому r = 4, w = 2, x = 1, а затем просто складывает. Хотя, по-моему по-админски, это считать в двоичном исчислении.

Затем эти числа можно использовать в команде chmod, которая присваивает файлу нужные полномочия. Например, 
 # chmod 660 ./log_g11m2.dbf 
Теперь, к делу. При использовании системы SAP в связке с базой данных Oracle в Unix-подобной операционной системе на ряд директорий и файлов, которые составляют в совокупности экземпляр (инстанцию) базы данных, необходимо установить и поддерживать правильный набор полномочий. Корректные полномочия обеспечивают базовый уровень безопасности системы и бесперебойную работу системы и утилит BR*Tools, про которые я рассказывал в постах: "Утилиты для администрирования ORACLE в SAP. Часть I" и "Утилиты для администрирования ORACLE в SAP. Часть II". Итак, памятка по полномочиям:

Рис. 2. Полномочия на директории Oracle в Unix.

Дополнительная информация:


понедельник, 14 августа 2017 г.

Как работать с SAP notes - I

Links to this post
Один из важных разделов на портале поддержки систем SAP (SAP Support Portal) это база SAP notes (SAP нот). Перевести это понятие на русский язык сложно, это комментарий, заметка или письмо от компании SAP.

Все SAP notes можно разделить на 3 типа:
  • информативные SAP notes: это небольшие комментарии или статьи, описывающие новые функциональности, разъясняющие технические моменты системы или приводящие рекомендации. Например, в посте "Обновление SAP GUI for Windows и SAP GUI for Java" я приводил ссылку на SAP note # 1053737 - Expected release dates for SAP GUI for Windows, которая является примером SAP note такого типа и содержит график выхода обновлений для SAP GUI. 
  • SAP notes, содержащие ручные шаги по настройке системы: такие SAP notes описывают шаги, которые должен выполнить консультант для настройки той или иной функциональности или активации возможностей системы. Примером может служить SAP note # 2055935 - Russia: End of permanent daylight saving time and start of permanent standard time in 2014, которую я упоминал в посте "Переход на зимнее время 26 октября 2014 года". В ней описаны шаги, которые необходимо выполнить в системе, чтобы сменить настройки часового пояса для России.
  • SAP notes, содержащие коррекции программного кода: такие SAP notes, содержат инструкции по внесению изменений в те или иные ABAP-программы или функциональные модули системы. За примером далеко ходить не надо. В предыдущем посте "Дамп в старых системах при работе на больших разрешениях" я приводил 4 ноты, которые содержат исправления кода для решения описанной в статье проблемы. Таких SAP notes порядка 80 %.

Для поиска SAP notes необходимо войти на SAP Support Portal и прямо на главной странице набрать поисковые слова или указать номер SAP note, если он вам известен (рис. 1). Либо можно использовать прямую быструю ссылку на соответствующий раздел: http://support.sap.com/notes. Учтите, что для поиска и чтения SAP notes нужен S-user, про которого я упоминал в посте про SAP Интернет-ресурсы

Рис. 1. Поиск SAP нот через SAP Support Portal.

Каждая SAP note имеет жесткую структуру и состоит из следующих частей:
  • Заголовок, в котором указаны номер и название ноты (1), обязательное и важное поле - версия SAP note и дата выпуска версии (2) и краткое описание всей ноты: компонента, категория, приоритет, количество коррекций и так далее (3) (рис. 2).

    Рис. 2. Пример заголовка SAP note.
  • Описание (Description), которое содержит симптомы ошибки (Symptom) (1), термины (Terms) или поисковые слова, по которым можно эту ноту отыскать (2), причины и предпосылки и, собственно, описание решения (Solution) (3) (рис. 3).

    Рис. 3. Пример текста SAP note.
  • Программные компоненты (Software Components), где указаны компоненты SAP системы, для которых эта SAP note применима. В данном примере это компонента SAP_APPL версий от 31H до 500 (рис. 4). Про программные компоненты SAP системы я писал тут и тут. Если у вас в системе версия компоненты из указанного списка, значит эта SAP note для вашей системы подходит.

    Рис. 4. Пример раздела Software Components SAP note.
  • Инструкции по изменению ABAP-кода (Correction Instructions), в данном разделе можно посмотреть детали: для каких версий систем они подходят, а именно, какой пакет поддержки на компоненту необходим в качестве предпосылок (рис. 5), в какие программы вносятся изменения (рис. 6) и даже посмотреть конкретные изменения в коде каждой программы (рис. 7).

    Рис. 5. Пример Correction Instruction в SAP note.

    Рис. 6. Пример списка программ с изменениями в SAP note.

    Рис. 7. Пример изменений в коде для исправления ошибок в SAP note.

  • Пакеты поддержки (Support Packages). В этом разделе указаны версии пакетов поддержки для компоненты, которые содержат данные исправления (рис. 8) и установка которых так же устраняет описанную в SAP note ошибку.

    Рис. 8. Список пакетов поддержки, которые содержат SAP note.
  • Зависимости (References) - это ссылки на эту ноту из других документов и зависимость этой ноты от других SAP notes (рис. 9).

    Рис. 9. Зависимости SAP notes.
  • Атрибуты (Attributes) и языки (Languages), на которых доступен текст данной SAP note. Обычно, SAP notes доступны на трёх языках: английский, немецкий и японский (рис. 10).

    Рис. 10. Список языков, на которых доступен текст данной SAP note.

Кроме вышеперечисленного, иногда к SAP note прикрепляют файлы или дополнительные документы, которые можно скачать.

Итак, у каждой SAP note есть дата выхода и версия. Это означает, что время от времени в SAP note тоже вносятся исправления, дополнения и устраняются неточности. Изменения можно посмотреть, если в заголовке нажать ссылку "Show Changes" (рис. 11). На открывшейся странице можно сравнить не только две последние версии, но и, например, текущую с самой первой (рис. 12). 

Рис. 11. Просмотр изменений в SAP note.

Рис. 12. Сравнение первой и последней версий SAP note.

Таким образом, еще раз повторюсь, при поиске SAP notes, необходимо обращать внимание на программные компоненты (Software Components), для которых подходит данная нота. Если в перечне компонент нет версии из вашей системы, значит данное решение, описание или последовательность действий не подходит для вашего случая.

Во второй части статьи я расскажу как устанавливать SAP notes в SAP систему.


четверг, 10 августа 2017 г.

Дамп в старых системах при работе на больших разрешениях

Links to this post
При работе в старых системах (прежде всего в релизах SAP R/3 4.6C и SAP R/3 4.7 Enterprise) возникает проблема при работе на больших экранах с большим разрешением, особенно при переводе окна SAP GUI в полноэкранный режим. Система выпадает в дамп WRITE_TO_OFFSET_TOOLARGE в программе SAPMKCBE (рис. 1).

Рис. 1. Пример дампа WRITE_TO_OFFSET_TOOLARGE в системе версии 4.6C.

Решением является установка 4 SAP нот:
- SAP note 682987 - Short dump WRITE_TO_OFFSET_TOOLARGE in SAPMKCBE
(содержится в пакете поддержки для SAP_APPL - SAPKH46C47 (релиз 46С) и SAPKH47018 (релиз 470)),
- SAP note 756869 - Short dump WRITE_TO_OFFSET_TOOLARGE in SAPMKCBE (2)
(содержится в пакете поддержки для SAP_APPL - SAPKH46C48 (46С) и SAPKH47022 (470), затрагивает и релиз 500 - SAPKH50003),
- SAP note 796898 - Short dump WRITE_TO_OFFSET_TOOLARGE in SAPMKCBE (3)
(содержится в пакете поддержки для SAP_APPL - SAPKH46C49 (46С), SAPKH47023 (470), в релизе 500 - SAPKH50006),
- SAP note 1144093 - Short dump WRITE_TO_OFFSET_TOOLARGE in SAPMKCBE (4)
(содержится в пакете поддержки для SAP_APPL - SAPKH47030 (релиз 470), SAPKH50019 (релиз 500), SAPKH60013 (релиз 600), SAPKH60203 (релиз 602), SAPKH60302 (релиз 603)).

В скобках указаны пакеты поддержки для релизов, при наличии которых в системе, ноту ставить нет необходимости. Таким образом, для версии SAP R/3 4.6C, например, последнюю ноту надо ставить даже, если у вас установлены все пакеты поддержки, так как она выпущена после окончания поддержки этой системы.

Ноты не делают ничего кардинального: вставляют в ряд программ проверку на длину переменной, ограничивая её 255 символами в случае превышения. Но после этого система в данный дамп не падает.


понедельник, 7 августа 2017 г.

Саповские секретики - III

Links to this post

Секретик 1.

Для того, чтобы в транзакциях SE09/SE01/SE10 быстро открыть запрос, зная его номер, достаточно выбрать пункт меню "Запрос/задача -> Просмотр по отдельности..." или просто нажать функциональную клавишу F5 на клавиатуре (рис. 1).

Рис. 1. Просмотр транспортного запроса по отдельности.

В появившемся диалоговом окне ввести номер запроса и перейти в просмотр его содержимого (рис. 2 и 3).

Рис. 2. Ввод номера запроса для просмотра.

Рис. 3. Просмотр запроса по отдельности.

Знание "горячих клавиш" в часто-используемых транзакциях облегчает и ускоряет выполнение производственных задач. :)


Секретик 2.

Помните, я рассказывал как перенести содержимое таблицы между системами. Для включения записей в транспортный запрос необходимо было добавить объект типа TABU, означающий содержимое таблицы, в запрос. Иногда бывает необходимо включить объекты одного транспортного запроса в другой.  Для этого необходимо в транзакции SE01/SE10/SE09 создать новый или открыть существующий целевой запрос (можно способом из первого секретика). Курсор мыши установить на запрос, а в меню выбрать пункт "Запрос/задача -> Список объектов -> Включить объекты..." (рис. 4).

Рис. 4. Включение объектов в текущий запрос.

В появившемся диалоговом окне необходимо указать один или несколько запросов, объекты которых будут включены в целевой запрос (рис. 5).

Рис. 5. Включение объектов транспортного запроса в другой запрос.

Здесь стоит помнить, что включить объекты можно только в запрос, который еще не деблокирован, то есть открыт на изменения. А вот на запрос-источник объектов ограничений нет: он может быть как деблокирован, так и открыт на изменения.


Секретик 3.

В посте "Запись каталога объекта: изменение системы оригинала" я писал, что система оригинала для объекта является защитным механизмом для его перезаписи из другой системы. Но иногда необходимо перенести объект из системы не оригинала в другую. Например, восстановить объект в системе разработки из системы контроля качества. В этом случае можно не менять систему оригинала для объекта, как это было описано в посте, а включить объект в запрос типа "Перенос копий". Создать такой запрос можно в транзакции SE09/SE01/SE10 (рис. 6).

Рис. 6. Создание запроса для переноса объектов из системы не оригинала.

После этого включить в запрос объекты, указать целевую систему и деблокировать.

Если попробовать перенести такие объекты в обычном транспортном запросе (типа инструментальных средств), в противоток основным потокам транспортной системы, то система выдаст ошибку при попытке деблокировать запрос. А запроса типа "Перенос копий" поможет решить эту проблему.

Предыдущие выпуски:
- Саповские секретики - I,
- Саповские секретики - II.


четверг, 3 августа 2017 г.

Двухуровневая концепция доменов в SAP AS ABAP

Links to this post
Как я уже не раз упоминал, на уровне сервера приложений AS ABAP ведется централизованный ABAP-словарь. Это обеспечивает платформо-независимость SAP системы от используемой базы данных. О соответствии ABAP-словаря словарю базы данных я писал в посте "Транзакция SE14: утилита базы данных". 

В ABAP-словаре на низшем уровне выделяют такое понятие, как домен. Домен это техническое описание единицы данных, в котором указывается тип и размерность данных, атрибуты вывода и, если необходимо, список значений. Например, домен MANDT, определяющий мандант системы, имеет тип CLNT с длиной 3 символа (рис. 1).

Рис. 1. Описание домена MANDT.

Напрямую в ABAP-программе или описании полей таблицы использовать домен нельзя. Для описания полей или переменных используется элемент данных, который использует домен и содержит дополнительно семантическое описание, например, название поля в различных вариациях и на различных языках (рис. 2 и 3).

Рис. 2. Описание элемента данных MANDT.

Рис. 3. Семантическое описание элемента данных MANDT.

В дальнейшем элемент данных можно использовать для описания поля таблицы. Например, T000, содержащей записи о мандантах SAP системы (рис. 4).

Рис. 4. Список полей таблицы T000.

Информацию по доменам, элементам данных или полям таблицы можно посмотреть через транзакцию SE11 (рис. 5).

Рис. 5. Просмотр информации по элементам ABAP-словаря в транзакции SE11.

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

Подробности в курсе "BC430 - ABAP Dictionary".


понедельник, 31 июля 2017 г.

LVM в операционной системе Linux

Links to this post
В своём блоге несколько лет назад я делал памятку по системе Logical Volume Management (LVM) в операционной системе HP-UX. Четыре части статьи можно найти по тегу LVM.

К счастью, LVM в Linux очень похож на LVM в HP-UX (рис. 1).

Рис. 1. Концепция LVM в Linux.

Все понятия идентичны. На физических дисках или разделах дисков создаются физические тома (Physical Volumes). Эти тома объединяются в группы томов (Volume Groups). Один физический том может принадлежать только одной группе томов. Внутри группы томов пространство разбивается на логические тома (Logical Volumes). Соответствие между логическими и физическими томами происходит через единицу выделения пространства - Physical Extent, который равен по размеру Logical Extent. Карта распределения и соответствия LE и PE произвольная. Размер PE определяется в момент создания Volume Group и фиксирован во всё время существования группы (по-умолчанию, 4 Мб). Внутри логического тома можно создать файловую систему и смонтировать её в дереве общей файловой системы Linux.

Краткая последовательность создания:
  1. Для создания разделов можно использовать команды gdisk (GPT формат) или fdisk (MBR формат). При создании раздела указать тип LVM (код 8E или 8E00).
  2. На разделах создать физические тома (Physical Volumes) командой вида:
     # pvcreate /dev/sdaX /dev/sdbY 
  3. Создать группу томов (Volume Group) командой вида:
     # vgcreate -s размер_PE VGname /dev/sdaX /dev/sdbY 
  4. Создать необходимое количество логических томов (Logical Volumes) командами вида:
     # lvcreate -l/-L размер -n LVname VGname 
  5. Активировать группу томов командой вида:
     # vgchange -a y VGname 
    или
     # lvm vgchange -a y VGname 
  6. Создать файловые системы и смонтировать их, например командами:
     # mkfs -t xfs /dev/VGname/LVname
     # mount /dev/VGname/LVname /mount/XXX 

Если необходимо расширить файловую систему, то последовательность следующая:
  1. Расширить группу томов, создав и добавив физический том, если это необходимо:
     # pvcreate /dev/sdbZ
     # vgextend VGname /dev/sdbZ 
  2. Расширить логический том и файловую систему командами вида:
     # lvextend -L размер /dev/VGname/LVname
     # resize2fs /dev/VGname/LVname 
Можно сместить Physical Extents одного физического тома на другой (sdaX -> sdcZ). Например, для вывода его из состава группы томов. Использовать команду вида:
 # pvmove /dev/sdaX /dev/sdcZ 
Второй аргумент можно не указывать, тогда команда "разбросает" PE на то свободное место, которое есть в группе томов.

В Linux есть дополнительные команды просмотра информации по LVM:
 # pvs 
 # vgs 
 # lvs 

Они отображают информацию по всем физическим томам, группам томов и логическим томам в системе, соответственно (рис. 2).

Рис. 2. Пример вывода информации по LVM разделам в системе.

Есть возможно указать конкретные поля, которые необходимо вывести, например:
 # lvs -o lv_name,lv_size,device 
Информация по всем столбцам по команде вида:
 # lvs -o help 

Есть у LVM в Linux расширенные возможности:
  1. Создание snapshots, которые очень полезны при резервировании файловой системы с гарантией от изменений во время процесса. Смотрите справку на опцию -s команды lvcreate.
  2. Поддержка программного RAID 0/1/5/6/10.
  3. Создание кэш разделов на основе, например, SSD, для медленных и больших разделов.
  4. Поддержка кластерных конфигураций.

Есть команды vgexport/vgimport, которые позволяют переносить группы томов с одного сервера на другой или при настройке кластерной конфигурации.

В отличии от HP-UX, в Linux LVM реализуется через Device Mapper, который генерирует реальные имена устройств вида /dev/dm-X. А файлы вида /dev/VGname/LVname по сути являются символьными линками на эти файлы. Но рекомендуется работать именно с линками, так как Device Mapper не гарантирует соответствие файлов устройств /dev/dm-X самим устройствам после перезагрузки.

Не воспрещается использовать графические утилиты для конфигурации LVM. Хотя по мне, это не так изящно. В SLES это yast2 (модуль disk или Partitioner) (рис. 3), в RHEL - gnome-disk-utility.

Рис. 3. Раздел Partitioner утилиты Yast.

Дополнительно можно почитать хорошую Wiki-статью по LVM.

P.S. Поздравляю всех причастных с прошедшим днём системного администратора или просто сисадмина! :)


четверг, 27 июля 2017 г.

Опрос: версии SAP ERP

Links to this post
Кто бы что не говорил, а система SAP ERP это ключевая разработка компании SAP и ядро всей инфраструктуры предприятия. Поэтому давайте проведем опрос: какие версии SAP ERP систем у вас работают?

Укажите все версии этой системы, которые так или иначе у вас работают: тестовые, разработки, архивные, продуктивные, IDES, "песочницы". Не стоит указывать системы, которые вы поставили только для себя и где никто не работает. :)

Про версии SAP системы можно посмотреть этот пост.

Если у вас старая система, то стесняться не стоит. Я знаю много компаний, у которых есть старые версии систем. Хотелось бы через вас увидеть общую картину.

Заранее спасибо. Окончательные результаты подведем в середине сентября.


P.S. Поменял сервис опросов с simpoll.ru на pollservice.ru. Первый ограничил количество бесплатных опросов до 3-х. Посмотрим, как отработает этот.