Автоматический запуск базы данных Oracle системы SAP

Чтобы заставить систему автоматически стартовать базу Oracle нужно:

В реестре:

HKLM\Software\Oracle\HomeX\ORA_<DBSID>_AUTOSTART

параметр ORA_SID_AUTOSTART  поставить в значение true

Так же в этой ветке есть интересный параметр:

ORA_SID_SHUTDOWNTYPE - при выполнении команды shutdown в sqlplus будет выполнена мягкая команда shutdown immediate

Добрые советы по SAP..

  • при копировании манданта проверьте, что у вас много места в тэйблспэйсе PSAPTEMP. При копировании больших таблиц в нем должно быть достаточно места
  • при выполнении скрипта sapdba_role имейте в виду, что параметр запуска выглядит sqlplus /nolog @sapdba_role SR3 или sqlplus /nolog @sapdba_role SR3DB. А не sqlplus /nolog @sapdba_role SAPSR3
  • если при заходе в систему GUI пишет - rabax during sapgui logon - проверьте, верное ли системное время на уровне OS
  • если у пользователя пропала история ввода данных в поля, один из вариантов - проверьте, не включена ли галочка МЕДЛЕННОЕ СОЕДИНЕНИЕ в SAP GUI
  • если у пользователя перестали печататься документы, а лишь попадают в спул (метод печати G), хоть и в настройках стоит галочка немедленной печати - ему не хватает кол-ва режимов. Окно фронт-энд печати требует отдельного режима. Просто закройте лишние окна.

Как узнать кто изменил данные RFC

SCU3 >     RFCATTRIB, RFCDES, RFCDOC >  анализ изменения этих таблиц
для работы SCU3 должен быть активирован параметр rec_client.

Так же можно посмотреть таблицу DBTABLOG

OB52 — Не изменяемо в QA системе

У ваших консультантов появилась необходимость ввести данные в тестовую систему, пользуясь транзакциями OB52, S_ALR_87003642,
но у них появляется сообщение о том, что система в статусе «не изменяемо», хотя в продуктивной системе это действие разрешено?
Имеется три пути решения сложившейся ситуации:
1. Открыть мандант в системе тестирования на изменение и внести данные.
При помощи тр. SCC4 разрешаем изменение репозитария и настроек.
2. Изменить роль манданта в системе тестирования со значения «Тест» на «Продуктивный» при помощи той же транзакции SCC4
3. Описан в ноте Note 214132 — OB52: No current settings
И Вуаля! Все работает. Главное не забудьте вернуть настройки в исходное состояние после того, как консультант завершит ввод данных

А вот и нота:

Symptom

If it has been set in Customizing that no changes are to be made to the system, the posting periods can no longer be opened and closed (Transaction OB52).

Other Terms
V_T001B, SOBJ, V_T001B, CURSETTING

Reason and Prerequisites
The maintenance and transport object V_T001B is not declared as a current setting because of an incorrect delivery.

Solution
Start Transaction SOBJ and for object V_T001B set the flag "Current settings" in the header data.

Блокировка манданта от входа

Для блокировки, разблокировки манданта, используйте транзакцию se37
1. SCCR_LOCK_CLIENT (для блокировки манданта)
2. SCCR_UNLOCK_CLIENT (для разблокировки манданта)
Данная функция предназначена для блокировки\разблокировки манданта от входа пользователей. При блокировки манданта, всем пользователям попытавшимся войти в мандант будет появлятся сообщение «данный мандант блокирован от входа». Мандант доступен будет доступен для входа только пользователям SAP* и DDIC.
Для разблокировки:
1. Запустите тр. SE37
2. Введите имя модуля SCCR_UNLOCK_CLIENT
3. Нажмите F8 для активации
4. Введите номер манданта и нажмите (F8).

Для блокировки процедура аналогична, только с модулем SCCR_LOCK_CLIENT

SAP STMS. Как узнать кто перенес запрос

Можно посмотреть в табличке TPALOG,

либо в истории импорта:

Пункт меню "Обработать" > "Показать больше" (Ctrl+Shift+F1) > столбец "Пользователь"

либо в истории импорта:

Правой кнопкой на заголовок таблицы > "показать больше". Добавится столбец "Пользователь"

NIPING

На сервере SAP:
niping -s -I 0

На клиенте:

Measuring throughput
niping -c -H <nipingsvr> -B 100000

Measuring RTT
niping -c -H <nipingsvr> -B 1 -L 100

Long LAN stability test:
niping -c -H <nipingsvr> -B 10000 -D 100 -L 360000


