Oracle监测访问数据库的SQL命令

灰桃K 2013-05-21 03:18:25
小弟现在需要做一件事情,要从数据库监测从应用程序里访问数据库的SQL语句(主要是DML),要对一个用户下的所有表都实现监控,并生成每日的统计数据,比如访问数据库最频繁的SQL语句、执行时间最长的SQL语句等等。我尝试过用Oracle的审计,但貌似只能建在一张表或试图上,据说这东西挺消耗性能,不知道如果对所有表都开启审计会不会有问题。。。本人菜菜,望各位大虾指条明路。
...全文
225 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
灰桃K 2013-05-24
  • 打赏
  • 举报
回复
额···自己顶一个
灰桃K 2013-05-23
  • 打赏
  • 举报
回复
引用 3 楼 ruihuahan 的回复:
这些东西都可以从 oracle 的动态性能视图中找到,比如:v$sql, v$session_longops 等等等等,很多。
谢谢!这个之前我也简单弄了一下,不过我不知道怎么去找所有执行过的SQL命令,就像日志那样的。而像V$SQL,v$session这些视图好像是即时的,我是说除非我查这些视图的时候,应用程序正好也正在执行一段SQL,这样我才能捕获到。然后我写了一个存储过程,用到了V$SQL,V$SESSION,V$SESSION_WAIT这3个视图,就像做报表统计那样把我想要的结果insert进一张表,这个存储过程利用JOB每5分钟执行一次。思路就是通过尽可能频繁的去查来捕获访问数据库的SQL,其实我自己也知道这么做是有问题的,但因为想不到更好的办法同时也出于尝试还是做了,最后实际效果确实也不理想
ruihuahan 2013-05-22
  • 打赏
  • 举报
回复
这些东西都可以从 oracle 的动态性能视图中找到,比如:v$sql, v$session_longops 等等等等,很多。
灰桃K 2013-05-21
  • 打赏
  • 举报
回复
引用 1 楼 hanks_gao 的回复:
通過Oracle的AWR報告貌似可以產生你要的結果!
感谢! 我先看看,期待更多回答中
hanks_gao 2013-05-21
  • 打赏
  • 举报
回复
通過Oracle的AWR報告貌似可以產生你要的結果!
Oracle 主要配置文件介绍:profile文件,oratab 文件,数据库实例初始化文件 initSID.ora,监听配置文件, sqlnet.ora 文件,tnsnames.ora 文件1.2 Oracle 主要配置文件介绍1.2.1 /etc/profile 文件 系统级的环境变量一般在/etc/profile 文件中定义 在 CAMS 系统 与数据库 相关的环境变量就定义在/etc/profile 文件中 如下所示 export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/8.1.7 export PATH=$PATH:$ORACLE_HOME/bin export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib export ORACLE_SID=cams export ORACLE_TERM=vt100 export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data export NLS_LANG=AMERICAN.ZHS16CGB231280 & 说明 1 配置上述环境变量要注意定义的先后顺序 如 定义 ORACLE_HOME 时 用 到 了 ORACLE_BASE 那 么 ORACLE_HOME 的 定 义 应 该 在 ORACLE_BASE之后 2 在使用中文版 CAMS 时 环境变量 NLS_LANG 的值应该设置为 AMERICAN.ZHS16CGB231280 如上所示 在使用英文版 CAMS时 可 以不设置 NLS_LANG 即去掉 export NLS_LANG=... ... 那一行 也可以 设置 NLS_LANG 的值为 AMERICAN_AMERICA.US7ASCII1.2.2 /etc/oratab 文件 /etc/oratab 文件描述目前系统中创建的数据库实例 以及是否通过 dbstart 和 dbshut 来控制该实例的启动与关闭 如下所示 忽略以#开头的注释部分 : cams:/u01/app/oracle/product/8.1.7:Y 其中 cams 为实例 ID /u01/app/oracle/product/8.1.7为 ORACLE_HOME目 录 Y表示允许使用 dbstart和 dbshut 启动和关闭该实例数据库 如果设置为 N 表示不通过 dbstart 和 dbshut 启动和关闭实例数据库 CAMS 系统要求在 安装完 ORACLE 后要求将该参数修改为 Y 以保证 ORACLE 数据库自启动 和关闭 1.2.3 数据库实例初始化文件 initSID.ora 每个数据库实例都有一个初始化 参数文件 其缺省 存放的路径为 $ORACLE_BASE/admin//pfile 其名称为 init.ora 如 cams 实 例 对 应 的 参 数 文 件 为 initcams.ora 缺 省 存 放 路 径 为 $ORACLE_BASE/admin/cams/pfile 即/u01/app/oracle/admin/cams/pfile

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