oracle如何监控用户 Oracle 监听
如何跟踪oracle用户,并得到跟踪信息
用hibernate没有,用的设置属性show_sql为true
创新互联建站联系热线:18980820575,为您提供成都网站建设网页设计及定制高端网站建设服务,创新互联建站网页制作领域十多年,包括水泥搅拌车等多个领域拥有丰富的网站制作经验,选择创新互联建站,为网站锦上添花!
没用,只想从后台数据库看对这个数据库执行的sql问题补充:unika_ly12 写道
那你直接查询 v$sqltext 和 v$session 好了
首先,你要以dba身份登陆数据库。
第二,为某个用户开启sql跟踪。那个用户就是你要跟踪的、正在执行sql语句的那个用户。命令如下:
execute dbms_system.set_sql_trace_in_session(sid,serial#,true)
其中参数的意义是,sid-会话id,serial#-序列号,这两个参数可以从v$session中得到。
第三,上面的命令执行成功之后数据库就自动对该用户所发出的所有sql语句进行跟踪,并把结果写在用户跟踪文件里。用户跟踪文件存放在数据库服务器上,路径请参考init.ora文件中的udump参数值。文件名为ora_sid_xxxx.trc(for unix)或者oraxxxxx.trc(for NT),其中xxxx文件系统进程编号,这个编号可以从v$process和v$session两个表通过关联的方式查询得到。当然你也可以简单的查看一下哪个trc文件的日期最新,哪个文件就是你要的结果了。
首先,你要以dba身份登陆数据库。
第二,为某个用户开启sql跟踪。那个用户就是你要跟踪的、正在执行sql语句的那个用户。命令如下:
execute dbms_system.set_sql_trace_in_session(sid,serial#,true)
其中参数的意义是,sid-会话id,serial#-序列号,这两个参数可以从v$session中得到。
第三,上面的命令执行成功之后数据库就自动对该用户所发出的所有sql语句进行跟踪,并把结果写在用户跟踪文件里。用户跟踪文件存放在数据库服务器上,路径请参考init.ora文件中的udump参数值。文件名为ora_sid_xxxx.trc(for unix)或者oraxxxxx.trc(for NT),其中xxxx文件系统进程编号,这个编号可以从v$process和v$session两个表通过关联的方式查询得到。当然你也可以简单的查看一下哪个trc文件的日期最新,哪个文件就是你要的结果了。
execute dbms_system.set_sql_trace_in_session(sid,serial#,false)Good Luck我按你说的做了一遍,execute dbms_system.set_sql_trace_in_session(sid,serial#,true)
如何启用Oracle EBS Form监控
1. 在Oracle EBS上进行Form跟踪的技术方法:
Oracle EBS的一个Profile 提供此功能:
User_Profile_Option_Name = 登录:审计层(Sign-On:Audit Level)
View_Name = FND_SIGNON_AUDIT_VIEW
此Profile有4个可选值:
‘无’:不跟踪--A
‘用户’:只跟踪到哪个用户登陆
‘职责’:只跟踪到哪个用户以哪个职责登陆
‘表单’:跟踪哪个用户以哪个职责登陆后,运行哪个FORM--D
启用此Profile后,可以在FND_SIGNON_AUDIT_VIEW中查询到相关数据
通过PID或PROCESS_SPID与 v$process/v$session 关联
2. 系统Profile设置:登录:审计层
“登录:审计层”允许您选择审计登录至 Oracle 应用产品用户的层,并增加了四个审计层的功能:无、用户、责任和表单。
“无”是默认值,
表示不审计登录到 Oracle 应用产品的任何用户。
在“用户”层的审计线索:
登录至您的系统的用户
用户登录和退出的时间
占用的终端
在“责任”层审计执行了“用户”层审计功能和线索:
责任用户选择
用户使用每个责任的时间量
在“表单”层审计执行了“责任”层审计功能和线索:
用户选择的表单
用户使用每个表单的时间
系统管理员在所有层均可进行查看、更新。
用户无法查看或更改此预置文件选项。
此预置文件选项在全部四个层均可查看和更新。
层 是否可查看 是否允许更新
站点 是 是
应用 是 是
责任 是 是
用户 是 是
此预置文件选项的内部名称为 SIGNONAUDIT:LEVEL。
3. 如何监控客制化的Form:
标准功能的Form,都会被只要设定Profile值,都会被监控的;
但是,客制开发的Form,如果想被系统记录其使用情况和使用次数,必须写代码:
在Pre-Form(或者WHEN-NEW-FORM-INSTANCE)正确输入下面语句,就可以记录每次User登录Form的信息(登录时间,次数等)了:
FND_STANDARD.FORM_INFO('$Revision: 120.0 $', 'From_Name', 'Application_Short_Name',
'$Date: 2010/11/02 23:25 $', '$Author: Sam.T $');
例如,Form名称是:XYG_WIP_MOVE_SCH_QY
注册的模组的简称是:XYG
FND_STANDARD.FORM_INFO('$Revision: 120.0 $', 'XYG_WIP_MOVE_SCH_QY', 'XYG',
'$Date: 2010/11/02 23:25 $', '$Author: Sam.T $');
只要User登录这个Form,就会被记录下来,方便以后统计Form的被使用次数等信息。
逻辑是:只要在同一个权限登录一次Form,就会被记录一次。
同时,用DB工具也可以方便查看目前用户使用Form的信息。
例如,我打开一个Form下面这个Form:
(见文档)
Form信息:
(见文档)
4. 相关脚本文件:
---记录Form的使用次数:
SELECT A.*, B.FORM_NAME, B.DESCRIPTION
FROM FND_LOGIN_RESP_FORMS A, FND_FORM_VL B
WHERE A.FORM_ID = B.FORM_ID
---实时查看User的使用Form情况:
SELECT * FROM FND_SIGNON_AUDIT_VIEW
---记录相关信息的PKG:FND_SIGNON
-向Form使用次数的表格塞记录:
/*
INSERT INTO FND_LOGIN_RESP_FORMS(LOGIN_ID
,LOGIN_RESP_ID
,FORM_APPL_ID
,FORM_ID
,START_TIME
)
SELECT AUDIT_FORM.LOGIN_ID
,AUDIT_FORM.LOGIN_RESP_ID
,A.APPLICATION_ID
,F.FORM_ID
,SYSDATE
FROM FND_FORM F, FND_APPLICATION A
WHERE F.FORM_NAME = AUDIT_FORM.FORM_NAME
AND F.APPLICATION_ID = A.APPLICATION_ID
AND A.APPLICATION_SHORT_NAME = AUDIT_FORM.FORM_APPLICATION;
*/
Oracle在基于Window操作系统的性能监控
任务管理器 任务管理器能够提供正在您的计算机上运行的程序和进程的相关信息 还显示最常用的度量进程性能的单位 使用任务管理器可以监视计算机性能的关键指示器 可以查看正在运行的程序的状态 并终止已停止响应的程序 还可以使用多达 个参数评估正在运行的进程的活动 查看反映 CPU 和内存使用情况的图形和数据 通过任务管理器的菜单—查看—选择列 可以自定义需要监测系统和用户进程的活动状况 任务管理器的使用是非常普遍的 因为它可以从宏观上反映出服务器系统的负载情况(CPU 内存 I/O 虚拟内存) 进一步能够判断出机器硬件的配置和软件的运行状况 但是任务管理器只能在进程这一级上进行监测 检测不到更细微的线程的运行情况 对于Oracle这样的大型数据库系统的监控显然不够的
性能监视器 可以使用 性能 来自动收集本地或者远程计算机的性能数据 您可以使用 系统监视器 查看已记录的计数器数据 或者将数据导出到电子表格程序或用于分析和生成报表的数据库中 与 系统监视器 相似 性能日志和警报 支持定义 性能对象 性能计数器和性能对象实例 它同时支持为有关监视硬件资源和系统服务的数据设定采样间隔 默认情况下 进程和线程实例附加了 #n(其中 n 是整数)(联机帮助中的解释 不太明白什么含意) 缺省情况下 性能监视器无法对用户进程和进程内的线程情况进行跟踪 按照以下进行设置后 即可实现线程和用户进程的跟踪 要添加进程标识符 ID 可以在 KEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerfProc\Performance 子项下创建名为 ProcessNameFormat 的 DWORD 值 并将其值设为 同样 要添加线程 ID 可以在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerfProc\Performance 子项下创建名为 ThreadNameFormat 的 DWORD 值 并将其值设为 通常情况下需要监视的组件和关注对象 更详细的信息 请看计数器中的说明
组件 磁盘 正被监视的性能方面 用法 要监视的计数器 物理磁盘\ Disk Reads/sec(磁盘读取/秒) 物理磁盘\ Disk Writes/sec(磁盘写入/秒) 逻辑磁盘\ % Free Space(可用空间) 组件 磁盘 正被监视的性能方面 瓶颈 要监视的计数器 物理磁盘\ Avg Disk Queue Length(磁盘队列平均长度)(所有实例) 组件 内存 正被监视的性能方面 用法 要监视的计数器 内存\ Available Bytes(可用字节) 内存\ Cache Bytes(缓存字节) 组件 内存 正被监视的性能方面 瓶颈或漏洞 要监视的计数器 内存\ Pages/sec(页面/秒) 内存\ Page Reads/sec(页面读取/秒) 内存\ Transition Faults/sec(传输错误/秒) 内存\ Pool Paged Bytes(分页的内存池字节) 内存\ Pool Nonpaged Bytes(未分页的内存池字节) 组件 处理器 正被监视的性能方面 用法 要监视的计数器 处理器\ % Processor Time(处理器时间)(所有实例) 组件 处理器 正被监视的性能方面 瓶颈 要监视的计数器 系统\ Processor Queue Length(处理器队列长度)(所有实例) 处理器\ Interrupts/sec(中断/秒) 系统\ Context switches/sec(上下文切换/秒) 在性能 的性能日志和警报 选择 计数器日志 点击 新建日志设置
在常规选项卡中选择添加计数器 性能对象选择 Thread 计数器中选择需要监控的性能指标 并在实例中选择相应的Oracle线程进行跟踪 然后在计数器日志中选择名称 Oracle_Thread 进行启动 具体的计数器解释请看说明 % Processor Time 是所有进程线程使用处理器执行指令所花的时间百分比 指令是计算机执行的基础单位 线程是执行指令的对象 进程是程序运行时创建的对象 此计数包括处理某些硬件间隔和陷阱条件所执行的代码 运行相应的程序后一段时间后 停止Oracle_Thread计数器的运行 在性能监视器中 选择工具栏 查看日志活动 到指定的文件夹中选择相应的日志文件 然后可以通过 查看图表 查看直方图 查看报告的工具 阅读和评估一段时间以来各个线程的运行状况
但是在系统监视器中无法显示两个不同测试阶段的的测试对比 可以在计数器日志 日志文件设置中日志的格式 通常是文本文件(制表符或者逗号分割方式) 然后将前后两段时间的数据倒入Excel表 利用Excel表的强大功能进行性能比较
QSlice工具 Qslice这个工具可以用来在Windows操作系统中观察用户进程(Oracle进程)及各线程的资源消耗 主要是从CPU占用率角度来衡量的 使用getsql sql脚本即可获得当前正在执行的SQL语句 来自Eygle网站上 REM getsql sql REM author eygle REM 在windows上 已知进程ID 得到当前正在执行的语句 REM 在windows上 进程ID为 进制 需要转换 在UNIX直接为 进制 SELECT /*+ ORDERED */ sql_text FROM v$sqltext a WHERE (a hash_value a address) IN ( SELECT DECODE (sql_hash_value prev_hash_value sql_hash_value ) DECODE (sql_hash_value prev_sql_addr sql_address) FROM v$session b WHERE b paddr = (SELECT addr FROM v$process c WHERE c spid = TO_NUMBER ( pid xxxx ))) ORDER BY piece ASC / 然后在PL/SQL中运行该脚本就可以找到最消耗资源的问题SQL 接下来就可以进行针对性调整了
pslist工具 PsList是一个能够列出进程和其线程占用资源详细信息的小软件 PsList is utility that shows you a bination of the information obtainable individually with pmon and pstat You can view process CPU and memory information or thread statistics What makes PsList more powerful than the Resource Kit tools is that you can view process and thread statistics on a remote puter
{$PageTitle关于Oracle进程和Windows线程的对照关系} 关于Oracle进程和Windows线程的对照关系 事实上通过性能监视器或者QSlice工具 PsList看到的线程即可能是Oracle中的用户进程 也可能是Oracle的后台进程 这些工具给出的线程号也都是 进制的数字 不太有利于数据库的监控 因此我们必须把Oracle的后台进程以数据库的语言列举出来 对于Oracle用户进程 则可以取出来在Oracle进行分析判断
oracle如何监视所有用户执行的脚本
在admin目录下面的dbdump下面有一个.log文件,里面有操作历史,更具那个文件判断误操作,然后在相应的ULOG中去找,不知道你说的是不是这个
当前名称:oracle如何监控用户 Oracle 监听
当前URL:http://scyanting.com/article/hgdeis.html