Long WAN test (stability):
niping -c -H <nipingsvr> -B 200 -D 1000 -L 36000

Long WAN test (idle timeouts):
niping -c -H <nipingsvr> -P -D 3600000

Short throughput/stability test:
niping -c -H <nipingsvr> -B 1000000 -L 100

MTU test:
niping -c -H <nipingsvr> -B <nnn>

Vary <nnn> according to these values: 500, 1000, 1400, 1500, 4000, 10000 and 40000

Переименование системы SAP. Сделать из продуктивной системы тестовую.

Раньше это считалось невозможным, но SAP выпустил утилиту, позволяющую переименовать систему. Особенно это удобно когда у вас виртуализация и нужно сделать из продуктивной системы тестовую, а копировать мандант по RFC или через транспортную систему долго.

 

Вам поможет SOFTWARE PROVISIONING MGR 1.0 (если ссылка не работает поиграйтесь с именем хоста websmp207.sap-ag.de, быть может он в это время не доступен:

https://websmp207.sap-ag.de/~form/handler?_APP=00200682500000001943&_EVENT=DISPHIER&HEADER=Y&FUNCTIONBAR=N&EVENT=TREE&TMPL=67838200100200018544&V=MAINT&TA=ACTUAL&PAGE=SEARCH

 

https://websmp207.sap-ag.de/~form/handler?_APP=00200682500000002672&_EVENT=DISPLAY&_SCENARIO=01100035870000000122&_HIER_KEY=501100035870000015092&_HIER_KEY=601100035870000179416&_HIER_KEY=601100035870000236470&_HIER_KEY=701100035871000563073&#wrapper

 

Общий принцип даной процедуры:

  1. Клонируем систему
  2. Запускаем клон, не давая ему сеть.
  3. Отключаем систему от сети, на место которой должна встать новая система.
  4. Переименовываем имя хоста на то, которое будет, IP-адрес.
  5. Правим конфигурационные файлы oracle, дабы избежать подключения к продуктивной базе.
  6. Запускаем SOFTWARE PROVISIONING. (для linux можн запустить SSH -Y дабы получить экран X11 у себя на клиенте).
  7. Производим переименование. (для windows два косяка: Косяк1 - переменная TMP и TEMP не должны указывать в каталог, где находится SAP система. Их нужно временно направить в другой каталог, например c:\temp. Косяк 2 - проверьте, что база остановлена - попробуйте переименовать каталог базы данных. Если не получается - смотрите кто держит файлы. Можно воспользоваться  unlocker. В моем случае это была почему-то оракловая java, хотя все службы были остановлены)
  8. Убеждаемся, что во всех профилях теперь указан правильный SID, имя хоста. Убеждается что каталог базы данных теперь тоже имеет нужное название.
  9. Отключаем архивлоги
  10. Запускаем SAP, молимся
  11. Заходим в систему. SM59 - грохаем RFC, ссылающиеся на продуктивных хост. RZ12, SMLG - убиваем лишние хосты. Проверяем SM51.
  12. SE06 выполняем постпроцессинг. Грохаем транспортную конфигурацию на этой системе. Останавливаем фоновые задания, далее с ними нужно будет разобраться. Стандартные нужно пересоздать в SM36, пользовательские отдать им на рассмотрение. DB13 пересоздаем задания.
  13. SECSTORE - убрать красные записи.
  14. SCC4, создаем новую запись о манданте, ведь мы не хотим чтобы на продуктиве и тесте были одинаковые номера мандантов.
  15. Выполняем локальное копирование (SCCL) манданта из старого в новое, не забыв о месте в тейблспейсах. Ведь новая система на данный момент будет содержать 2 копии продуктивного манданта.
  16. Заходим в новый мандант, выполняем BDLS
  17. Распространяем транспортную конфигурацию на новоявленный хост.
  18. SP12, проверка непротиворечивости
  19. Удаляем старый мандант
  20. Делаем оффлайн реорг таблиц, самых жирных особенно.
    пример :
    brspace -u / -f tbreorg -t  "COEP","VBFA","BSIS" -p 8
  21. Пересобираем статистику.
  22. Заказываем новую лицензию.
  23. Радуемся

 

В SAP EWM после перевода времени некорректно отображается время создания складской задачи

SAP Extended Warehouse Management. Проблема после перевода времени:

Нюанс в том, что в EWM для каждого склада можно выбрать свой часовой пояс.

1

 

 

 

 

 

 

 

Выбираем единицу логической цепочки

2

 

 

 

 

 

 

 

 

 

 

 

Видим, что часовой пояс по-прежнему RUS04, меняем его на нужный нам (RUS03 для Москвы)

3

Если Oracle не стартует из-за не верного параметра

Если Oracle не стартует из-за не верного параметра:

коннектимся к базе как умеем, например

sqlplus / as sysdba (если настроен NTS)

Выполняем:

     create pfile='d:\tmp\pfile.ora' from spfile;

Правим ошибочный параметр в pfile;

Запускаем базу с pfile

     startup pfile='d:\tmp\pfile.ora';

Создаем spfile из pfile обратно:

     create spfile from pfile='d:\tmp\pfile.ora';

Настройка SNC-туннеля SAPRouter

Допустим, вам нужно настроить SAPRouter с SNC для удаленных пользователей, например, людей из другого офиса.

Скачаем и распакуем saprouter (sapcar -xvf) и крипто библиотеку в, например, C:\saprouter .

Пропишем переменные окружения (пример):

SECUDIR=C:\saprouter

SNC_LIB=C:\saprouter\nt-x86_64\sapcrypto.dll

 

Далее создадим сертификаты и обменяемся ими:
Внимание, имена РЕГИСТРОЧУСТВИТЕЛЬНЫЕ ! CN в данном случае ИМЯ ХОСТА (работает и по короткому имени, без домена). Однако, CN может быть любым и не совпадать с именем машины, а использоваться для удобства понимания.
Сторона инициатора:

sapgenpse get_pse -v -noreq -p local.pse "CN=spb-initiator"
sapgenpse seclogin -p local.pse
sapgenpse export_own_cert -o spb-initiator.cer -p local.pse

Сторона акцептора:

sapgenpse get_pse -v -noreq -p local.pse "CN=msk-acceptor"
sapgenpse seclogin -p local.pse
sapgenpse export_own_cert -o msk-acceptor.cer -p local.pse

 

Обменяемся сертификатами, запишем в каталог C:\saprouter\nt-x86_64

На стороне инициатора положим файл msk-acceptor.cer , на стороне акцептора положим файл spb-initiator.cer

 

Выполним команду на стороне инициатора:

sapgenpse maintain_pk -a msk-acceptor.cer -p local.pse

И на стороне акцептора:

sapgenpse maintain_pk -a spb-initiator.cer -p local.pse

 

Настройки saproutetab:

Инициатор:

# Allow Outbound connections to SAProuter host2 will use SNC
KT "p:CN=msk-acceptor" <IP акцептора> 3299

# Allow all inbound connections
P * * *

Акцептор:

# accept incoming connections from SAProuter1
# with destination sapdp00 and 3298 on any host
KP "p:CN=spb-initiator" * sapdp00
KP "p:CN=spb-initiator" * 3298

 

Запуск saprouter:

Инициатор:

Saprouter -r -K p:CN=spb-initiator

Акцептор:

Saprouter -r -K p:CN=msk-acceptor

 

Строка String SAPROUTER в SAP GUI :

/H/<IP инициатора>/H/<IP акцептора>/H/

 

Проверка: 

Инициатор:

niping -c -H /H/<IP инициатора>/S/3299/H/<IP акцептора>/S/3299/H/<IP акцептора>

Акцептор:

niping -s

Получаем сообщение вида:

connect to server o.k.
send and receive 10 messages (len 1000)

------- times -----
avg 12.900 ms
max 13.548 ms
min 12.631 ms
tr 151.405 kB/s
excluding max and min:
av2 12.853 ms
tr2 151.963 kB/s

 

Если нет - читаем файл dev_rout. Если программа ругается на SNC - вы напутали что-то с сертификатами, наиболее вероятно перепутали инициатора, акцептора и кто какой сертификат ждет.

Если ругается на route permition denied - проверйяте saproutetab, видимо указали не верный IP. Возможно в c:\windows\system32\drivers\etc\services не описан порт sapdp00.

 

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

Проблема: человек из региона приезжает в командировку с прописанной строкой saprouter в центральный офис. Из-за этой строки тут он начинает ходить петлей до своего региона и обратно сюда.

Решение: завести еще один гостевой сапроутер. В DNS назвать везде в регионах хост, например, saprouter. Гостевой сапроутер так же назвать saprouter. Т.о. сотрудник в домашнем регионе и в командировке будет ходить через сапроутеры, только в одном случае по каналу регион-центральный офис, в другом - между двумя локальными сапроутерами центрального офиса.

 

Инструкция на SCN:

http://wiki.scn.sap.com/wiki/display/Basis/How+to+setup+SNC+connection+between+SAProuters