VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2719|回复: 8

怎么记录没有成功执行的SQL语句

[复制链接]

1

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-3-3 13:30:01 | 显示全部楼层 |阅读模式
是这样的,我有这样一个场景:
有个Oracle数据库,我想在应用程序在运行一段时间后,再通过数据库获得哪些sql语句是没有成功执行的,例如发送到数据库的update语句,因为数据错误,没有执行。
回复

使用道具 举报

1

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-5-14 21:15:01 | 显示全部楼层
注意:
不能改应用程序

我尝试用日志文件,但找不到怎么过虑的方法,我看了Logminer的手册,好像不能实现这个功能,即:我只select成功执行的语句,没有成功执行的语句。

回复

使用道具 举报

1

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-5-15 09:15:01 | 显示全部楼层
再补充一点,我想实现这样一个功能,即假设我是个数据库管理人员,我管理的这个数据库有几个应用程序使用,我现在想做个统计,看看哪些应用程序在一段时间里发送过来的sql语句,哪些是成功执行的,哪些没有成功执行
回复

使用道具 举报

0

主题

71

帖子

50.00

积分

新手上路

Rank: 1

积分
50.00
发表于 2020-5-15 11:45:01 | 显示全部楼层
alert.log
在$ORACLE_BASE/admin/instancename/bdump目录下

回复

使用道具 举报

0

主题

71

帖子

50.00

积分

新手上路

Rank: 1

积分
50.00
发表于 2020-5-15 14:30:01 | 显示全部楼层
或者,自己改自己的程序,加上异常处理,记录到log表中
回复

使用道具 举报

1

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-5-16 16:00:02 | 显示全部楼层
to:
alert.log
在$ORACLE_BASE/admin/instancename/bdump目录下
好像alert.log中没有保存sql语句吧
回复

使用道具 举报

1

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-5-16 21:45:01 | 显示全部楼层
to:
或者,自己改自己的程序,加上异常处理,记录到log表中

=====================

不能改程序,程序已经做好了,很大的一个程序,里面有成千上万的sql语句。
回复

使用道具 举报

0

主题

71

帖子

50.00

积分

新手上路

Rank: 1

积分
50.00
发表于 2020-5-19 00:30:01 | 显示全部楼层
还有一种办法,可以对表进行审计。
init文件的参数必须:
audit_trail=DB
比如:

用user用户登陆.打算对表user.test的插入操作做审计.   
  操作如下:   
  audit   insert   on   user.test;   
  insert   into   test   values   (....);   
  select   *   from   sys.aud$;   
回复

使用道具 举报

1

主题

7

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-7-16 17:00:01 | 显示全部楼层
用v$sql语句不可以把所执行的sql语句及状态查找出来吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表