Если это возможно, как я могу получить session_id от парня, который
используя приложение Oracle E-BUSINESS-SUITE?
Да, это определенно возможно. Перво-наперво, вам нужно выяснить, какую схему / имя пользователя использует "парень". Если вы не знаете, вы можете попросить парня или попросить его выполнить простой запрос (что-то вроде select user from dual;
будет работать), чтобы получить эту информацию.
Получив имя схемы, вы можете запросить таблицу V$SESSION
, чтобы выяснить идентификатор сеанса. Попросите парня войти в систему, а затем запросить таблицу V$SESSION
. Ваш запрос будет выглядеть примерно так: select * from v$session where username ='[SCHEMA]';
где [SCHEMA]
- это имя схемы, которую парень использует для входа в систему. Это даст вам SID, серийный номер, статус и т. Д. Вам понадобится эта информация, чтобы отследить парня. сессия.
Создание файла трассировки для сессии относительно просто. Вы можете запустить трассировку для всей базы данных или только для одного сеанса. Так как вас интересует только сессия парня, вам нужно только отследить ее. Чтобы начать трассировку, вы можете использовать команду, которая выглядит примерно так: EXEC DBMS_MONITOR.session_trace_enable(session_id=>[SESSIONID], serial_num=>[SERIAL#]);
, где [SESSIONID]
и [SERIAL#]
- это числа, полученные на предыдущем шаге. Пожалуйста, имейте в виду, что парню нужно будет войти в систему для отслеживания сеанса, чтобы получить какие-либо результаты .
Как только парень войдет в систему и вы включите трассировку сеанса, пусть парень выполнит любые команды из набора E-Business, которые вас интересуют. Имейте в виду, что чем больше парень (или приложение) делает, пока Трассировка включена, тем больше информации вам придется пройти, чтобы найти то, что вы ищете. Это может быть тонна данных с приложениями. Просто предупреждаю вас заранее.
После того, как парень закончил выполнять задания, вам нужно отключить трассировку. Это можно сделать с помощью пакета DBMS_MONITOR, как и раньше, только немного по-другому. Команда будет выглядеть примерно так: EXEC DBMS_MONITOR.session_trace_disable(session_id=>[SESSIONID], serial_num=>[SERIAL#]);
, используя те же [SESSIONID]
и [SERIAL#]
, что и раньше.
Предполагая, что все сделано правильно, будет создан файл трассировки. Причина, по которой @thatjeffsmith упомянула доступ к серверу, заключается в том, что вам нужно получить доступ к любому серверу (-ам), на котором работает база данных, чтобы получить файл трассировки. Если у вас нет доступа к серверу, вам нужно будет работать с администратором базы данных или кем-то, у кого есть доступ, чтобы получить его. Если вам просто нужна помощь, чтобы выяснить, где находится файл трассировки, вы можете выполнить следующий запрос, используя [SESSIONID]
ранее:
SELECT p.tracefile
FROM v$session s
JOIN v$process p ON s.paddr = p.addr
WHERE s.sid = [SESSIONID];
Это должно вернуть каталог, который выглядит примерно так: /u01/app/oracle/diag/rdbms/[database]/[instance]/trace/[instance]_ora_010719.trc
Просто перейдите в этот каталог, извлеките файл трассировки, используя WinSCP, FileZilla или приложение по вашему выбору, и это должно сделать это.
Удачи и надеюсь, что это поможет!