RT。
Linux 下安装的informix数据库 ,怎么查看数据操作日志?
例如一段时间内的所有sql语句?
或者,给个shell,能够实时显示表数据的变化。。
谢谢
------解决方案--------------------------------------------------------
可以通过如下shell 脚本来监控指定数据库当前SQL 情况
act_sql.sh 脚本如下:
#!/bin/csh
echo "-------- BEGIN! -----------"
foreach sid ( `onstat -g sql
------解决方案--------------------------------------------------------
grep -i -v vi
------解决方案--------------------------------------------------------
grep -i $1
------解决方案--------------------------------------------------------
awk '{print $1}'`)
foreach used_flag ( `onstat -g sql $sid
------解决方案--------------------------------------------------------
grep -i $2
------解决方案--------------------------------------------------------
wc -l
------解决方案--------------------------------------------------------
awk '{print $1}'`)
if $used_flag then
echo "onstat -g sql" $sid
onstat -g sql $sid
------解决方案--------------------------------------------------------
grep -i $2
endif
end
end
echo "-------- finish! -----------"
可以利用该脚本来完成如下一些SQL检索功能:
A. 指定表名是否有被访问:act_sql.sh demodb orders
#说明:demodb 为数据库名,orders为搜索表名
B. 列出当前所有正在执行的select (insert,update,delete)操作
act_sql.sh demodb select
act_sql.sh demodb delete
act_sql.sh demodb update
act_sql.sh demodb insert
------解决方案--------------------------------------------------------
需要打开数据库审计功能才能做到,平常数据库的日志是不记录SQL操作的
------解决方案--------------------------------------------------------
通常都不记录所有sql操作,但需要的时候可进行实时监控
IDS的审计功能开启对资源耗费较大,而且在生成内容解释方面也不容易