设为首页 加入收藏

TOP

Oracle11G监控单张表的增删改操作
2015-07-24 11:02:01 来源: 作者: 【 】 浏览:1
Tags:Oracle11G 监控 单张 删改 操作
前言:
?
一:使用 数据库自带的审计功能
SQL> show parameter audit
?
2,开启审计功能
?
需要用sysdba,注意audit_trail要为DB_EXTENDED才记录执行的具体语句...
?
3,关闭审计功能
SQL> alter system set audit_trail = none scope=spfile;
?
4,针对某张表的审计功能
AUDIT UPDATE,DELETE,INSERT ON T_TEST by access;
?
5,对该张表进行各种DML操作测试
?
6,查询审计的信息
select EXTENDED_TIMESTAMP,SESSION_ID,SQL_TEXT from DBA_COMMON_AUDIT_TRAIL ORDER BY EXTENDED_TIMESTAMP DESC;
?
二,采用触发器
?
看到线上数据库load比以前增加蛮多的,为了单张表的监控开启审计比较消耗资源,有些不划算,所以可以采用另外一种办法来做,就是在表上建立触发器。
?
1,先建立建立测试表:
?
查看已经建立的表 aaa_test与trig_sql。
?
2,并且在 trig_sql表上面添加索引:
create index idx_time on plas.trig_sql (LT);
?
3,建立触发器
create or replace trigger pri_test
?
4,开始进行数据操作测试:
insert into plas.aaa_test1 select 2,'tom',sysdate from dual;
?
5,去查看表记录,会发现如下
SQL> select * from plas.trig_sql;
PS:看到SQLTEXT有些都为 begin :id := sys.dbms_transaction.local_transaction_id; end; 的,是因为我执行的insert、delete、update语句在plsqldev.exe客户端执行的,所以没有记录下执行的sql语句。而有些通过sqlplus@localhost.localdomain (TNS V1-V3)客户端连接执行的,会记录下执行过的update语句。
?
6,统计下当前都有哪些用户以及ip执行了dml操作。
SQL> select username,client_ip from plas.trig_sql group by username,client_ip;
?
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇oracle从备份集中恢复归档日志方法 下一篇oracledg坏境主库redolog修改大小

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Redis 分布式锁全解 (2025-12-25 17:19:51)
·SpringBoot 整合 Red (2025-12-25 17:19:48)
·MongoDB 索引 - 菜鸟 (2025-12-25 17:19:45)
·What Is Linux (2025-12-25 16:57:17)
·Linux小白必备:超全 (2025-12-25 16:57:14)